Namespace Forest

September 1, 2026 · View on GitHub

Схемы форматов исходников 1С:Предприятие 8: XSD выгрузки конфигуратора и метамодель 1С:EDT.

Всё лежит в schemas/, дальше — формат, дальше — его версия:

schemas/
├── designer/<версия формата>/   XSD выгрузки конфигуратора
└── edt/<версия EDT>/            метамодель 1С:EDT

Схемы конфигуратора

Структура: schemas/designer/<версия>/ — например, schemas/designer/2.10/ (полный набор *.xsd в каждой). Здесь <версия> — это версия формата выгрузки конфигуратора (атрибут version корневого MetaDataObject, он же максимальное значение FormatVersion в …-xcf-enums.xsd), а не номер релиза платформы: несколько релизов платформы могут давать один и тот же формат. Цифры 8.1 / 8.2 / 8.3 в именах отдельных файлов — это namespace внутри схем, а не уровни каталогов.

Схемы EDT

Структура: schemas/edt/<версия EDT>/ — например, schemas/edt/2026.1/. Здесь <версия> — это версия самой EDT: собственного номера формата в .mdo нет.

Внутри два вида схем:

  • ecore/ — метамодель в машиночитаемом виде, по файлу на пакет EMF; имя файла собрано из nsURI (g5.1c.ru.v8.dt.metadata.mdclass.ecore для http://g5.1c.ru/v8/dt/metadata/mdclass). Тот же nsURI стоит в корне .mdo, так что схема с файлом связаны напрямую.
  • xcore/<плагин>/ — первоисточник: метамодель EDT описана в Xcore, и в нём есть аннотации, которых в .ecore не остаётся.

Как схемы добываются: файлы .xcore лежат внутри jar плагинов EDT в каталоге model/, а рядом в plugin.xml каждый пакет объявлен тройкой «nsURI, класс пакета, xcore». Отсюда и берётся .ecore: класс загружается, у него читается eINSTANCE и сохраняется как XMI. Xcore-тулинг для этого не нужен.

Извлечение — tools/edt-schemas/extract.sh:

tools/edt-schemas/extract.sh 2026.1 "$LOCALAPPDATA/1C/1cedtstart/installations/1C_EDT 2026.1/1cedt"

Состав плагинов берётся из bundles.info конкретной установки: в общем пуле p2 лежат сразу несколько версий EDT, и смешивать их нельзя. Обработанные версии перечислены в schemas/edt/processed-versions.json.

Использование в экосистеме

  • md-sparrow использует XSD для JAXB-моделей и валидации XML, а схемы EDT — для работы с исходниками в формате EDT;
  • vscode-1c-platform-tools работает с метаданными через md-sparrow, поэтому фактическая поддержка типов и версий схем зависит от связки md-sparrow + namespace-forest.

Автоматическое обновление схем

Workflow .github/workflows/update-schemas.yml — еженедельно и по ручному запуску.

Конвейер для каждой версии платформы:

  1. yard получает список релизов с releases.1c.ru, отбирает версии не ниже min_version и отсутствующие в schemas/designer/processed-versions.json;
  2. yard скачивает дистрибутив, ставится платформа (компоненты server + client_full);
  3. ibcmd создаёт файловую ИБ и загружает конфигурацию из src/ с HTTP-сервисом ВыгрузкаСхем;
  4. ibsrv публикует сервис; GET /hs/xsd/dump возвращает XSD.

Номер каталога — максимум FormatVersion из выгруженного …-xcf-enums.xsd.

Состав набора задают корневые пакеты в модуле сервиса ВыгрузкаСхем: http://v8.1c.ru/8.3/MDClasses (объекты метаданных) и http://v8.1c.ru/8.3/xcf/logform (содержимое управляемой формы); остальные пакеты платформа подтягивает по зависимостям. Если этот список меняется, ранее собранные каталоги нужно перевыгрузить: ручной запуск workflow с флагом redump берёт по старшей версии платформы на каждый формат.

Секреты (Settings → Secrets → Actions): ONEC_LOGIN, ONEC_PASSWORD — учётные данные releases.1c.ru.

Каталог src/ — конфигурация для извлечения схем, не часть набора schemas/.

Лицензия

*.xsd — авторские права ООО «1С-Софт», не MIT. См. LICENSE.

Для разработчиков и ИИ

Правила Cursor: .cursor/rules/*.mdc (контекст XSD, связь с md-sparrow).

Автор

Ivan Karlo (i.karlo@outlook.com)

При желании, отблагодарить автора можно по ссылке: