RDT1C/DataProcessors/ирПоискСсылокНаОбъект/Ext/ObjectModule.bsl
2016-12-04 00:14:16 +03:00

49 lines
2.9 KiB
Plaintext

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