Представляем важное обновление решения – версию v1.6.0, которое кардинально улучшает работу с метаданными 1С и открывает новые возможности для эффективной разработки.
Новая версия выгрузки/загрузки описаний метаданных 1С:Предприятия
У первой версии генерации описаний метаданных через внешнюю обработку две фундаментальные проблемы:
- Не поддерживались расширения конфигурации.
- Не было возможности инкрементального обновления метаданных (актуализации изменений).
Решить эти проблемы получилось через работу с XML-выгрузкой конфигурации «1С:Предприятия».
Как это работает
Новый загрузчик работает следующим образом:
- Берутся XML-файлы описания метаданных основной конфигурации и расширений и преобразуются в более компактное JSON-представление. При этом XML выгрузка позволила записывать в JSON больше видов метаданных (точнее типы и связи), а также включить поддержку английского написания для англоязычных конфигураций.
- Полученные JSON-файлы основной конфигурации объединяются с JSON-файлами расширений, при этом учитываются правила приоритета (назначения) расширений.
- Затем полученные объединенные JSON-файлы загружаются в векторную базу Qdrant. Используется тот же контейнер векторизации embedding-service, та же БД Qdrant из первой версии. MCP-серверу потребовалось обновление для поддержки новых видов метаданных.
- Можно включить отслеживание изменений в XML-файлах выгрузки и инкрементально обновлять JSON и векторную БД.
Для 1С:ERP в парсинге XML предусмотрены настройки ускорения через многопоточность и пакетную обработку разных видов метаданных. А если вы работаете в 1С:Управление торговлей на стандартном ПК (мобильный AMD Ryzen 7 6850H, 32 ГБ ОЗУ, SSD NVMe), то и с дефолтными настройками загрузчик работает быстро:
- секунд 20-30 на генерацию всех итоговых JSON (с учетом расширений);
- 2-3 минуты на векторизацию и загрузку в Qdrant.
Соглашения о структуре проекта (директорий)
Чтобы не сильно усложнять настройки проекта, приняты следующие соглашения:
- В директории для выгрузки XML-файлов 1С должно быть две поддиректории: Configuration для выгрузки основной конфигурации и Extensions для выгрузки расширений. Причем в Extensions должны быть поддиректории по названиям расширений.
- Поддиректория Extensions – опциональная, будет работать и без нее.
^92;^72; /1c-src/ # Основная директория для XML-выгрузки 1С
_00;^72;^72; Configuration/ # Поддиректория выгрузки основной конфигурации
^92;^72;^72; Extensions/ # Поддиректория выгрузки расширений конфигурации
_00;^72;^72; Расширение1/
^92;^72;^72; Расширение2/
- Именно в таком виде директория .../Project/1c-src/ должна прокидываться (мапиться) в контейнер metadata-loader по пути /data/src.
Настройки контейнера metadata-loader
В основном те же настройки как в первой версии:
- Адрес векторной БД Qdrant: QDRANT_HOST, QDRANT_PORT.
- Адрес сервиса векторизации: EMBEDDING_SERVICE_URL.
- Путь к XML-файлами выгрузки 1С: SRC_DIR (мапится на /data/src).
- Размеры батчей: сколько файлов и сколько текстов обрабатывать за раз: FILES_BATCH_SIZE, EMBEDDING_BATCH_SIZE.
- Параметр режима отслеживания изменений файлов XML: WATCHER_POLLING. Для Docker в Windows нужно включать режим опроса (polling), потому что нативные нотификации файловой системы не срабатывают. Но так как отслеживаются не все файлы, а только XML метаданных, то нагрузка минимальная и даже с polling работает быстро.
Как использовать
После запуска контейнера metadata-loader (через docker-compose up -d metadata-loader) открываете web-сервис http://localhost:8502.

- Указываете наименование коллекции векторной БД Qdrant. Коллекция будет автоматически пересоздана (или создана, если ее нет).
- Сначала генерируем полное описание и векторизацию метаданных через кнопку Преобразовать в json и загрузить в Qdrant.
- Затем инициализируем небольшую табличку хешей для отслеживания изменений содержимого XML-файлов метаданных через кнопку 1-Инициализировать базу.
Происходит отслеживание именно изменений содержимого файлов, а не просто «касание» файлов. Берутся только файлы метаданных 1С – их получается немного (относительно всех файлов выгрузки) и выполнение длится меньше минуты.
Затем кнопкой 2-Включить отслеживание запускается фоновый процесс, который будет регистрировать изменения файлов метаданных.
По кнопке Актуализировать описания в Qdrant можно периодически актуализировать описание метаданных. Измененные объекты метаданных обновятся в векторной БД, новые объекты метаданных – будут в нее добавлены..

За счет этого обращения к MCP по метаданным от LLM-агентов всегда отдается актуальная информация.
Пример JSON который будет получать LLM-агент от MCP:
"internal_kind"
Список видов поддерживаемых метаданных
- Catalog / Справочник
- Document/ Документ
- InformationRegister / РегистрСведений
- AccumulationRegister / РегистрНакопления
- AccountingRegister / РегистрБухгалтерии
- Enum / Перечисление
- Constant / Константа
- ChartOfAccounts / ПланСчетов
- ChartOfCharacteristicTypes / ПланВидовХарактеристик
- BusinessProcess / БизнесПроцесс
- DocumentJournal / ЖурналДокументов
- ExchangePlan / ПланОбмена
- FilterCriterion / КритерийОтбора
- HTTPService / HTTPСервис
- WebService / WebСервис
- CommonAttribute / ОбщийРеквизит
- DefinedType / ОпределяемыйТип
В списке – все те виды метаданных, чье описание необходимо. Пока пропущены XDTO-пакеты, так как пакеты EnterpriseData... очень большие и их не получается возвращать LLM-агенту одним ответом. Для них нужна отдельная логика, как их описание отдавать частями.
Изменения в docker-compose.yml
Изменилась версия образа контейнера mcp-metadata:
mcp-metadata:
image: docker.f-pix.ru/mcp/mcp-metadata:v1.6.0 # НОВАЯ ВЕРСИЯ
container_name: mcp-metadata
...
Добавился новый сервис (контейнер) metadata-loader:
metadata-loader:
image: docker.f-pix.ru/mcp/metadata-loader:v1.6.0
container_name: metadata-loader
ports:
- "8502:8501"
environment:
- PYTHONUNBUFFERED=1
- EMBEDDING_SERVICE_URL=http://embedding-service:5000
- QDRANT_HOST=qdrant
- QDRANT_PORT=6333
- SRC_DIR=/data/src
- OUT_DIR=/data/out
- FILES_BATCH_SIZE=50
- EMBEDDING_BATCH_SIZE=25
- WATCHER_POLLING=1
- OMIT_EQUAL_SYNONYM=true # если синоним совпадает с именем, не включать его в JSON
- CONF_LANG=ru
volumes:
- C:/you/project/1c-src:/data/src:ro # Путь к XML-выгрузке 1С (с поддиректориями Configuration и Extensions)
restart: unless-stopped
networks:
- mcp-network
Infostart MCP
MCP для 1С — это набор AI-сервисов, которые помогают разработчику в повседневной работе. MCP подключает искусственный интеллект к вашей базе и умеет искать объекты метаданных как в типовых, так и в нетиповых конфигурациях.
Перейти на новый уровень
