Содержание
Что такое модули 1С
Модуль – это текст на встроенном языке, расположенный в определенном месте конфигурации. Полностью название звучит как “программный модуль”, но в основном используется сокращенный вариант. Поэтому далее мы везде под словом “модуль” будем подразумевать именно программный модуль 1С.
Структура модулей
Модули в 1С в общем случае состоят из трех разделов.
- Раздел объявления переменных
- Раздел процедур и функций
- Раздел основной программы
Каждый из этих разделов может быть пропущен. Например, в модуле могут быть только объявления переменных или только раздел основной программы.
Варианты компиляции модулей
Модули компилируются платформой в трех вариантах. Есть исключительно серверные модули, которые исполняются всегда только на сервере. Примеры – модуль объекта, модуль менеджера. Есть также модули, которые исполняются всегда только на клиенте – например, модуль управляемого приложения. И третий вариант – комбинированные модули, часть кода которых компилируется на клиенте, а часть – на сервере. Например – общие модули и модули форм, модули команд.
Какие бывают модули?
Модули не существуют сами по себе. В платформе каждый модуль принадлежит какому-либо объекту метаданных, либо самой конфигурации.
Модули конфигурации. В зависимости от параметров конфигуратора, модуль приложения может быть один, либо разделиться на модуль управляемого и обычного приложения.
- Модуль управляемого приложения. Модуль служит для обработки событий запуска клиентского приложения и завершения работы, полнотекстового поиска, а также обработки внешних событий от оборудования (сканеры, кассы, весы и др.). Соответственно, содержимое этого модуля исполняется всегда только на клиенте.
- Модуль сеанса. Служит для инициализации параметров сеанса. Модуль исполняется на сервере, всегда в привилегированном режиме.
- Модуль внешнего соединения. Предназначен для того, чтобы обработать события начала и завершения работы при внешнем (программном) соединении. Окно клиентского приложения при этом не запускается, поэтому данный модуль исполняется на сервере.
- Модуль обычного приложения. Выполняет те же функции, что и модуль управляемого приложения, но только в варианте запуска “Толстый клиент обычное приложение”.
Общие модули в 1С
Это объекты метаданных, располагающиеся в ветке “Общие”. Помимо собственно программного кода, общие модули имеют ряд свойств, влияющих на поведение и контекст исполнения модуля (где именно будет исполняться модуль – на сервере, на клиенте, или при внешнем соединении). Общие модули могут содержать только раздел процедур и функций.
Основное предназначение общих модулей – это структурированное хранение процедур и функций, которые могут быть использованы во многих местах конфигурации, с целью избежать дублирования кода. Процедуры и функции, связанные между собой логически, объединяются в один общий модуль. Правильно подобранные имена общих модулей и содержащихся в них процедур и функций повышают читаемость кода, что помогает лучше ориентироваться при чтении и анализе кода.
Модуль формы
В 1С у каждой формы есть собственный модуль, который прежде всего предназначен для обработки событий при интерактивном взаимодействии пользователя и экранной формы. Это может быть нажатие кнопки, включение переключателя, заполнение полей, и многие другие события. Помимо обработчиков событий, связанных с элементами управления, существуют также события, связанные с самой формой – например, обработчики открытия и закрытия формы. Программный код в модуле формы четко разделяется на клиентскую и серверную часть, это реализовано при помощи директив компилляции.
Модуль объекта
Если модуль формы отвечает преимущественно за взаимодействие с пользователем, то модуль объекта ориентирован на прикладную логику и работу с самой базой данных. Модуль объекта существует у каждого прикладного объекта конфигурации, имеющего объектную сущность – у справочников, документов, планов видов характеристик и т.д.
В модуле объекта реализуется прикладная логика, связанная с обработкой одного конкретного объекта – одного элемента справочника, одного документа, одного счета из плана счетов, и т.п. Состав обработчиков в модуле объекта зависит от типа этого объекта. Например, и у документа, и у справочника есть обработчик “ПриЗаписи”, но только у документа есть обработчик “ОбработкаПроведения”.
Использование обработчиков в модуле объекта позволяет средствами языка 1С проверить заполнение объекта, переопределить поведение при создании нового объекта, при записи его в базу или при удалении, и т.п.
Модуль набора записей
Данные модули существуют у объектов конфигурации, имеющих табличную сущность – регистров. Они выполняют ту же роль, что и модули объектов – позволяют проверить заполнение набора записей, выполнить обработчики при записи, и т.п.
Модуль менеджера значения
Модуль менеджера значения — модуль константы, в котором описываются обработчики проверки заполнения, перед записью и при записи.
Модуль менеджера
Модули менеджера доступны у многих объектов конфигурации – документов, констант, регистров, и др. Используя модуль менеджера, можно переопределить стандартное поведение платформы, касающееся сразу всех объектов, а не одного. Например:
- сформировать представление ссылки – то, как элемент будет отображаться для пользователя
- переопределить выбор открываемой формы
- изменить список, формируемый платформой при вводе по строке, автоподборе текста и быстром выборе
Прочие модули в платформе 1С
Существует еще значительное количество объектов, имеющих собственные модули, но у которых нет предопределенных платформой обработчиков. Предполагается, что в этих модулях разработчик будет реализовывать собственные алгоритмы.
- Модули HTTP и Web-сервисов
- Модули команд
- Модули ботов (с появлением системы взаимодействия в 1С появилась возможность создавать собственных ботов)
- Модули сервисов интеграции