Skip to content

Latest commit

 

History

History
91 lines (73 loc) · 5.55 KB

ПереопределениеМетодовБСП.md

File metadata and controls

91 lines (73 loc) · 5.55 KB

Подисистема, аналог библиотеки стандартных подсистем, для переопределения методов БСП

Назначение

Данная подсистема предназначена для упрощения работы с методами библиотеки стандартных подсистем (БСП) при их отсутствии. Она позволяет переопределять методы БСП с использованием аналогичных модулей и обеспечивает поддержку переадресации вызовов для корректной работы системы.

1. Использование общих модулей для переадресации методов

Для переадресации методов используются общие модули пбп_Переадресация, пбп_ПереадресацияКлиент, пбп_ПереадресацияКлиентПовтИсп, и т.д. В случае отсутствия библиотеки стандартных подсистем(БСП) используются аналоги методов БСП.

Пример вызова серверной процедуры:

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

    пбп_Переадресация.ДобавитьСообщениеДляЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка,,, ТекстОшибки);
  КонецПопытки;    
КонецПроцедуры

2. Структура общих модулей переадресации

  1. Область ПереадресацияМетодов: в ней располагаются методы аналоги.
  2. Внутри этой области расположены именованные области по имени общих модулей, из которых взят аналог метода.
  3. В области СлужебныеПроцедурыИФункции -> МодульПереадресацииПоПодсистемам, необходимо добавить функцию переадресации общего модуля, если она отсутствует.

Пример функции:

    Функция ПереадресацияМодуля<ИмяОбщегоМодуляБСП>()
        Возврат пбп_ПереадресацияПовтИсп.ОпределитьМодульПереадресации(<ИмяОбщегоМодуляБСП>);
    КонецФункции
  1. В начале каждого метода необходимо добавить фрагмент кода для работы механизма переадресации.

Для процедур

    Результат = ПереадресацияМодуля<ИмяОбщегоМодуляБСП>();
    Если Результат.МодульСуществует Тогда
        Результат.Модуль.<ИмяМетода>(Параметры);
        Возврат;
    КонецЕсли;

Для функция

    Результат = ПереадресацияМодуля<ИмяОбщегоМодуляБСП>();
    Если Результат.МодульСуществует Тогда
        Возврат Результат.Модуль.<ИмяМетода>(Параметры);     
    КонецЕсли;
  1. Методы располагаются в области ПереадресацияМетодов, и в описании метода указывается // Аналог метода БСП.

Пример:

#Область ПрограммныйИнтерфейс
#Область ПереадресацияМетодов
#Область ОбщегоНазначения
  
// Аналог метода БСП.
// <Описание>
//
Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт
    Результат = ПереадресацияМодуляОбщегоНазначения();
    Если Результат.МодульСуществует Тогда
        Результат.Модуль.ОбщегоНазначения(ИмяМетода, Параметры);
        Возврат;
    КонецЕсли;

    <Продолжение>
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти