Управление интерфейсом программы 1С

Министерство просвещения  ПМР

Приднестровский государственный  университет

им.Т.Г.Шевченко

Бендерский политехнический  Филиал

 

 

 

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

Курсовая работа

по дисциплине:

“Разработка и эксплуатация информационных систем”

тема:

“Управление интерфейсом  программы 1С”

 

 

Выполнил:

Студент 46-К группы

Гюмюшлю Александр Сергеевич

 

Проверил:

Преподаватель Качур В.Г

 

 

 

 

 

 

 

 

План

1.Введение.

2.Актуальность выбранной  темы.

3.Решение данной задачи.

4.Условие выбора среды разработки Delphi.

5.Результат работы.

6.Описание решения задачи.

7.Вывод.

8.Литература. 

1. Введение

Задачи автоматизации  учета и управления, стоящие перед  современными предприятиями, могут  существенно различаться в зависимости  от рода деятельности предприятия, отрасли, специфики выпускаемой продукции  или оказываемых услуг, размера  и структуры предприятия, требуемого уровня автоматизации бизнес-процессов  и многих других факторов. И, конечно  же, у каждого предприятия требования к системам автоматизации меняются по мере развития бизнеса. 
В настоящее время более 600,000 организаций использует для автоматизации своей деятельности продукты, входящие в систему программ «1С: Предприятие». Наиболее широко распространены тиражные продукты системы «1С: Предприятие», предназначенные для автоматизации различных учетных задач (бухгалтерия, склад, управление кадрами). В последнее время быстро растет число создаваемых на базе «1С: Предприятие» продуктов, предназначенных для комплексной автоматизации учета и управления предприятием, в том числе планирования ресурсов, работы с клиентами, бюджетирования. 
        Система «1С: Предприятие» дает возможность создавать конфигурации, используя встроенный язык программирования и компоненты построения пользовательского интерфейса, дорабатывать и отлаживать их, исполнять разработанную конфигурацию для эксплуатации ее конечным пользователем. 
Наличие такого спектра продуктов и их массовое успешное внедрение во многом обусловлено тем, что в основе «1С:Предприятия» лежит мощная технологическая платформа, возможности которой и позволяют фирме «1С», ее партнерам, независимым разработчикам и системным интеграторам, а также самим клиентам создавать самые разнообразные бизнес-приложения.

 

 

 

 

2. Актуальность

 

В данной теме я хочу рассмотреть  механизм управление системой 1С:Предриятия извне.

Почему я выбрал эту  тему и в чём заключается её актуальность?

Система 1С получила широкое  распространение, т.к. легко справляется  с поставленными ей задачами учета (кадрового, складского, бухгалтерского и т.д.), но ей зачастую не хватает функционала для решения более широких задач.

 Для этого, используя  механизмы взаимодействия с 1С, я буду извлекать, записывать и изменять нужную информацию. Это покажет, что пользуясь информацией полученной из 1С, я могу оперировать ей в других средах разработки, которые используются для решения более широких и масштабных задач, а затем обработанные данные обратно передавать на нашу платформу.

 

3. Решение данной задачи

 

Решение данной задачи заключается в следующем:

  • установка платформы 1С: Предприятие;
  • установка среды разработки, которая будет взаимодействовать с 1С(Подключаться к 1С платформе, считывать информацию из ИБ 1С и изменять её);
  • изучение литературы;
  • создание ПП с использованием информации, полученной из прочитанной литературы.

 

4. Среда разработки

4.1 Delphi. Основные характеристики продукта.

Delphi - это комбинация нескольких важнейших технологий:

  • Высокопроизводительный компилятор в машинный код ;
  • Объектно-ориентированная модель компонент ;
  • Визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов ;
  • Масштабируемые средства для построения баз данных;

4.2 Компилятор в машинный код.

Компилятор, встроенный в Delphi, обеспечивает высокую производительность, необходимую для построения приложений в архитектуре “клиент-сервер”. Он предлагает легкость разработки и быстрое время проверки готового программного блока.

В процессе построения приложения разработчик  выбирает из палитры компонент готовые  компоненты как художник, делающий крупные мазки кистью. Еще до компиляции он видит результаты своей работы - после подключения к источнику  данных их можно видеть отображенными  на форме, можно перемещаться по данным, представлять их в том или ином виде.

4.3 Объектно-ориентированная модель программных компонент.

