Поддерживаемые объекты формата корреспондента. Возвращает таблицу поддерживаемых в обмене объектов формата для указанного корреспондента.
// Возвращает таблицу поддерживаемых в обмене объектов формата для указанного корреспондента.
//
// Параметры:
// УзелОбмена - ПланОбменаСсылка - Узел плана обмена XDTO соответствующего корреспондента.
// Режим - Строка - Вид запрашиваемой информации: "Отправка" | "Получение" | "ОтправкаПолучение".
// "Отправка" - будут возвращены все объекты, для которых поддерживается отправка;
// "Получение" - будут возвращены все объекты, для которых поддерживается получение;
// "ОтправкаПолучение" - будут возвращены все поддерживаемые объекты.
// По умолчанию "ОтправкаПолучение".
//
// Возвращаемое значение:
// ТаблицаЗначений - состав поддерживаемых объектов формата в разрезе версий.
// * Версия - Строка - Версия формата, например, "1.5".
// * Объект - Строка - Имя объекта формата, например, "Справочник.Номенклатура".
// * Отправка - Булево - Признак поддержки корреспондентом отправки данного объекта формата.
// * Получение - Булево - Признак поддержки корреспондентом получения данного объекта формата.
//
Функция ПоддерживаемыеОбъектыФорматаКорреспондента(УзелОбмена, Режим = "ОтправкаПолучение") Экспорт
ТаблицаОбъекты = Новый ТаблицаЗначений;
ИнициализироватьТаблицуПоддерживаемыхОбъектовФормата(ТаблицаОбъекты, Режим);
НастройкиКорреспондента = РегистрыСведений.НастройкиОбменаДаннымиXDTO.ЗначениеНастройкиКорреспондента(УзелОбмена, "ПоддерживаемыеОбъекты");
Если Не НастройкиКорреспондента = Неопределено Тогда
Для Каждого СтрокаНастройкиКорреспондента Из НастройкиКорреспондента Цикл
Если (СтрНайти(Режим, "Отправка") И СтрокаНастройкиКорреспондента.Отправка)
Или (СтрНайти(Режим, "Получение") И СтрокаНастройкиКорреспондента.Получение) Тогда
СтрокаОбъекты = ТаблицаОбъекты.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаОбъекты, СтрокаНастройкиКорреспондента);
КонецЕсли;
КонецЦикла;
Иначе
Если Не ОбменДаннымиСервер.НастройкаСинхронизацииЗавершена(УзелОбмена) Тогда
Возврат ТаблицаОбъекты;
КонецЕсли;
ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелОбмена);
ТаблицаОбъектыБазы = ПоддерживаемыеОбъектыФормата(ИмяПланаОбмена,
"ОтправкаПолучение", ?(УзелОбмена.Пустая(), Неопределено, УзелОбмена));
Для Каждого СтрокаОбъектыБазы Из ТаблицаОбъектыБазы Цикл
СтрокаОбъектыКорреспондента = ТаблицаОбъекты.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаОбъектыКорреспондента, СтрокаОбъектыБазы, "Версия, Объект");
Если СтрНайти(Режим, "Отправка") > 0 Тогда
СтрокаОбъектыКорреспондента.Отправка = СтрокаОбъектыБазы.Получение;
КонецЕсли;
Если СтрНайти(Режим, "Получение") > 0 Тогда
СтрокаОбъектыКорреспондента.Получение = СтрокаОбъектыБазы.Отправка;
КонецЕсли;
КонецЦикла;
КонецЕсли;
ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелОбмена);
ЕстьАлгоритм = ОбменДаннымиСервер.ЕстьАлгоритмМенеджераПланаОбмена(
"ПриОпределенииПоддерживаемыхКорреспондентомОбъектовФормата", ИмяПланаОбмена);
Если ЕстьАлгоритм Тогда
ПланыОбмена[ИмяПланаОбмена].ПриОпределенииПоддерживаемыхКорреспондентомОбъектовФормата(УзелОбмена, ТаблицаОбъекты, Режим);
КонецЕсли;
ТаблицаОбъекты.Индексы.Добавить("Объект");
Возврат ТаблицаОбъекты;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ПоддерживаемыеОбъектыФормата (БСП)
ВерсияИнтерфейсаКорреспондента (БСП)
ЗаполнитьПоддерживаемыеОбъектыXDTO (БСП)
ПриОпределенииВерсииИнтерфейсаКорреспондента (БСП)