1С:Предприятие 8.2 /
Разработчикам /
Создание и изменение объектов метаданных
Правила создания общих модулей
1.1. Общие модули создаются для реализации процедур и функций, объединенных по некоторому признаку. Как правило, в один общий модуль помещаются процедуры и функции одной подсистемы конфигурации (продажи, закупки) или процедуры и функции сходного функционального назначения (работа со строками, общего назначения).
1.2. При разработке общих модулей следует выбирать один из четырех контекстов выполнения кода:
Тип общего модуля | Пример наименования | Вызов сервера | Сервер | Внешнее соединение | Клиент (обычное приложение) | Клиент (управляемое приложение) | |
1. | Серверный | ОбщегоНазначения (или ОбщегоНазначенияСервер) | + | + | + | ||
2. | Серверный для вызова с клиента | ОбщегоНазначенияВызовСервера | + | + | |||
3. | Клиентский | ОбщегоНазначенияКлиент (или ОбщегоНазначенияГлобальный) | + | + | |||
4. | Клиент-серверный | ОбщегоНазначенияКлиентСервер | + | + | + | + |
2.1. Серверные общие модули предназначены для размещения серверных процедур и функций, не доступных для использования из клиентского кода. В них реализуется вся внутренняя серверная бизнес-логика приложения.
Для корректной работы конфигурации в режимах внешнего соединения, управляемого и обычного приложений, серверные процедуры и функции следует размещать в общих модулях с признаками:
- Сервер (флажок Вызов сервера сброшен),
- Клиент (обычное приложение),
- Внешнее соединение.
В таком случае гарантируется возможность вызова серверных процедур и функций с параметрами мутабельных типов (например, СправочникОбъект, ДокументОбъект и т.п.). Как правило, это:
- обработчики подписок на события документов, справочников и т.п., которые принимают в качестве параметра мутабельное значение (объект).
- серверные процедуры и функции, в которые в качестве параметра передается объект из модулей справочников, документов и пр., а также из модулей с подписками на события.
Серверные общие модули называются по общим правилам именования объектов метаданных.
Например: РаботаСФайлами, ОбщегоНазначения
В отдельных случаях для предотвращения конфликта имен со свойствами глобального контекста может быть добавлен постфикс «Сервер».
Например: РегламентныеЗаданияСервер, ОбменДаннымиСервер.
2.2. Серверные общие модули для вызова с клиента содержат серверные процедуры и функции, доступные для использования из клиентского кода. Они составляют клиентский программный интерфейс сервера приложения.
Такие процедуры и функции размещаются в общих модулях с признаком:
- Сервер (флажок Вызов сервера установлен)
Серверные общие модули для вызова с клиента называются по общим правилам именования объектов метаданных и должны именоваться с постфиксом «ВызовСервера».
Например: РаботаСФайламиВызовСервера
Следует иметь в виду, что экспортные процедуры и функции в таких общих модулях не должны содержать параметров мутабельных типов (СправочникОбъект, ДокументОбъект и т.п.), так как их передача из (или в) клиентского кода невозможна.
См. также: Ограничение на установку признака «Вызов сервера» у общих модулей
2.3. Клиентские общие модули содержат клиентскую бизнес-логику ( функциональность , определенную только для клиента) и имеют признаки:
- Клиент (управляемое приложение)
- Клиент (обычное приложение)
Исключение составляют случаи, когда клиентские процедуры и функции должны быть доступны только в режиме управляемого приложения (только в режиме обычного приложения или только в режиме внешнего соединения). В таких случаях, допустима иная комбинация двух этих признаков.
Клиентские общие модули именуются с постфиксом «Клиент».
Например: РаботаСФайламиКлиент, ОбщегоНазначенияКлиент
См. также: минимизация кода, выполняемого на клиенте
2.4. В отдельных случаях, допустимо создание клиент-серверных общих модулей с процедурами и функциями, содержание которых одинаково и на сервере, и на клиенте. Такие процедуры и функции размещаются в общих модулях с признаками:
- Клиент (управляемое приложение)
- Сервер (флажок Вызов сервера сброшен)
- Клиент (обычное приложение)
- Внешнее соединение
Общие модули этого вида именуются с постфиксом «КлиентСервер».
Например: РаботаСФайламиКлиент, ОбщегоНазначенияКлиентСервер
В общем случае, не рекомендуется определять общие модули одновременно для сервера и для клиента (управляемое приложение). Функциональность, определенную для клиента и для сервера, рекомендуется реализовывать в разных общих модулях – см. пп. 2.1 и 2.3. Такое явное разделение клиентской и серверной бизнес-логики продиктовано соображениями повышения модульности прикладного решения, упрощения контроля со стороны разработчика над клиент-серверным взаимодействием и снижением риска ошибок из-за принципиальных отличий требований к разработке клиентского и серверного кода (необходимость минимизации кода, выполняемого на клиенте, разной доступностью объектов и типов платформы и др.). При этом нужно иметь в виду неизбежное увеличение числа общих модулей в конфигурации .
Особым случаем смешанных клиент-серверных модулей являются модули форм и команд, которые специально предназначены для реализации серверной и клиентской бизнес-логики в одном модуле.
3.1. Имена общих модулей рекомендуется строить по общим правилам именования объектов метаданных. Название общего модуля должно совпадать с названием подсистемы или отдельного механизма, процедуры и функции которой он реализует. Рекомендуется избегать в названиях общих модулей таких общих слов как "Процедуры", "Функции", "Обработчики", "Модуль", "Функциональность" и т.п. и применять их только в исключительных случаях, когда они более полно раскрывают назначение модуля.
Для того чтобы различать общие модули одной подсистемы, которые созданы для реализации процедур и функций, выполняемых в разных контекстах, рекомендуется задавать им постфиксы, описанные ранее в пп. 2.1-2.4.
3.2. Дополнительно к общим модулям могут быть добавлены уточняющие постфиксы.
3.2.1. Для глобальных модулей добавляется постфикс «Глобальный», в этом случае постфикс «Клиент» добавлять не следует.
Например: РаботаСФайламиГлобальный
3.2.2. Модули, выполняющиеся в привилегированном режиме, имеющие признак Привилегированный, именуются с постфиксом «ПолныеПрава».
Например: РаботаСФайламиПолныеПрава
3.2.3. Модули, предназначенные для реализации на сервере или на клиенте функций с повторным использованием возвращаемых значений в течение сеанса, именуются с постфиксом «ПовтИсп» и «КлиентПовтИсп» соответственно.
Например: РаботаСФайламиКлиентПовтИсп
3.2.4. Серверные и клиентские модули библиотечных конфигураций (которые предназначены не для самостоятельного использования, а для разработки других конфигураций) с процедурами и функциями, допускающие изменение своей реализации, именуются с постфиксами «Переопределяемый» и «КлиентПереопределяемый».
Например: РаботаСФайламиКлиентПереопределяемый
См. также: Переопределяемые и поставляемые объекты библиотеки
См. также
Другие материалы по теме:
вызов сервера, модуль, обработчики, функциональность, бизнес, процедуры, сервер, события, функции, приложения, тип..., назначения, общие, клиент, дополнительно, значения, объект, конфигурирование, значение, документов, конфигурации
Материалы из раздела: 1С:Предприятие 8.2 / Разработчикам / Создание и изменение объектов метаданных
Другие материалы по теме:
Особенности работы формы с данными
Нас находят: глобальный модуль в подписке на события, 1с создание модули общего назначения, правила создания общих модулей, как именовать общие модуля, внешнее соединение 1с общий модуль, Клиентский модуль не виден 1С, общие модули 1с, что такое ПовтИсп в 1С, что означает ПовтИсп, Т3 на разработку модуля в 1с 8 2
Мы на Facebook