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