Проект

Общее

Профиль

Разработка #6670

открыто

Реализовать универсальную функцию для переопределения полей запроса под различные конфигурации

Разработка #6670: Реализовать универсальную функцию для переопределения полей запроса под различные конфигурации

Добавил(а) кб99 Евгений 2 дня назад. Обновлено 2 дня назад.

Статус:
Новая
Приоритет:
Нормальный
Назначена:
-
Версия:
Дата начала:
Срок завершения:
Готовность:

0%

Оценка временных затрат:

Обновлено кб99 Евгений 2 дня назад · Изменено Действия #1

Реализован упрощенный механизм адаптации интеграции под любую конфигурацию.

В общем модуле кб99_ВСД_Общий все возможные поля, по которым могут быть расхождения в различных конфигурациях вынесены в переопределяемые функции:


Функция ПолучитьПредставлениеПолейДокументаВЗапрос()

Возвращает структуру с наименованиями объектов метаданных для использования в запросах
 Ключи структуры:
     ПолеСклад = Название справочника Склады в конфигураторе
     ТекстПоляГоловнойКонтрагент = Определение плательщика
     НаименованиеТабличнойЧастиТовары = Название табличной части с товарами в документах
     ТекстПоляИсточникОтгрузка = Название документа Реализация в конфигураторе
     ТекстПоляИсточникЗаказ = Название документа Заказ клиента в конфигураторе
     ТекстПоляИсточникПеремещение = Название документа Перемещение в конфигураторе
     ПолеСкладОтправитель = Название реквизита Склад отправитель документа Перемещение
     ПолеСкладПолучатель = Название реквизита Склад получатель документа Перемещение
     СправочникСклады = Название справочника Склады в конфигураторе


Функция ЭтоДокументПеремещение(ВыбДок)

    Возвращает результат проверки Тип проверяемого документа = документ перемещение


Функция ЭтоДокументОтгрузка(ВыбДок)

    Возвращает результат проверки Тип проверяемого документа = документ реализация


Функция ПолучитьТекущегоПользователя()

    Возвращает текущего авторизованного пользователя

Для адаптации интеграции необходимо переопределять только эти функции. Функции с запросами остаются общими.

Обновлено кб99 Евгений 2 дня назад Действия #2

Для УНФ модуль переопределения будет выглядеть так

// Модуль используется для переопределения стандартный функций модуля Интеграции
// чтобы при обновлении изменения сохранились - используйте переопределение в этом модуле

// переопределение функций модуля
Функция НайтиФункцию( ИмяФункции ) Экспорт

    ПереопределяемыеФункции = новый Структура;
    ПереопределяемыеФункции.Вставить("ЭтоДокументОтгрузка", Истина);
    ПереопределяемыеФункции.Вставить("ЭтоДокументПеремещение", Истина);
    ПереопределяемыеФункции.Вставить("ПолучитьПредставлениеПолейДокументаВЗапрос", Истина);

    Результат = ПереопределяемыеФункции.Свойство( ИмяФункции );

    Возврат Результат;        

КонецФункции

Функция ЭтоДокументОтгрузка(ВыбДок) Экспорт

    Возврат ТипЗнч(ВыбДок) = Тип("ДокументСсылка.РасходнаяНакладная");

КонецФункции

Функция ЭтоДокументПеремещение(ВыбДок) Экспорт

    Возврат ТипЗнч(ВыбДок) = Тип("ДокументСсылка.ПеремещениеЗапасов");

КонецФункции

Функция ПолучитьПредставлениеПолейДокументаВЗапрос() Экспорт

    Результат = Новый Структура;
    Результат.Вставить("ПолеСклад", "Склад");
    Результат.Вставить("ТекстПоляГоловнойКонтрагент",             "Контрагент.ГоловнойКонтрагент");
    Результат.Вставить("НаименованиеТабличнойЧастиТовары",          "Запасы");

    Результат.Вставить("ТекстПоляИсточникОтгрузка",                 "РасходнаяНакладная");
    Результат.Вставить("ТекстПоляИсточникЗаказ",                 "ЗаказПокупателя");
    Результат.Вставить("ТекстПоляИсточникПеремещение",             "ПеремещениеЗапасов");

    Результат.Вставить("ПолеСкладОтправитель",                     "СтруктурнаяЕдиница");
    Результат.Вставить("ПолеСкладПолучатель",                     "СтруктурнаяЕдиницаПолучатель");
    Результат.Вставить("СправочникСклады",                         "СтруктурныеЕдиницы");

    Возврат Результат;

КонецФункции

Экспортировать в PDF Atom