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. Полный список параметров есть в документации.