Основной упор этой модели в Delphi делается на максимальном реиспользовании кода. Это позволяет разработчикам строить приложения весьма быстро из заранее подготовленных объектов, а также дает им возможность создавать свои собственные объекты для среды Delphi. Никаких ограничений по типам объектов, которые могут создавать разработчики, не существует. Действительно, все в Delphi написано на нем же, поэтому разработчики имеют доступ к тем же объектам и инструментам, которые использовались для создания среды разработки. В результате нет никакой разницы между объектами, поставляемыми Borland или третьими фирмами, и объектами, которые вы можете создать.

В стандартную поставку Delphi входят основные объекты, которые образуют удачно подобранную иерархию из 270 базовых классов. Для начала - неплохо. Но если возникнет необходимость в решении какой-то специфической проблемы на Delphi, советуем, прежде чем попытаться начинать решать проблему “с нуля”, просмотреть список свободно распространяемых или коммерческих компонент, разработанных третьими фирмами, количество этих фирм в настоящее время превышает число 250, хотя, возможно, я не обо всех знаю. Скептики, возможно, не поверят мне, когда я скажу, что на Delphi можно одинаково хорошо писать как приложения к корпоративным базам данных, так и, к примеру, игровые программы. Тем не менее, это так. Во многом это объясняется тем, что традиционно в среде Windows было достаточно сложно реализовывать пользовательский интерфейс. Событийная модель в Windows всегда была сложна для понимания и отладки. Но именно разработка интерфейса в Delphi является самой простой задачей для программиста.

4.4 Быстрая разработка работающего приложения из прототипов.

Cреда Delphi включает в себя полный набор визуальных инструментов для скоростной разработки приложений (RAD - rapid application development), поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных. VCL - библиотека визуальных компонент, включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE.

4.5 Масштабируемые средства для построения баз данных.

Объекты БД в Delphi основаны на SQL и включают в себя полную мощь Borland Database Engine. В состав Delphi также включен Borland SQL Link, поэтому доступ к СУБД Oracle, Sybase, Informix и InterBase происходит с высокой эффективностью. Кроме того, Delphi включает в себя локальный сервер Interbase для того, чтобы можно было разработать расширяемые на любые внешние SQL-сервера приложения в офлайновом режиме. Разработчик в среде Delphi, проектирующий информационную систему для локальной машины (к примеру, небольшую систему учета медицинских карточек для одного компьютера), может использовать для хранения информации файлы формата .dbf (как в dBase или Clipper) или .db (Paradox). Если же он будет использовать локальный InterBase for Windows 4.0 (это локальный SQL-сервер, входящий в поставку), то его приложение безо всяких изменений будет работать и в составе большой системы с архитектурой клиент-сервер.

Вот она - масштабируемость на практике - одно и то же приложение можно использовать как для локального, так и для  более серьезного клиент-серверного вариантов.

4.6 Для кого предназначен Delphi.

В первую очередь Delphi предназначен для профессионалов-разработчиков корпоративных информационных систем. Может быть, здесь следует пояснить, что конкретно имеется в виду. Delphi такие ограничения не присущи. Хорошее доказательство тому - это тот факт, что сам Delphi разработан на Delphi. Можете делать выводы.

4.7 Некоторые особенности Delphi.

Локальный сервер InterBase - следует заметить, что этот инструмент предназначен только для автономной отладки приложений. В действительности он представляет из себя сокращенный вариант обработчика SQL-запросов InterBase, в который не включены некоторые возможности настоящего сервера InterBase. Отсутствие этих возможностей с лихвой компенсируется преимуществом автономной отладки программ.

Team Development Support - средство поддержки разработки проекта в группе. Позволяет существенно облегчить управление крупными проектами. Это сделано в виде возможности подключения такого продукта как Intersolve PVCS 5.1 непосредственно к среде Delphi.

Высокопроизводительный компилятор в машинный код - в отличие от большинства Паскаль-компиляторов, транслирующих в p-код, в Delphi программный текст компилируется непосредственно в машинный код, в результате чего Delphi- приложения исполняются в 10-20 раз быстрее (особенно приложения, использующие математические функции). Готовое приложение может быть изготовлено либо в виде исполняемого модуля, либо в виде динамической библиотеки, которую можно использовать в приложениях, написанных на других языках программирования.

4.8 Открытая компонентная архитектура

Благодаря такой архитектуре приложения, изготовленные при помощи Delphi, работают надежно и устойчиво. Delphi поддерживает использование уже существующих объектов, включая DLL, написанные на С и С++, OLE сервера, VBX, объекты, созданные при помощи Delphi. Из готовых компонент работающие приложения собираются очень быстро. Кроме того, поскольку Delphi имеет полностью объектную ориентацию, разработчики могут создавать свои повторно используемые объекты для того, чтобы уменьшить затараты на разработку.

