Программные модули в конфигурации системы 1С:Предприятие не являются самостоятельными программами в общепринятом понимании этого слова, поскольку они являются только частью всей конфигурации задачи. Программный модуль - это своего рода «контейнер» для размещения текстов процедур и функций, написанных на встроенном языке [30]. Место самого программного модуля в конфигурации - в тех точках, где требуется специфическая реакция системы на действия пользователя, определяемые условиями задачи. Например, при обработке данных, внесенных в документ, при проведении документа.
Для написания процедур и функций в программе предусмотрено наличие различных видов модулей, которые запускаются в строго определенные моменты работы с системой.
Модуль Формы списка справочника- запускается при вызове формы списка справочника.
Модуль Формы группы справочника- запускается при открытии формы группы справочника.
Модуль Формы элемента справочника- запускается при открытии формы элемента справочника.
Модуль Формы документа- запускается при открытии формы документа.
Модуль документа- запускается при проведении документа, удалении проведенного документа, при снятии проведения, при выполнении архивации записей журнала расчетов.
Модуль Формы журнала документов- запускается при вызове формы журнала документов.
Модуль Формы счёта- запускается при открытии формы бухгалтерского счёта.
Модуль Формы списка плана счетов- запускается при вызове формы списка плана счетов.
Модуль Формы Операции- запускается при вызове формы бухгалтерской операции.
Модуль Формы журнала операций- запускается при вызове формы журнала операций.
Модуль Формы журнала проводок -запускается при вызове формы журнала проводок.
Модуль Формы журнала расчетов- запускается при вызове формы журнала расчетов.
Модуль Формы вида расчета- запускается при расчете записей журнала расчетов.
Модуль Формы отчета или обработки- запускается при открытии диалоговой формы отчета или обработки.
Глобальный модуль - находится в корневом разделе конфигурации и запускается при старте всей прикладной задачи. Он определяет глобальный контекст всей задачи (связывает работу частей конфигурации в единое целое).
Все модули имеют одинаковую структуру. Каждый модуль может состоять из трех разделов [29]:
Раздел переменных. В языке «1С» переменные не являются типом метаданных, они содержат значения, которые могут изменяться во время исполнения программы. Переменные существуют в оперативной памяти компьютера и исчезают (в отличие от констант) при окончании работы модуля (процедуры) или после окончания работы системы.
Раздел процедур и функций. Отдельные действия, выполняемые в модуле, оформляются как процедуры или функции и имеют имя. Отличия процедур от функций: процедуры выполняют некоторую задачу, например, напечатать документ. Функции выполняют вычисления и передают системе результат, например, вычислить дату и передать ее для дальнейшей обработки в процедуру.
Раздел основной программы. Обычно здесь происходит инициализация каких-либо переменных, необходимая еще до первого вызова процедуры или функции.
Каждый из разделов не является обязательным, но если присутствует, то в том порядке, как это перечислено.
Когда, в соответствии с логикой работы, должен быть вызван модуль, система выполняет следующие действия:
Находит текст модуля в конфигурации.
Выполняет его компиляцию. На этом этапе происходит преобразование текста модуля во внутренний формат данных (он недоступен пользователю), который позволяет системе быстро выполнять алгоритм, не интерпретируя его текст много раз.
Если компиляция завершилась удачно, т.е. не было найдено синтаксических ошибок, то управление получает та часть модуля, которая называется основной программой. Ее назначение - выполнить инициализацию модуля.
Если в процессе компиляции найдены ошибки, то модуль считается неработоспособным, и, скорее всего, ваша конфигурация нормально работать не будет. Система выдаст сообщение об ошибке.
35. Создайте модуль: выберите вкладку Метаданные, выберите Кадры, МП, выберите Глобальный модуль, введите следующий код по Пример 15.1, «Первая программа»
Пример 15.1. Первая программа
//раздел переменных Перем привет; //раздел процедур и функций Процедура приветствие () Предупреждение (привет); КонецПроцедуры //раздел инициализации привет=”Добрый день!”; //инициализация переменной приветствие(); //вызов процедуры
36.Выполните проверку синтаксиса кода: выберите Действия | Синтаксический контроль.
Текст программного модуля разноцветный. Синтаксическая ошибка в написании оператора изменяет его цвет. Настройка выделения цвета конструкций языка находится в меню: Сервис | Параметры, вкладка Модули.
По умолчанию ключевые слова и операторы «1C» выделяются красным цветом, идентификаторы (имена) - синим цветом, комментарии - зеленый цвет.
Разберем введенный код.
Двойная наклонная черта // означает комментарии к программе. Слова, написанные после знака //, система не интерпретирует как программу. Наличие комментариев очень важно, и ими нельзя пренебрегать, иначе вы запутаетесь в программе.
В разделе переменных при помощи ключевого слова Перем мы объявили переменную с идентификатором привет. В разделе процедур и функций мы создали процедуру с именем приветствие. Парные скобки после имени процедуры или функции обязательны. В них может заключаться список параметров. В теле процедуры вызываем системную функцию предупреждение с параметром привет - окно предупреждения.
В разделе инициализации переменной привет присваивается значение - выражение «Добрый день!»(инициализация переменной) и вызывается процедура приветствие. Почему требуется вызывать процедуру? Глобальный модуль автоматически выполняется при старте системы. Но откуда система узнает, какую процедуру нужно выполнять первой, второй и т.д.? Из раздела инициализации, где указан порядок вызова процедур.
37. Загрузите среду «1С:Предприятие»: выберите Сервис | 1С:Предприятие,на запрос Сохранить изменения? выберите Да, на экране должно появится окно с приветствием Добрый день!