1С модули

Всем привет.
Сегодня рассмотрим модули платформы 1С Предприятия 8.2, их стало больше чем в версии 8.1 и разобраться порой бывает не так уж и легко.
Пример: Что написано в модуле формы

Если посмотреть в справку 1С то увидим следующее определение Модулю:
Модулем называется программа на встроенном языке системы 1С:Предприятие.

А если проще то: В модулях 1С содержится исполняемый код, который необходим для того чтобы каким-либо образом отреагировать на действия системы или пользователя, когда визуальных средств недостаточно для описания взаимодействия объектов в конфигураторе. Также в врограммных модулях можно описывать собственные методы.

Любая строчка кода находится в каком-либо модуле, это отличие от 1С7.7, где программный код мог располагаться и в ячейках таблиц макета и в свойствах элементов формы.

Перечислим модули, которые находятся в 1С 8.2

Модули платформы 1С Предприятия 8.2:

• Модуль управляемого приложения
• Модуль обычного приложения
• Модуль внешнего соединения
• Модулем сеанса
• Общие модули
• Модуль объекта
• Модуль формы
• Модуль менеджера объекта
• Модуль менеджера значений
• Модули наборов записей

Модули_1С

Основные разделы модуля:
1. Раздел описания локальных переменных данного модуля, можно указывать директиву компиляции (существует не для всех модулей).
2. Раздел описания процедур и функции. Если не писать директиву компиляции то по умолчанию она — &НаСервере, порядок процедур и функций не имеет ни какого значения.
3. Раздел основной программы модуля (содержатся некоторые операторы). Данный раздел выполняется при обращении к модулю (существует не для всех модулей).

Не все модули содержат разделы описания переменных и раздел основной программы.
Например: Общий модуль или Модуль сеанса.

Правила компиляции модуля:
1. Некоторые модули компилируются полностью либо на стороне клиента, либо на стороне сервера. Все методы в них – либо клиентские, либо серверные. Пример клиентского модуля – модуль управляемого приложения.
2. Некоторые модули могут совмещать клиентские и серверные методы. В этом случае для каждого метода необходимо указывать директивы компиляции — &НаКлиенте или &НаСервере. Пример – модули управляемых форм.

Классификация модулей:
1. Серверные. Компилируются только на стороне сервера – модуль объекта, модуль менеджера, модуль набора записей.
2. Клиентские. Компилируются только на клиенте, например модуль управляемого приложения.
3. Комбинированные. Могут компилироваться и на сервере и на клиенте – модуль формы и общие модули.

Место компиляции модулей:
1. Тонкий клиент (Предоставляет возможность использования веб-браузера).
2. Сервер.
3. Толстый клиент.

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

Предназначение каждого модуля 1С 8.2

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

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

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

Модулем сеанса
Существует такой общий объект конфигурации как «Параметры сеанса». Модуль сеансов создан для инициализации параметров сеанса (для этого существует определенное событие, при запуске приложения оно стартует самое первое).
Запускается в привилегированном режиме (не выполняется проверка прав доступа при обращении к БД). Модуль сеанса компилируется на сервере. Нет раздела описания переменных и раздела основной программы, нельзя описывать экспортные методы, используется только для установки параметров сеанса. Как видно у модуля сеанса очень узкое предназначение.

Общие модули
Общие модули описывают некоторые общие алгоритмы, содержат функции, которые могут вызываться из различных мест. Общие модули могут быть скомпилированы как на клиенте, так и на сервере.
В общих модулях доступен ТОЛЬКО раздел описания процедур и функций. Если необходимо использовать глобальную переменную то можно использовать, либо параметры сеанса, либо экспортную переменную модуля управляемого приложения.
В общем модуле можно задавать некоторые параметры, которые будут влиять на его поведение. Если в общем модуле установлена галочка «Глобальный» то его экспортные функции будут участвовать в формировании глобального контекста. И к ним можно будет обратиться из другого контекста напрямую (без упоминания имени общего модуля) : МетодОбщегоМодуля( );
Не стоит использовать свойство «Глобальный» общих модулей повсеместно, т.к. такие модули компилируются при старте системы и замедляют старт программы

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

Модуль формы
Модуль формы предназначен для обработки действий пользователя (обработка события нажатия кнопки и т.д.). Так же существуют события связанные непосредственно с самой формой (например событие её открытия, закрытия). Модули управляемых и обычных форм различаются прежде всего тем, что модуль управляемой формы четко разделяется на контекст. Каждая процедура должна иметь директиву компиляции. В обычной форме весь код исполняется на клиенте.
Структура управляемой формы содержит раздел описания переменных, раздел процедур и функций и раздел основной программы (выполняется в момент инициализации формы). К стандартным событиям формы можем обратиться через список процедур и функций (Ctrl+Alt+P) либо в палитре свойств самой формы. Так же в управляемой форме можно обработать событие записи элемента (это событие присутствует только для объектов: справочников, документов).

Модуль менеджера объекта
Модуль менеджера появился только в 1С 8.2,существует у многих объектов конфигурации. Основное предназначение модуля менеджера объекта это переопределить стандартное событие «ОбработкаПолученияДанныхВыбора», а так же в нем можем
Модуль менеджера значений.
У объекта конфигурации константы не существует модуля объекта, а существует очень похожий модуль — модуль менеджера значений. В модуле менеджера значения константы можно описать различные процедуры (в том числе и экспортные), а также обработать 3 события: ПередЗаписью, ПриЗаписи, ОбработкаПроверкиЗаполнения. Этот модуль компилируется на сервере.

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

Основные моменты 1С Модулей я думаю мы расмотрели, а если у вас есть какие-то дополнения пишите пожалуйста в коментариях.

С вами был 1С Программист

Постовой: Задумались купить 1С Предприятие и не знайте у кого? Компания ЛБС входит в 20 лучших 1С:Франчайзи. Занимается автоматизацией учета на базе продуктов «1С». Купите 1с продукты у ЛБС и получите качественное сопровождение и обслуживание 1С.

P.S. Посмейтесь над анекдотот от Лукашенко ))