Delphi предлагает разработчикам - как в составе команды, так и индивидуальным - открытую архитектуру, позволяющую добавлять компоненты, где бы они ни были изготовлены, и оперировать этими вновь введенными компонентами в визуальном построителе. Разработчики могут добавлять CASE-инструменты, кодовые генераторы, а также авторские help'ы, доступные через меню Delphi.

4.9 Библиотека визуальных компонент.

Эта библиотека объектов включает в  себя стандартные объекты построения пользовательского интерфейса, объекты  управления данными, графические объекты, объекты мультимедиа, диалоги и  объекты управления файлами, управление DDE и OLE.

4.10 Поддержка OLE 2.0, DDE и VBX.

Это очень важная особенность для  разработчиков в среде Windows, поскольку  в уже существующие Windows-приложения программист может интегрировать  то, что разработает при помощи Delphi.

4.11 Интеллектуальный редактор.

Редактирование программ можно  осуществлять, используя запись и  исполнение макросов, работу с текстовыми блоками, настраиваемые комбинации клавиш и цветовое выделение строк .

4.12 Графический отладчик.

Delphi обладает мощнейшим, встроенным в редактор графическим отладчиком, позволяющим находить и устранять ошибки в коде. Вы можете установить точки останова, проверить и изменить переменные, при помощи пошагового выполнения в точности понять поведение программы. Если же требуются возможности более тонкой отладки, Вы можете использовать отдельно доступный Turbo Debugger, проверив ассемблерные инструкции и регистры процессора.

4.13 Инспектор объектов.

Этот инструмент представляет из себя отдельное окно, где вы можете в  период проектирования программы устанавливать  значения свойств и событий объектов (Properties & Events).

4.14 Менеджер проектов.

Дает возможность разработчику просмотреть все модули в соответствующем  проекте и снабжает удобным механизмом для управления проектами. Менеджер проектов показывает имена файлов, время/дату выбранных форм и пр.Можно  немедленно попасть в текст или  форму, просто щелкнув мышкой на соответствующее  имя.

4.15 Навигатор объектов.

Показывает библиотеку доступных  объектов и осуществляет навигацию  по вашему приложению. Можно посмотреть иерархию объектов, прекомпилированные модули в библиотеке, список глобальных имен вашего кода.

4.16 Дизайнер меню.

Можно создавать меню, сохранить  созданные в виде шаблонов и затем  использовать в их в любом приложении.

4.17 Эксперты.

Это набор инструментальных программ, облегчающих проектирование и настройку  Ваших приложений.

Есть возможность подключать самостоятельно разработанные эксперты. Потенциально это та возможность, при помощи которой  третьи фирмы могут расширять  Delphi CASE-инструментами, разработанными специально для Delphi.

В состав RAD Pack входит эксперт для  преобразования ресурсов, изготовленных  в Borland Pascal 7.0, в формы Delphi. Уже появились эксперты, облегчающие построение DLL и даже написание собственных экспертов

4.18 Интерактивная обучающая система.

Позволяет более полно освоить  Delphi. Она являются не просто системой подсказок, а показывает возможности Delphi на самой среде разработчика.

4.19 Компоненты доступа к базам данных и визуализации данных.

Библиотека объектов содержит набор  визуальных компонент, значительно  упрощающих разработку приложений для  СУБД с архитектурой клиент-сервер. Объекты инкапсулируют в себя нижний уровень - Borland Database Engine.

Предусмотрены специальные наборы компонент, отвечающих за доступ к данным, и компонент, отображающих данные. Компоненты доступа к данным позволяют осуществлять соединения с БД, производить выборку, копирование данных, и т.п.

Компоненты визуализации данных позволяют  отображать данные виде таблиц, полей, списков. Отображаемые данные могут  быть текстового, графического или  произвольного формата.

4.20 Разработка приложений БД.

Delphi позволяет использовать библиотеку визуальных компонент для быстрого создания надежных приложений, которые легко расширяются до приложений с архитектурой клиент-сервер. Другими словами, Вы можете создать приложение, работающее с локальным сервером InterBase, а затем использовать созданное приложение, соединяясь с удаленным SQL-сервером через SQL-Links.

4.21 Библиотека объектных Визуальных Компонент.

Компоненты, используемые при разработке в Delphi (и также собственно самим Delphi), встроены в среду разработки приложений и представляют из себя набор типов объектов, используемых в качестве фундамента при строительстве приложения.

