А. Список модулей; Б. Модуль приложения; В. Форма констант; Поле ввода: режим пароля; Г. Общие модули; Д. Модуль приложения; Е. Модуль формы; Ё. Модуль внешнего соединения; Ж. Схема взаимодействия модулей.
А. По сравнению с седьмой версией, где видов модулей целых три (глобальный, модуль формы и модуль документа), в восьмой версии из несколько больше (а конкретно целых пять). Перечень:
- модуль приложения;
- общие модули;
- модуль внешнего соединения;
- модули объекта;
- модули формы.
Обзор назначения и основных свойств модулей.
Б. Модуль приложения. «Обрабатывает» сеанс пользователя. В этом модуле можно объявлять переменные, функции и процедуры, доступные из других видов модулей. Кроме того, здесь размещаются предопределенные процедуры, обрабатывающие события сеанса пользователя. Например: «ПриНачалеРаботыСистемы()». Мы уже вводили эту процедуру, поэтому для закрепления несколько модифицируем ее. Если кто забыл, то модуль приложения открывается так:
Рисунок 1.
В. Добавим немного секьюрности. Пусть пользователь при входе вводит пароль, заданный в константе «пароль» (константу, естественно, создадим). Ясно, что пароль нужно хранить так, чтоб его никто не видел. Для этого его надо отобразить «звездочками». Чтоб это сделать, создадим
Рисунок 2.
и соответствующим образом отредактируем форму констант. Для отображения символов «*» вместо вводимых в поле ввода существует свойство:
Рисунок 3.
В предприятии будет следующее:
Рисунок 4.
Кроме того, уберем надоедливое сообщение при старте системы, добавив проверку на пустую строку в константе «Приветствие». Следует отметить, что после создания формы констант, новые константы уже не будут попадать в нее автоматически. Текст процедуры:
Рисунок 5.
Завершение работы инициируется процедурой «ЗавершитьРаботуСистемы()». Подробно о процедуре можно посмотреть в С-П.
Г. Общие модули. Предоставляют процедуры и функции, доступные из всей конфигурации. В отличие от модуля приложения, не могут объявлять глобальных переменных и не содержат раздела основной программы. В отличии от семерки, где глобальный модуль совмещает в себе и модуль приложения и общие модули, в восьмерке решили сделать именно так. Лично мне так нравиться более, потому, что можно процедуры и функции сгруппировать согласно назначения и области применения.
В качестве примера создадим общий модуль, отвечающий за действия в товарных документах. Пока у нас из два: «Приходная накладная» и «Расходная накладная». Очевидна схожая структура этих документов. Следовательно, определенная унификация наблюдается и в механизмах, применяемых в этих документах. В частности, это расчеты значений табличной части. Создадим общий модуль «дТоварныеДокументы». В свойствах:
Рисунок 6.
Пока оставим свойства как есть. В модуль вынесем процедуру расчета стоимости товара. В настоящий момент она находится в модуле формы. В общем модуле:
Рисунок 7.
В модуле формы:
Рисунок 8.
Как видно, для экспорта процедуры применяется ключевое слово «Экспорт». В общую процедуру передается текущие данные из формы документа.
Д. Модуль приложения. В отличие от семерки в восьмерке один объект может иметь несколько форм. Процедуры, функции и переменные, описанные в модуле приложения, могут быть доступны из всех форм объекта. Кроме того, в модуле объекта типа «Документ» находится процедура проведения (создания движений по регистрам) документа.
Е. Модуль формы. Элементарный модуль конкретной формы. Процедуры, функции и переменные доступны только в контексте данной формы (текущего модуля).
Ё. Модуль внешнего соединения. Работает в случае открытия конфигурации в режиме COMсоединения. На этом подробно остановимся после рассмотрения COMи OLE.
Ж. Схема взаимодействия модулей:
Рисунок 9.
В следующей статье рассмотрим основные синтаксические конструкции.