MCP-сервер и Библиотека стандартных подсистем

·
  • бсп
  • типовые
  • mcp
  • p13

Как Профессиональная редакция распознаёт БСП в типовых конфигурациях БП, ЗУП, УТ, Розница, КА и ERP. Список общих подсистем, сигнатурные объекты, множественное совпадение, прагмы typconf:ignore.

Когда работаешь над типовой конфигурацией БП, ЗУП, УТ или ERP, постоянно встаёт вопрос: где здесь БСП, а где наши доработки. Это критично для статанализа: ругать БСП за «неудачно» написанный модуль смысла мало, его всё равно перезапишет следующий релиз вендора.

В Профессиональной редакции v2.8.0 эту работу делает инструмент typicalconfigs. Он определяет семейство конфигурации по сигнатурам метаданных и помечает каждую подсистему как БСП-общую или прикладную.

Как распознаётся БСП

В коде ведётся белый список канонических имён общих подсистем БСП: БазоваяФункциональность, ОбщегоНазначения, Администрирование, Пользователи, УправлениеДоступом, ОбменДанными, Печать, ВариантыОтчетов и так далее. Когда индексатор обходит дамп, каждая встреченная подсистема проверяется по этому списку. Что попало, то идёт под меткой shared. Что не попало, тот считается кандидатом в кастомизации.

Параллельно отсматриваются сигнатурные объекты: характерные документы и регистры конкретного семейства. У БП первичные маркеры это РегистрБухгалтерии.Хозрасчетный и ПланСчетов.Хозрасчетный. У ЗУП это РегистрРасчета.Начисления и Документ.НачислениеЗарплаты. У УТ это РегистрНакопления.ТоварыНаСкладах и Документ.ЗаказКлиента. Если в одном дампе срабатывают сигнатуры двух семейств, инструмент пишет множественное совпадение в manifest.json и не делает выбор за разработчика. Такая ситуация бывает в комплексных внедрениях, где над БП накрутили модуль из ЗУП или ERP-функциональность из УТ.

Что попадает в выгрузку

После прохода получается набор файлов:

  • index.json: список подсистем со ссылками на объекты
  • reverse.json: обратный индекс, для каждого объекта список подсистем где он встречается
  • manifest.json: версия платформы, обнаруженное семейство, статистика
  • <подсистема>.md: Markdown-описание подсистемы с LLM-обогащением, если включено

Подсистема которой нет в списке БСП помечается комментарием «Нетиповая подсистема, потенциальная точка кастомизации». Это первое место куда стоит смотреть аналитику заказчика.

Прагмы typconf:ignore

Если в типовой процедуре есть фрагмент который не нужно классифицировать (например, заглушка для интеграции которую выкинут в следующем релизе), его можно пометить прагмой в комментарии:

Процедура СерверныйОбработчик() Экспорт
    // typconf:ignore: следующая строка
    Текст = ПрочитатьВнешнийФайл(ИмяФайла);
    // ...
КонецПроцедуры

Поддерживаются четыре формы:

  • // typconf:ignore на строке выражения
  • // typconf:ignore: следующая строка
  • // typconf:ignore: до конца процедуры
  • // typconf:ignore: всю функцию

Прагма работает только в области где она объявлена. На общую классификацию объекта не влияет, только на ту проверку которая видит этот фрагмент.

MCP tool typicalconfigs

В режиме MCP-сервера у инструмента typicalconfigs пять действий:

  • detect: определить семейство конфигурации
  • subsystems: список подсистем с фильтрацией по типу
  • lookup: найти объект по имени
  • reverse_lookup: узнать в каких подсистемах объект встречается
  • extension_points: точки расширения подсистемы

AI-ассистент через MCP может задать запрос «найди все документы из подсистемы Продажи в УТ» и получить структурированный ответ. Не нужно скармливать LLM весь дамп.

Запуск

Для разовой индексации:

mcp-1c-advanced --build-typicalconfigs \
    --typicalconfigs-dump-path ./dump \
    --typicalconfigs-output ./typicalconfigs-output

Для работы в режиме MCP-сервера используется флаг --enable-typicalconfigs. Полный список параметров есть в документации.