Каталог решений - О встроенных моделях XDTO платформы 1С

О встроенных моделях XDTO платформы 1С

О встроенных моделях XDTO платформы 1С

В наличии

Иногда в пакетах, предоставленных самой платформой, можно найти интересное. Служебные объекты, системные перечисления, устройство универсальных коллекций.

Категория:

Описание

Учитывая наблюдаемый интерес к работе с XDTO, хочу обратить внимание на информацию о специфике самой платформы, которая предоставлена в пакетах самой платформы. Ничего нового, всё это можно увидеть при работе со стационарным описанием XDTO при выборе типов свойств и объектов, но это интерфейс. Но и программно докопаться несложно. Эти пакеты, ровно с теми же URI, доступны для глобальной переменной ФабрикаXDTO (синглтона). Надо заметить, что этим, помимо клиент-серверной доступности, отличаются способы создания фабрик. Если вы делаете фабрику конструктором, в неё включатся только нужные вам пакеты, а если задействуете синглтон, то всё «барахло» встроенных пакетов тоже ваше. Так вот, путём несложных манипуляций можно получить, например, выгрузку содержимого пакета в текстовый файл, почитать его и узнать кое-что интересное. Например, для желающих глубже понять устройство 1С и особенности её поведения в тех или иных ситуациях.

По рассмотрении пакетов, выяснилось следующее:

«http://v8.1c.ru/8.1/data/enterprise/current-config» — все метаданные, но без универсальных полей, т.е. без, например, таких понятий, как ДлинаКода или РежимУправленияБлокировкойДанных,  только реквизиты и самое общее по ним, что, в общем, можно получить обычным опросом метаданных.
«http://v8.1c.ru/8.1/data/core» — системные перечисления, служебные типы, самые-самые базисные понятия, на которых построена и сама платформа, у меня вызвало чисто теоретический интерес, т.к. не знаю, где применить.
«http://v8.1c.ru/8.1/data/enterprise» — системные перечисления, служебные типы, но уже не самые базисные понятия, и это может понадобиться в тонкостях работы конвертаций, обменов и тыды.
«http://v8.1c.ru/8.2/uobjects» — универсальные коллекции, в т.ч. ДанныеФормы. Любителям дербанить и пересобирать формы, используя выгрузку в файлы на 8.3 рекомендую.
«http://v8.1c.ru/8.2/bsl» — объекты обработки ошибок, тоже может пригодиться.
«http://v8.1c.ru/8.2/data/bsl» — описание описаний процедур и функций, если я верно понял. Наверное, было бы интересно в каких-то интеграциях в вебе, в веб-расширении и прочих трансляциях).
«http://v8.1c.ru/8.2/managed-application/core» — базовые и основные для интерфейсов УФ. Опять-таки, разбирать конфу с учётом этих сведений удобнее.
«http://v8.1c.ru/8.1/data/ui» — также некоторые служебные системные перечисления и сведения, может пригодиться ленивым, которым неохота перепечатывать СП, делая свои списки выбора, и волноваться, а не добавила ли 1С ещё что-нибудь в очередной версии. 

Например, можно вытащить все описанные форматы картинок (а равно и вообще форматы файлов, поддерживаемые платформой и выдаваемые в фильтре при открытии файла в 1С).

// маленький пример, как пользоваться XDTO самой конфы
Функция ПолучитьДопустимыеФорматыКартинок1С()
Попытка
   
// в принципе, так же можно получать и другие системные перечисления — надо лишь выяснить, в каком пакете они.
   
рОбъектXDTO=ФабрикаXDTO.ЭкспортМоделиXDTO(«http://v8.1c.ru/8.1/data/ui»); // тут известно, что в этом пакете.
   
рXML=Новый ЗаписьXML;
   
рXML.УстановитьСтроку(«UTF-8»);
   
рXML.ЗаписатьОбъявлениеXML();
   
ФабрикаXDTO.ЗаписатьXML(рXML,рОбъектXDTO);
   
// читаем в построитель
   
рХМЛ=Новый ЧтениеXML;
   
рХМЛ.УстановитьСтроку(рXML.Закрыть());
   
постр=Новый ПостроительDOM;
   
док=постр.Прочитать(рХМЛ);
   
// ищем (жаль, нет поиска по значению атрибута)
   
мЗначений=Новый Массив;
   
спЭлементов=док.ПолучитьЭлементыПоИмени(«valueType»);
    Для каждого
эл Из спЭлементов Цикл
        Если
эл.ПолучитьАтрибут(«name»)=«PictureFormat» Тогда // это он, нужный
           
Для каждого уз Из эл.ДочерниеУзлы Цикл // находится в теге enumeration
               
мЗначений.Добавить(уз.ТекстовоеСодержимое);
            КонецЦикла;
            Прервать;
        КонецЕсли;
    КонецЦикла;
    Возврат
мЗначений;
Исключение
   
Сообщить(«ПолучитьДопустимыеФорматыКартинок1С, ошибка: «+ОписаниеОшибки(),СтатусСообщения.Важное);
    Возврат Неопределено;
КонецПопытки;
КонецФункции

 

Ну а уж вывалить ЗаписьXML в текстовый файл, чтоб просто полюбоваться, думаю, все смогут:

т=Новый ТекстовыйДокумент; т.УстановитьТекст(ЗаписьХМЛ.Закрыть()); т.Показать(); 

Если кому пригодится, будет хорошо )))

has been added to your cart:
Оформление заказа