Имя: Пароль:
1C
1С v8
Метаданные, получение типов
0 SkAt
 
03.06.19
18:26
Доброго времени суток! Подскажите, пожалуйста, при вводе строки в конфигураторе <Тип("ДокументСсылка.ЗаказКлиента")> выходит подсказка на ввод имени типа. Как формируется этот список и можно ли получить его программно? Заранее спасибо.
1 Жан Пердежон
 
03.06.19
18:33
если только метаданные - можешь сам в цикле пройтись по ним и составить;
остальное зависит от версии платформы и кроме как из заранее составленного списка не узнаешь.
2 mistеr
 
03.06.19
18:35
Объект глобального контекста Метаданные.
3 Вафель
 
03.06.19
18:41
в турбоконфе наверное можно
4 SkAt
 
03.06.19
18:53
(1) Метаданные не обойти циклом, не обратится по индексу и т.п.
5 Вафель
 
03.06.19
18:54
(4) конечно обойти
6 mistеr
 
03.06.19
19:07
(4) Реальную задачу озвучь
7 SkAt
 
03.06.19
19:29
(6) Попробую)) Обработка для поиска объекта БД по идентификатору ссылки. Должна быть универсальной (под УТ, КА, ЗУП, БП как минимум). Хочу собирать все объекты метаданных, обрабатывать, получать ссылку.
8 PowerBoy
 
04.06.19
07:46
//Поиск объекта по GUID

&НаСервере
Процедура ПоискОбъектаПоGUIDНаСервере()
    // Вставить содержимое обработчика.
    УИ = Новый УникальныйИдентификатор(объект.GUID);
    Если ПолучитьСсылкуНоМенеджеруОбъекта(Справочники,УИ) Тогда
    ИначеЕсли ПолучитьСсылкуНоМенеджеруОбъекта(Документы,УИ) Тогда
    ИначеЕсли ПолучитьСсылкуНоМенеджеруОбъекта(ПланыВидовХарактеристик,УИ) Тогда
    ИначеЕсли ПолучитьСсылкуНоМенеджеруОбъекта(ПланыСчетов,УИ) Тогда
    ИначеЕсли ПолучитьСсылкуНоМенеджеруОбъекта(ПланыОбмена,УИ) Тогда
    ИначеЕсли ПолучитьСсылкуНоМенеджеруОбъекта(БизнесПроцессы,УИ) Тогда
    ИначеЕсли ПолучитьСсылкуНоМенеджеруОбъекта(Задачи,УИ) Тогда
        Сообщить("Объект не найден");
    КонецЕсли;
    объект.ДатаСозданияСсылки = UUID_Timestamp(объект.GUID);
    объект.ВерсияСсылки = UUID_Version(объект.GUID);
    объект.МакАдресСсылки = UUID_Node(объект.GUID);
КонецПроцедуры
&НаСервере
Функция ПолучитьСсылкуНоМенеджеруОбъекта(ОбъектыМенеджер,УИ)
Для Каждого Менеджер Из ОбъектыМенеджер Цикл
  объект.НайденнаяСсылка = Менеджер.ПолучитьСсылку(УИ);
  Если объект.НайденнаяСсылка.ПолучитьОбъект() <> Неопределено Тогда
      Возврат Истина;
  КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецФункции
9 SkAt
 
09.06.19
23:35
(8) Благодарю! Воспользуюсь))
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.