Меню


Курсы СтимулСправочникПолезные материалы1С:Предприятие 8.2РазработчикамРазработка и использование …

1С:Предприятие 8.2 /
Разработчикам /
Разработка и использование библиотек

Оглавление

Переопределение общих модулей в условиях иерархии библиотек

Методическая рекомендация (полезный совет)

При разработке нескольких библиотек, стоящих на поддержке друг у друга, следует минимизировать трудоемкость по обновлению кода переопределяемых общих модулей в каждой из библиотек. Для этого рекомендуется использовать следующую методику:

1. В библиотеке нижнего уровня иерархии (самой базовой) объявляется переопределяемый модуль по общим правилам, изложенным выше.
Например: БазоваяБиблиотекаПереопределяемый.

2. В библиотеках более высокого уровня реализация процедур и функций переопределяемого модуля базовой библиотеки может быть при необходимости доопределена. При этом в переопределяемом модуле размещается не сама реализация (ее код), а только один вызов.

Например, в общем модуле БазоваяБиблиотекаПереопределяемый в библиотеке верхнего уровня «Базовая библиотека» реализация фактически размещается в модуле МодульБазовойБиблиотеки:

Процедура НастройкаИнтерфейса(Знач ПараметрыРаботы) Экспорт
	
	// Начало: Базовая библиотека
	МодульБазовойБиблиотеки.НастройкаИнтерфейса(Знач ПараметрыРаботы);
	// Конец: Базовая библиотека
	
 КонецПроцедуры 

в этом же общем модуле БазоваяБиблиотекаПереопределяемый в следующей библиотеке верхнего уровня «Библиотека второго уровня»:

Процедура НастройкаИнтерфейса(Знач ПараметрыРаботы) Экспорт
	
	// Начало: Базовая библиотека
	МодульБазовойБиблиотеки.НастройкаИнтерфейса(Знач ПараметрыРаботы);
	// Конец: Базовая библиотека
	
	// Начало: Библиотека второго уровня
	МодульБиблиотекиВторогоУровня.НастройкаИнтерфейса(Знач ПараметрыРаботы);
	// Конец: Библиотека второго уровня
	
КонецПроцедуры

и т.д.

3. Таким образом, в конечной конфигурации -потребителе реализация переопределяемого модуля имеет вид:

Процедура НастройкаИнтерфейса(Знач ПараметрыРаботы) Экспорт
	
	// Начало: Базовая библиотека
	МодульБазовойБиблиотеки.НастройкаИнтерфейса(Знач ПараметрыРаботы);
	// Конец: Базовая библиотека
	
	// Начало: Библиотека второго уровня
	МодульБиблиотекиВторогоУровня.НастройкаИнтерфейса(Знач ПараметрыРаботы);
	// Конец: Библиотека второго уровня
	
	// а теперь выполняем настройки так, как это надо нашей  конфигурации 
	// ...
	
КонецПроцедуры

Такой подход позволяет

  • скрыть от библиотек верхнего уровня и конфигураций-потребителей детали реализации библиотек более нижнего уровня, что минимизирует риск ошибки при обновлении кода переопределяемого общего модуля;
  • но при этом, в общем случае, оставляет возможность выбора: воспользоваться или отказаться от нее.

Подписка на новости RSS

Мы на Facebook