Этот костяк называется Visual Component Library (VCL). В VCL есть такие стандартные элементы управления, как строки редактирования, статические элементы управления, строки редактирования со списками, списки объектов.

Ключевой особенностью Delphi является возможность не только использовать визуальные компоненты для строительства приложений, но и создание новых компонент. Такая возможность позволяет разработчикам не переходить в другую среду разработки, а наоборот, встраивать новые инструменты в существующую среду. Кроме того, можно улучшить или полностью заменить существующие по умолчанию в Delphi компоненты.

Классы объектов построены в  виде иерархии, состоящей из абстрактных, промежуточных, и готовых компонент. Разработчик может пользоваться готовыми компонентами, создавать собственные  на основе абстрактных или промежуточных, а также создавать собственные  объекты.

Кроме того, Delphi поддерживает такие низкоуровневые особенности, как подклассы элементов управления Windows, перекрытие цикла обработки сообщений Windows, использование встроенного ассемблера.

4.22 Формы, модули и метод разработки “Two-Way Tools”.

Формы - это объекты, в которые  вы помещаете другие объекты для  создания пользовательского интерфейса вашего приложения. Модули состоят  из кода, который реализует функционирование вашего приложения, обработчики событий для форм и их компонент.

Информация о формах хранится в  двух типах файлов - .dfm и .pas, причем первый тип файла - двоичный - хранит образ формы и ее свойства, второй тип описывает функционирование обработчиков событий и поведение компонент. Оба файла автоматически синхронизируются Delphi, так что если добавить новую форму в ваш проект, связанный с ним файл .pas автоматически будет создан, и его имя будет добавлено в проект.

Такая синхронизация и делает Delphi two-way-инструментом, обеспечивая полное соответствие между кодом и визуальным представлением. Как только вы добавите новый объект или код, Delphi устанавливает т.н. “кодовую синхронизацию” между визуальными элементами и соответствующими им кодовыми представлениями.

5. Результат работы

В результате проделанной  мной работы, я получил приложение с описанным функционалом и удобным, интуитивно понятным интерфейсом (рис.1).

 

 

 

 

 

 

 

 

 

 

 

 

Готовый программный продукт.

Рис.1

6. Описание решения задачи

Решение задачи началось с  установки на мой ПК платформы 1С:Предприятие  и среды разработки Borland Delphi 7.

Затем, для дальнейшей работы над моим программным продуктом, нужно было использовать готовую конфигурацию 1С.

Я выбрал конфигурацию «Склад», с ним мы дальше и будем иметь  дело, а именно:

  • устанавливать соединение;
  • выбирать пользователя;
  • считывать информацию со справочников;
  • изменять записи в справочнике;

В Delphi:

  • Создаю новый проект.
  • Размещаю на форме компоненты так, как это представлено на рис.2

Форма проекта.

Рис.2

 

Назначение элементов  управления в форме проекта.  Таблица №1.

Элемент управления

Идентификатор

Назначение

Раскрывающийся

список

CB1: TComboBox

Выбор версии программы 1С

Кнопка Обзор…

Button3: TButton

Выбор пути к базе 1С

Кнопка Соединить

Button1: TButton

Соединение  с программой

1С: Предприятие

Компонент выбора папки

OpenDialog1: TOpenDialog

Выбор папки

Однострочный редактор

E2: TEdit

Путь к базе 1С

Однострочный редактор

E4: TEdit

Наименование пользователя 1С

Однострочный редактор

E5: TEdit

Пароль пользователя 1С

Раскрывающийся

список

CB2: TComboBox

Наименование справочника  базы 1С

Кнопка Справочник

Button2: TButton

Считывание и показ  содержимого(Код и Наименование) справочника

Раскрывающийся

список

CB3: TComboBox

Наименование записи справочника

Кнопка Изменить

Button4: TButton

Изменение наименования записи справочника

Кнопка-Индикатор

SB1:TSpeedButton

Цветовой индикатор соединения с базой 1С

Кнопка Закрыть

BitBtn1: TBitBtn

Закрывает программу

Массив строк

ListBox1: TListBox

Отображает содержимое справочника

Метки

Label6,Label7: TLabel

Указывают на поля, которые  нужно обязательно заполнить

Метка

Label5: TLabel

Текстовый индикатор соединения с базой 1С


 

Теперь всё готово для  работы с объектами на форме.

Пропишем в событии  OnCreate нашей формы следующий код:

procedure TForm1.FormCreate(Sender: TObject);  //Задаём некоторые свойства объектов  при создании формы

