Про вбудовані моделі XDTO платформи 1С

Враховуючи інтерес до роботи з XDTO, хочу звернути увагу на інформацію про специфіку самої платформи, яка надана в пакетах самої платформи. Нічого нового, все це можна побачити під час роботи зі стаціонарним описом XDTO при виборі типів властивостей та об'єктів, але це інтерфейс. Але й програмно докопатися нескладно. Ці пакети, рівно з тими ж URI, доступні для глобальної змінної Фабрика XDTO (синглтон). Потрібно зауважити, що цим, крім клієнт-серверної доступності, відрізняються способи створення фабрик. Якщо ви робите фабрику конструктором, до неї включаться тільки потрібні вам пакети, а якщо задієте синглтон, то все "барахло" вбудованих пакетів теж ваше. Так ось, шляхом нескладних маніпуляцій можна отримати, наприклад, вивантаження вмісту пакета в текстовий файл, почитати його і дізнатися про щось цікаве. Наприклад, для охочих глибше зрозуміти пристрій 1С та особливості її поведінки у тих чи інших ситуаціях.

З огляду на пакети, з'ясувалося таке:

" http://v8.1c.ru/8.1/data/enterprise/current-config " - все метадані, але не мають універсальних полів, тобто. без, наприклад, таких понять, як Довжина Коду або Режим Управління Блокуванням Даних, тільки реквізити та найзагальніше за ними, що, загалом, можна отримати звичайним опитуванням метаданих. " - системні перерахування, службові типи, самі-найбазніші поняття, у яких побудована і сама платформа, в мене викликало суто теоретичний інтерес, т.к. не знаю, де застосувати. "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" - опис описів процедур та функцій, якщо я вірно зрозумів. Напевно, було б цікаво в якихось інтеграціях в Інтернеті, в Інтернет-розширенні та інших трансляціях). УФ. Знову ж таки, розбирати конфу з врахуванням цих відомостей зручніше. роблячи свої списки вибору, і хвилюватися, а чи не додала 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 в текстовий файл, щоб просто помилуватися, думаю, всі зможуть:

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