Розміщення відомостей про налаштування підсистеми
<em>Сфера застосування: керований застосунок, звичайний застосунок.</em>
Сфера застосування: керований застосунок, звичайний застосунок.
Для залучення можливостей налаштування функціональності бібліотеки для роботи в конкретній конфігурації-споживачі використовуються перевизначувані об'єкти.
Усі налаштування підсистеми, доступні для зміни розробникам під час упровадження, можна поділити на загальні для всіх об'єктів підсистеми (або для групи об'єктів) і специфічні для конкретних об'єктів. Під час вибору місця розміщення таких налаштувань слід керуватися такими принципами.
1. Налаштування підсистеми, загальні для всіх об'єктів або для групи об'єктів метаданих, рекомендується задавати в перевизначуваному модулі. Для цього створити одну процедуру з іменем ПриОпределенииНастроек і параметром Настройки типу Структура, яку попередньо заповнено значеннями за замовчуванням. Використання структури як значення параметра дає змогу розширювати програмний інтерфейс, додаючи нові властивості до структури, без порушення зворотної сумісності.
Наприклад, визначення налаштувань підсистеми Варіанти звітів, загальних для всіх звітів у загальному модулі ВариантыОтчетовПереопределеяемый:
Процедура ПриОпределенииНастроек(Настройки) Экспорт Настройки.ВыводитьОтчетыВместоВариантов = Истина; Настройки.ВыводитьОписания = Истина; Настройки.ДругиеОтчеты.ПоказыватьФлажок = Истина; КонецПроцедуры
1.1. Для визначення списку об'єктів конфігурації, з якими працює підсистема, не слід використовувати перебір об'єктів метаданих із конструкцією Попытка Исключение. Замість цього рекомендується створювати окрему процедуру перевизначуваного модуля, у якій перелічувати такі об'єкти. Наприклад, ПриОпределенииПодключенныхОтчетов містить список звітів конфігурації, підключених до підсистеми.
1.2. Процедури, що дають змогу перевизначити бізнес-логіку одразу для всіх об'єктів, з якими працює підсистема, також рекомендується розміщувати в перевизначуваному модулі. Імена процедур рекомендується обирати виходячи з виконуваної дії. Наприклад: ПриРегистрацииИзмененийКлючейВариантовОтчетов описує зміни імен варіантів звітів. Для кожної виконуваної дії рекомендується створювати окрему процедуру.
2. Налаштування або обробники, специфічні для окремого об'єкта, рекомендується розміщувати в модулі менеджера цього об'єкта. Для процедури, що містить інформацію про властивості, реквізити або про наявність методів об'єкта, рекомендується використовувати імена виду ПриОпределенииНастроек<ИмяПодсистемы>. Наприклад ПриОпределенииНастроекВариантовОтчетов.
Процедури, що задають перевизначувану бізнес-логіку, специфічну для конкретного об'єкта, також рекомендується розміщувати в модулі менеджера цього об'єкта. Для кожної виконуваної дії рекомендується створювати окрему процедуру. При цьому наявність тієї чи іншої процедури в модулі менеджера задається в процедурі ПриОпределенииНастроек<ИмяПодсистемы>, що дає змогу уникнути використання конструкції Попытка Исключение для перевірки наявності процедури. Наприклад, у модулі менеджера звіту задано процедури:
Процедура ПриОпределенииНастроекВариантовОтчетов(Настройки) Экспорт Настройки.ОпределитьНастройкиФормы = Истина; Настройки.Размещение.Вставить(ВариантыОтчетовКлиентСервер.ИдентификаторНачальнойСтраницы(), "Важный"); Настройки.ПриПолученииДанныхОтчета = Истина; // Наявність процедури. КонецПроцедуры Процедура ПриПолученииДанныхОтчета(Данные) Экспорт Данные.Очистить(); // Власна процедура отримання даних. КонецПроцедуры
Процедура ПриОпределенииНастроекВариантовОтчетов визначає налаштування конкретного звіту та повідомляє про наявність процедури ПриПолученииДанныхОтчета, у якій задано перевизначувану обробку даних звіту.