begin

  SB1.Visible := False;

  label5.Visible := False;

  Button1.Enabled := False;

  Button2.Enabled := False;

  Button4.Enabled := False;

end;

Рис.3

В раскрывающемся списке CB1 в свойстве  Items вписываю значения, которые будут отображаться при выпадении списка:

  • V77.Application – зависимый ключ;
  • V77S.Application – зависимый ключ, SQL – версия;
  • V77L.Application – зависимый ключ, локальная версия;
  • V77M.Application – зависимый ключ, сетевая версия;
  • V1CEnterprise.Application – независимый ключ;

Это одна из версий, установленная  на вашем компьютере.

В событии кнопки Обзор… я обращаюсь к объекту на форме OpenDialog1, который открывает окно выбора папки. После выбора каталога с базой 1С,  я запоминаю путь и передаю его E2.

Рис.4

procedure TForm1.Button3Click(Sender: TObject);

begin

  if OpenDialog1.Execute then

  E2.Text:=ExtractFileDir(OpenDialog1.FileName);

  OpenDialog1.InitialDir:=E2.Text;

end;

После выбора пути к базе, активируется кнопка Соединить, которая подключается к базе 1С по пути, занесенному в Е2, инициализируя версию из CB1. Затем формируется список справочников в CB2.

Рис.5

  private

    { Private declarations }

    Ole1C: OleVariant; //Указатель на объект 1С

    OleSpr: OleVariant;  //Указатель на справочник 1С

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

implementation

 

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

var

ResOpen : integer;

Index : integer;

begin

if E2.Text = '' then

  begin

    ShowMessage('Укажите  путь к базе 1С');

    Exit;

  end;

Ole1C := CreateOleObject(CB1.Text);  //Запускается программа 1С как OLE Automation

ResOpen := Ole1C.Initialize(Ole1C.RMTrade, '/D' + E2.Text + ' /M' + ' /N' + E4.Text + ' /P' + E5.Text, ''); //Инициализируем программу 1С согласно информации из E2,E4,E5

CB2.Items.Clear;

CB2.Text := '';

//Индикатор соединения  с базой 1С

if ResOpen = -1 then

  begin

  SB1.Font.Color := 708928;

  label5.Caption := 'Соединено!';

  Рис.6

  SB1.Visible := True;

  label5.Visible := True;

  Button2.Enabled := True;

  Button4.Enabled := True;

  end

  else

  begin

  SB1.Font.Color := clRed;

  label5.Caption := 'Нет соединения!';

  Рис.7

  SB1.Visible := True;

  label5.Visible := True;

  Button2.Enabled := False;

  Button4.Enabled := False;

  CB2.Items.Clear;

  CB3.Items.Clear;

  end;

if label5.Caption = 'Нет соединения!' then

  Exit;   //Условие возврата

//Добавление справочников  в CB2

if not VarIsEmpty(Ole1C) then

  begin

  for Index := 1 to Ole1C.Metadata.Reference do

CB2.Items.Add(Ole1C.Metadata.Reference(Index).Identifier);

  end;

end;

После нажатия на кнопку Соединить, появляется цветовой индикатор SP1, который показывает установлено соединение с базой 1С или нет! Если индикатор зелёного цвета, тогда база успешно соединена. Если индикатор красного цвета, то соединение не установлено и при нажатии на цветовой индикатор SP1, можно увидеть возможную причину неудачного соединения!

procedure TForm1.SB1Click(Sender: TObject);

begin

if label5.Caption = 'Нет соединения!' then

  with Application do

  begin

    NormalizeTopMosts;

    MessageBox('Неверно указан путь к каталогу с рабочей ИБ 1С', 'Возможная причина');

    RestoreTopMosts;

  end

else

  with Application do

  begin

    NormalizeTopMosts;

    MessageBox('Стабильное соединение с ИБ 1С', '');

    RestoreTopMosts;

  end

end;

 

Кнопка Справочник по нажатию проверяет, выбран ли справочник в CB2. Если нет, то оповещает об этом пользователя, если да, то происходит считывание данных из выбранного справочника и отображение этих данных в ListBox1.

Рис.8

procedure TForm1.Button2Click(Sender: TObject); 

begin

if CB2.Text = '' then

  Begin

    with Application do

    begin

      NormalizeTopMosts;

      MessageBox('Выберите справочник!', 'ПРЕДУПРЕЖДЕНИЕ');

      RestoreTopMosts;

    end;

  Exit;

  end;

OleSpr := Unassigned;