Довідковий матеріал

Правила створення спільних модулів

1.1. Спільні модулі створюються для реалізації процедур і функцій, об'єднаних за певною ознакою. Як правило, в одному спільному модулі розміщуються процедури і функції однієї підсистеми конфігурації (продажі, закупівлі) або процедури і функції подібного функціонального призначення (робота з рядками, загального призначення).Див. також

Модульна архітектура з розділеними серверним і клієнтським блоками, з’єднаними через спільний центральний модуль.

Див. також

 

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. Серверні та клієнтські модулі бібліотечних конфігурацій (які призначені не для самостійного використання, а для розробки інших конфігурацій) із процедурами і функціями, що допускають зміну своєї реалізації, іменуються з постфіксами «Переопределяемый» і «КлиентПереопределяемый».
Наприклад: РаботаСФайламиКлиентПереопределяемый

Див. також: Перевизначувані та постачувані об'єкти бібліотеки

Див. також

  • Тексти модулів
  • Структура модуля
Записатися телефоном