ПоддерживаемыеОбъектыФорматаКорреспондента (БСП)

Автор: 1С
ОбщийМодуль.ОбменДаннымиXDTOСервер
БСП

Поддерживаемые объекты формата корреспондента. Возвращает таблицу поддерживаемых в обмене объектов формата для указанного корреспондента.

// Возвращает таблицу поддерживаемых в обмене объектов формата для указанного корреспондента.
//
// Параметры:
//  УзелОбмена - ПланОбменаСсылка - Узел плана обмена 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 (БСП)

ПриОпределенииВерсииИнтерфейсаКорреспондента (БСП)

ПоддерживаетсяВерсияСИдентификаторомОбменаДанными (БСП)

ВерсияФорматаОбменаПриВыгрузке (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз