Имя: Пароль:
1C
 
Как программно выполнить поиск ссылок на объекты?
0 ИС-2
 
03.05.10
17:05
т.е сделать тоже, что и при нажатии правой кнопкой мыши на объекте метаданных в конфигураторе. Надо найти все объекты, где есть реквизит с типом физ. лица. Можно ли?
1 dk
 
03.05.10
17:40
в СП глядел?
2 dk
 
03.05.10
17:41
что-то типа НайтиССылки или ПоискССылок
3 NcSteel
 
03.05.10
18:06
(2) Имхо имеется ввиду не ссылки на объекты, а ссылки на метаданные.

(0) Только перебор метаданных.
4 ShoGUN
 
03.05.10
18:06
(0) У тебя в заголовке и в посте разные вопросы написаны. То что в посте - ИМХО программно только перебором метаданных.
(2) Это поиск ссылок на конкретные объекты данных. Он другое хочет - поиск нужных метаданных в конфигурации.
5 dk
 
03.05.10
18:09
тогда тупо метаданные перебрать, тока автор слинял куда-то
6 ИС-2
 
04.05.10
10:18
только полность автоматизировать не получилось - итератора для метаданных нет :(
7 hhhh
 
04.05.10
10:27
(6) как это нет? А чем же мы всё это время пользовались?
8 WickeD
 
04.05.10
10:29
9 ИС-2
 
05.05.10
13:28
А как определить, что ЭлементКоллекции это справочник?

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

// Локальные и служебные процедуры и функции

Функция ПолучитьКоллекцииМетаданных ()
   Коллекции = Новый Массив;
   Коллекции.Добавить(Метаданные.Справочники);
   Коллекции.Добавить(Метаданные.Документы);
   Коллекции.Добавить(Метаданные.РегистрыСведений);
   Коллекции.Добавить(Метаданные.РегистрыНакопления);
   Коллекции.Добавить(Метаданные.РегистрыБухгалтерии);
   Коллекции.Добавить(Метаданные.РегистрыРасчета);

   Возврат Коллекции;
КонецФункции
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.