Условная регистрация компонентов в контексте приложения
Иногда вам может потребоваться выбирать, какие именно классы вы хотите добавлять в свою поделку. Например, вы хотите загружать определенный класс только при выполнении какого-нибудь условия (из-за конфликта имен, к примеру). На помощь придёт объект &Заготовка, который можно расценивать как готовый набор желудей, добавляемый в поделку.
&Заготовка - это очень хитрый &Желудь! В отличие от обычных желудей он автоматически создается на фазе инициализации приложения, а затем у него вызывается метод ПриИнициализацииПоделки(Поделка). Желудёвость заготовки позволяет пользоваться частью возможностей обычных желудей - на нем могут срабатывать &Напильники, добавленные в Поделку до &Заготовки, однако из всего многообразия веществ зависимостей ему доступны только &Детальки с настройками приложения. Ни тебе &Пластилина, ни &Блестяшек навесить на &Заготовку нельзя.
Перем _ПереопределитьПроверятор;
&Заготовка
Процедура ПриСозданииОбъекта(&Деталька(ЗначениеПоУмолчанию = Ложь) ПереопределитьПроверятор)
_ПереопределитьПроверятор = ПереопределитьПроверятор;
КонецПроцедуры
Процедура ПриИнициализацииПоделки(Поделка) Экспорт
ПутьКСценарию = "./ОбычныйПроверятор.os";
Если _ПереопределитьПроверятор Тогда
ПутьКСценарию = "./НеобычныйПроверятор.os";
КонецЕсли;
ПодключитьСценарий(ПутьКСценарию, "Проверятор");
КонецПроцедуры