Данная подсистема предназначена для упрощения работы с методами библиотеки стандартных подсистем (БСП) при их отсутствии. Она позволяет переопределять методы БСП с использованием аналогичных модулей и обеспечивает поддержку переадресации вызовов для корректной работы системы.
Для переадресации методов используются общие модули пбп_Переадресация
, пбп_ПереадресацияКлиент
, пбп_ПереадресацияКлиентПовтИсп
, и т.д. В случае отсутствия библиотеки стандартных подсистем(БСП) используются аналоги методов БСП.
Пример вызова серверной процедуры:
&НаСервере
Процедура СохранитьКаталогИсходногоКодаКонфигурации(Каталог)
пбп_Переадресация.ХранилищеОбщихНастроекСохранить(
КлючОбъекта(),
"пбп_ПользовательскиеФункции_КаталогИсходногоКода",
Каталог);
КонецПроцедуры
Процедура ОчиститьИсториюИнтеграции() Экспорт
Попытка
// Попытка удаления элементов справочника
Исключение
ИмяСобытия = НСтр("ru = 'Очистка истории интеграции'");
ТекстОшибки = СтрШаблон("Не удалось удалить запись истории интеграции %1", ВыборкаДетальныеЗаписи.Ссылка);
пбп_Переадресация.ДобавитьСообщениеДляЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка,,, ТекстОшибки);
КонецПопытки;
КонецПроцедуры
- Область
ПереадресацияМетодов
: в ней располагаются методы аналоги. - Внутри этой области расположены именованные области по имени общих модулей, из которых взят аналог метода.
- В области
СлужебныеПроцедурыИФункции
->МодульПереадресацииПоПодсистемам
, необходимо добавить функцию переадресации общего модуля, если она отсутствует.
Пример функции:
Функция ПереадресацияМодуля<ИмяОбщегоМодуляБСП>()
Возврат пбп_ПереадресацияПовтИсп.ОпределитьМодульПереадресации(<ИмяОбщегоМодуляБСП>);
КонецФункции
- В начале каждого метода необходимо добавить фрагмент кода для работы механизма переадресации.
Результат = ПереадресацияМодуля<ИмяОбщегоМодуляБСП>();
Если Результат.МодульСуществует Тогда
Результат.Модуль.<ИмяМетода>(Параметры);
Возврат;
КонецЕсли;
Результат = ПереадресацияМодуля<ИмяОбщегоМодуляБСП>();
Если Результат.МодульСуществует Тогда
Возврат Результат.Модуль.<ИмяМетода>(Параметры);
КонецЕсли;
- Методы располагаются в области
ПереадресацияМетодов
, и в описании метода указывается// Аналог метода БСП.
Пример:
#Область ПрограммныйИнтерфейс
#Область ПереадресацияМетодов
#Область ОбщегоНазначения
// Аналог метода БСП.
// <Описание>
//
Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт
Результат = ПереадресацияМодуляОбщегоНазначения();
Если Результат.МодульСуществует Тогда
Результат.Модуль.ОбщегоНазначения(ИмяМетода, Параметры);
Возврат;
КонецЕсли;
<Продолжение>
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти