СопоставитьСсылки (БСП)

Автор: 1С
ОбщийМодуль.ВыгрузкаЗагрузкаУзловПлановОбменов
БСП

Сопоставить ссылки. Для служебного использования.

// Для служебного использования.
//
Функция СопоставитьСсылки(Контейнер, МенеджерСопоставленияСсылок, ТаблицаИсходныхСсылок) Экспорт
	
	ИсходныеСсылкиДляСтандартнойОбработки = Новый ТаблицаЗначений();
	Для Каждого Колонка Из ТаблицаИсходныхСсылок.Колонки Цикл
		Если Колонка.Имя <> "ЭтотУзел" Тогда
			ИсходныеСсылкиДляСтандартнойОбработки.Колонки.Добавить(Колонка.Имя, Колонка.ТипЗначения);
		КонецЕсли;
	КонецЦикла;
	
	ИмяКолонки = МенеджерСопоставленияСсылок.ИмяКолонкиИсходныхСсылок();
	
	Результат = Новый ТаблицаЗначений();
	Результат.Колонки.Добавить(ИмяКолонки, ТаблицаИсходныхСсылок.Колонки.Найти(ИмяКолонки).ТипЗначения);
	Результат.Колонки.Добавить("Ссылка", ТаблицаИсходныхСсылок.Колонки.Найти(ИмяКолонки).ТипЗначения);
	
	ОбъектМетаданных = Неопределено;
	
	Для Каждого СтрокаТаблицыИсходныхСсылок Из ТаблицаИсходныхСсылок Цикл
		
		Если СтрокаТаблицыИсходныхСсылок.ЭтотУзел Тогда
			
			ОбъектМетаданных = СтрокаТаблицыИсходныхСсылок[ИмяКолонки].Метаданные();
			Менеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ОбъектМетаданных.ПолноеИмя());
			НоваяСсылка = Менеджер.ЭтотУзел();
			
			СтрокаРезультата = Результат.Добавить();
			СтрокаРезультата.Ссылка = НоваяСсылка;
			СтрокаРезультата[ИмяКолонки] = СтрокаТаблицыИсходныхСсылок[ИмяКолонки];
			
		КонецЕсли;
		
	КонецЦикла;
	
	Если ИсходныеСсылкиДляСтандартнойОбработки.Количество() > 0 Тогда
		
		Выборка = Обработки.ВыгрузкаЗагрузкаДанныхМенеджерСопоставленияСсылок.ВыборкаСопоставленияСсылок(
			ОбъектМетаданных, ИсходныеСсылкиДляСтандартнойОбработки, ИмяКолонки);
		
		Пока Выборка.Следующий() Цикл
			
			СтрокаРезультата = Результат.Добавить();
			СтрокаРезультата.Ссылка = Выборка.Ссылка;
			СтрокаРезультата[ИмяКолонки] = Выборка[ИмяКолонки];
			
		КонецЦикла;
		
	КонецЕсли;
	
	Возврат Результат;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

СопоставитьСсылки (БСП)

СопоставитьЗагружаемыеДанныеИзФайла (БСП)

Получение ссылки по навигационной ссылке

Получить ссылку из навигационной ссылки

НажатиеНаСсылкуВсеИнформационныеСсылки (БСП)

СсылкаОбъекта (БСП)

КлючРегистраПоСсылке (БСП)

СсылкаПоКлючуРегистра (БСП)

ОписаниеТипаВсеСсылки (БСП)

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