Поиск ссылок в метаданных конфигурации

Администрирование - Поиск данных

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

Универсальная обработка, работает на "Управляемых формах", любой конфигурации. Тестирование проводилось на базе платформы 8.3.9.2170 .

Обработка ищет ссылки на выбранный объект в дереве метаданных конфигурации для «Документов»,  «Справочников», "Обработок", "Планов Обмена", "Планов Видов Характеристик". Для «Регистров сведений и накопления», осуществляется поиск документов регистраторов.

                Поиск осуществляется нажатием кнопки "Найти ссылки" или "двойным кликом", на строке дерева метаданных. Первоначально в дерево загружается все объекты метаданных "Документы", "Регистры накопления", "Регистры сведений", "Справочники". При нажатии кнопки "Показать не пустые объекты", в дерево метаданных грузятся только объекты, имеющие хотя бы один экземпляр в базе данных, одновременно заполняется поле количество (объектов метаданных). При этом поиск ссылок ограничивается , данными усеченного дерева метаданных

"Двойной клик" на строке таблицы найденных ссылок, открывает форму списка объектов. То же самое происходит при нажатии кнопки "Список объектов", только список открывается для текущей строки из дерева объектов метаданных.

Обработка будет особенно полезна для изучения структуры и взаимосвязей в незнакомых конфигурациях.

В версии 1.1, таблица значений «Ссылки на объект» заменена, полем таблицы значений «Список метаданных» с типом «Таблица значений» . 

Дальнейшим развитием данной обработки может стать автоматическое генерирование текста запроса, с заданными параметрами.

Скачать файлы

Наименование Файл Версия Размер
Поиск ссылок в метаданных конфигурации:
.epf 10,75Kb
03.07.17
5
.epf 1 10,75Kb 5 Скачать
Поиск ссылок в метаданных конфигурации:
.epf 11,07Kb
03.07.17
8
.epf 1.1 11,07Kb 8 Скачать

См. также

Комментарии
1. Сергей Соловьев (sergey512) 21 20.04.17 18:14 Сейчас в теме
Чем не устраивает стандартный "поиск ссылок на объект"?
2. Ярослав Володимирович (myr4ik07) 114 20.04.17 20:00 Сейчас в теме
(1) а с предприятие разве есть поиск ссылок на объект?!
4. Сергей Соловьев (sergey512) 21 21.04.17 14:45 Сейчас в теме
(2) а смысл это смотреть в предприятии, если ты ищешь ссылки на объект метаданных?
5. Ярослав Володимирович (myr4ik07) 114 21.04.17 15:11 Сейчас в теме
8. Игорь Бештаугорский (IVC_goal) 25 07.06.18 12:58 Сейчас в теме
Схематично можно написать такой код. (Пример из реальной обработки -)
[&НаСервере
Процедура СозданиеТаблицыСсылок(МассивКУдалению, ЗаполнитьСтатистику)

//МассивКУдалению - массив объектов которые удаляем
ТабЗнКУдалению = НайтиПоСсылкам(МассивКУдалению);
НомСтр = 0;

// Таблица найденных ссылок
Для каждого СтрокаУдаления Из ТабЗнКУдалению Цикл
НоваяСтрока = ТаблицаСсылок.Добавить();
НоваяСтрока.Ссылка = СтрокаУдаления.Ссылка;
НоваяСтрока.Данные = СтрокаУдаления.Данные;
НоваяСтрока.Метаданные = СтрокаУдаления.Метаданные.ПолноеИмя();
НомСтр = НомСтр+1;
НоваяСтрока.НомерСтроки = НомСтр;
КонецЦикла;

Если не ЗаполнитьСтатистику Тогда
Возврат;
КонецЕсли;

ТаблицаСсылок.Сортировать("Метаданные");
КрличествоСсылокВсего = ТаблицаСсылок.Количество();

//Далее индивидуально оаботамм с каждой ссылкой - выбираем действие или если есть
// возможеость типизыции действи для объектов, то ниже следующий код


ТабЗн = ТаблицаСсылок.Выгрузить();
ОписаниеТипа = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(5));
ТабЗн.Колонки.Добавить("ЧислоСтрок", ОписаниеТипа);
ТабЗн.ЗаполнитьЗначения(1, "ЧислоСтрок");
ТабЗн.Свернуть("Метаданные", "ЧислоСтрок");
КоличествоНайденныхСсылок = ТабЗн.Итог("ЧислоСтрок");

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

СтатистикаМеаданных.Сортировать("Метаданные");
СсылкиЗагружены = Истина;

КонецПроцедуры ](7)
3. Игорь Бештаугорский (IVC_goal) 25 21.04.17 08:59 Сейчас в теме
Производится поиск ссылок не на конкретный документ, а на ссылки в метаданных. Иначе говоря. в каких объектах метаданных может присутствовать ссылка на данный объект
6. Игорь Бештаугорский (IVC_goal) 25 21.04.17 20:17 Сейчас в теме
Согласен. Если нет необходимости изучить структуру конфигурации, то и нет смысла искать ссылки на метаданные
7. Николай Зевеке (zekrus) 153 07.06.18 11:48 Сейчас в теме
Добрый день!
Тема весьма актуальная - пытаюсь нарисовать удалятор с контролем ссылок.
С уважением.
9. Игорь Бештаугорский (IVC_goal) 25 07.06.18 14:35 Сейчас в теме
(7) Извините. ответил не тому. См. ответ (5) выше
Оставьте свое сообщение