#std554¶
Переопределение общих модулей в условиях иерархии библиотек¶
При разработке нескольких библиотек, стоящих на поддержке друг у друга, снижайте трудоемкость обновления #std553: переопределяемых общих модулей.
1.¶
В библиотеке нижнего уровня (базовой) объявляйте переопределяемый модуль по правилам #std469: создания общих модулей.
Пример имени: БазоваяБиблиотекаПереопределяемый.
2.¶
В библиотеках более высокого уровня реализацию процедур и функций базового переопределяемого модуля доопределяйте при необходимости.
В самом переопределяемом модуле размещайте не реализацию, а только вызов.
Пример: библиотека верхнего уровня «Базовая библиотека»
Пример: библиотека следующего уровня
Процедура НастроитьИнтерфейс(Знач ПараметрыРаботы) Экспорт
// Начало: Базовая библиотека
МодульБазовойБиблиотеки.НастроитьИнтерфейс(ПараметрыРаботы);
// Конец: Базовая библиотека
// Начало: Библиотека второго уровня
МодульБиблиотекиВторогоУровня.НастроитьИнтерфейс(ПараметрыРаботы);
// Конец: Библиотека второго уровня
КонецПроцедуры
3.¶
В конечной конфигурации-потребителе реализация переопределяемого модуля строится как цепочка вызовов библиотек плюс прикладная часть.
Пример: конфигурация-потребитель
Процедура НастроитьИнтерфейс(Знач ПараметрыРаботы) Экспорт
// Начало: Базовая библиотека
МодульБазовойБиблиотеки.НастроитьИнтерфейс(ПараметрыРаботы);
// Конец: Базовая библиотека
// Начало: Библиотека второго уровня
МодульБиблиотекиВторогоУровня.НастроитьИнтерфейс(ПараметрыРаботы);
// Конец: Библиотека второго уровня
// Настройки конфигурации-потребителя.
// ...
КонецПроцедуры
Такой подход позволяет:
- скрыть от библиотек верхнего уровня и конфигураций-потребителей детали реализации библиотек нижних уровней;
- снизить риск ошибок при обновлении кода переопределяемого общего модуля;
- при необходимости сохранить возможность отказаться от части библиотечной реализации.
Проверки¶
#acc:499 #acc:500 #acc:501 #acc:502 #acc:503 #acc:505 #acc:506