ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 02.04.2023

Просмотров: 472

Скачиваний: 5

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

3.3 Структурная схема пакета (дерево вызова программных модулей)

Технология внутримашинной организации создается последовательностью разработанных процедур – это схемы взаимосвязей программных модулей с информационными массивами. Подобная схема представляет собой разбиение всех процессов решения задачи на разные процедуры преобразования массивов, которые называют модулями (это - ввод, контроль, перезапись информации с одного МН на другой, сортировка, уплотнение данных, редактирование, накопление, вывод на печать и т.п.).

Основываясь на результатах, полученных при разработке дерева функций и сценария диалога, построим дерево программных модулей, отображающее структурную схему пакета, содержащей программные модули разных классов. Для создания текста программы на встроенном языке созданы модули прикладного решения. Такие модули располагаются в разных местах конфигурации и имеют разное назначение. Большее количество модулей «привязано» к заданным объектам конфигурации или к самому прикладному решению. Эти модули вызываются в нужный момент работы прикладного решения.

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

Рисунок 30 - Структурная схема пакета

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

3.4 Описание программных модулей

Общий модуль

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

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


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

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

Рисунок 31 - Контекст общего модуля

Модуль приложения.

В конфигурации есть один модуль приложения. Контекст модуля приложения будет образовываться [14] (рис. 32):

  • Глобальным контекстом, включающим экспортируемые функциями и процедуры общих модулей;
  • Локальным контекстом модуля приложения.

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

Рисунок 32 - Контекст модуля приложения

Основными событиями, обрабатываемыми в модуле приложения, являются события начала и окончания работы приложения. Схема вызова представлена на рис 33 [14].

Событие ПередНачаломРаботыСистемы появляется во время запуска системы до открытия главного окна. В процессе обработки этого события разработчик имеет возможность отказаться от запуска системы в случае, если условия не выполняются. Надо учесть, что поскольку данное событие вызывается в тот момент, когда главное окно программы ещё не открыто, будет недоступен набор действий, которые требуют наличия главного окна.

Событие ПриНачалеРаботыСистемы появляется при запуске системы «Фаворит». Разработчик уже не может отказаться от запуска системы, но может выполнять действия, которые обязательно должны быть выполнены при начале работы пользователя системы (например, открыть форму, содержащую справочную информацию и т.д.)

Событие ПередЗавершениемРаботыСистемы появляется при завершении работы системы «Фаворит» до момента закрытия главного окна. Обрабатывая это событие, разработчик может отказаться от завершения работы, если какие-либо условия не выполнены.


Событие ПриЗавершенииРаботыСистемы появляется при завершении работы системы «Фаворит» после закрытия главного окна. В обработчике этого события разработчик уже не может отказаться от закрытия приложения, но может выполнять действия, которые обязательно должны быть выполнены при окончании работы пользователя.

Модуль объекта

Любой прикладной объект конфигурации, данные которого могут быть модифицированы «Фаворит», имеет свой модуль. Такой модуль используют при создании объектов встроенного языка, которые позволяют модифицировать данные объектов конфигурации. Соответствующие объекты встроенного языка создаются, например, при введении нового объекта, при копировании, при получении данных существующего объекта и т.д. для различных объектов конфигурации этот модуль имеет различные имена.

Рисунок 33 - Последовательность вызова событий модуля приложения

Контекст модуля объекта образуется [14]:

  • Глобальным контекстом, в том числе экспортируемыми функциями и процедурами общих модулей (в зависимости от места создания объекта);
  • Процедурами и функциями модуля приложений или модуля внешнего соединения (в зависимости от места создания объекта);
  • Свойствами и методами объекта встроенного языка, контекст которого расширяется модулем;
  • Реквизитами объекта конфигурации, которому «принадлежит» модуль;
  • Локальным контекстом самого модуля объекта.

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

Кроме описания переменных и основной программы, модуль объекта содержит описание процедур-обработчиков событий, связанных с этим объектом. Состав таких событий различен для разных объектов – ПередЗаписью и ПриЗаписи. Последовательность их вызова определена на рис. 34.

Событие ПередЗаписью вызывается для записи данных, после начала транзакции записи, но до непосредственной записи данных в базу данных. В обработчике этого события разработчик может отказаться от записи данных, если например, не выполнены требуемые условия.

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


Модуль формы.

Любая форма, определённая в конфигурации имеет свой модуль. Этот модуль выполняется при создании объекта Форма встроенного языка. Этот объект создается при открытии формы прикладного объекта (например, при открытии формы элемента справочника) или явно получается средствами встроенного языка.

Контекст модуля формы образуется:

  • Глобальным контекстом, включающим экспортируемыми функциями и процедурами общих модулей (если для этих модулей установлено хотя бы одно из свойств Клиент или Сервер);
  • Экспортируемыми переменными, процедурами и функциями модуля приложений;
  • Свойствами и методами объекта, который назначен основным реквизитом формы, включая экспортируемые переменные, процедуры и функции, определённые в модуле этого объекта;
  • Свойствами и методами расширения формы, определяемого основным реквизитом формы;
  • Свойствами и методами объекта Форма встроенного языка;
  • Реквизитами формы, которой «принадлежит» модуль;
  • Локальным контекстом самого модуля формы.

Рисунок 34 - Последовательность вызова событий модуля объекта

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

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

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

Рисунок 35 - Последовательность вызова событий модуля формы

В обработчике данного события разработчик может отказаться как от открытия формы, так и от выполнения стандартных действий при открытии формы, если, например, будут не выполнены требуемые условия. Набор стандартных действий, которые выполняются после события ПередОткрытием и до события ПриОткрытии, разный для разных форм и определяется расширением формы, соответствующим основному реквизиту формы. Так, для формы объекта справочника после события ПередОткрытием будет выполнена процедура генерации нового кода справочника (если это необходимо) и, также, будет вызван обработчик события ПриУстановкеНовогоКода.


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

Событие ПередЗакрытием появляется при закрытии формы до закрытия окна формы. В обработчике этого события разработчик может отказаться как от закрытия формы, так и от выполнения стандартных действий при закрытии формы, если например, не выполнены требуемые условия. Набор стандартных действий, выполняемых после события ПередЗакрытием, так же различен для различных форм, и определяется расширением формы, соответствующим основному реквизиту формы. Так, если документ был изменен, одним из стандартных действий станет запрос сохранения изменений перед закрытием формы.

Событие ПриЗакрытии появляется при закрытии формы после закрытия окна формы. В обработчике этого события можно описать алгоритм, который будет выполнен в случае, когда форма будет наверняка закрыта.

Контрольный пример реализации и его описание

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

Рисунок 36 - Главная форма

Для добавления нового клиента выбираем форму «Добавить клиента».

Рисунок 37 - Форма «Добавить клиента»

Открываем новую запись и вносим сведения.

Рисунок 38 - Форма «Добавить клиента»

Сохраняем данные, переходим на форму «Заказы» ищем нового клиента и начинаем формировать его заказ.

Рисунок 39 - Форма «Заказы»

При формировании заказы расчет суммы происходит автоматически.

Рисунок 40 - Форма «Заказы»

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