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