Первый промпт для BSL: как научить ИИ-агента сверяться с метаданными конфигурации

02.10.26

Интеграция - Нейросети

Промпт из четырёх пунктов, после которого агент перестаёт угадывать имена реквизитов: он получает список инструментов MCP-сервера метаданных, запрашивает структуру объектов и пишет код только по вернувшимся именам. Внутри - BSL-фрагмент выгрузки метаданных через объект Метаданные, три теста промпта и разбор ошибки «Поле объекта не обнаружено». BSL-код не прогнан на платформе: нужна проверка автора на своей базе.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Промпт и фрагменты BSL
.zip 2,49Kb
0 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.
🧠 AI, Нейросети & MCP

Для кого: программисты 1С, которые пишут код с ИИ-агентом (Cursor, Claude Code) и устали ловить «Поле объекта не обнаружено» на проведении документа.

🎯 О чём это (в три строки)
🗸Промпт, который берёт имена объектов 1С из метаданных.
🗸Текст промпта из четырёх пунктов, BSL-фрагмент выгрузки метаданных, три теста проверки промпта.
🗸Меньше ошибок времени выполнения из-за выдуманных имён реквизитов и дешевле ревью кода агента.
🧠 Суть статьи

Для 1С-разработчиков с ИИ-агентом: как промпт из четырёх пунктов и MCP-сервер метаданных убирают выдуманные имена реквизитов и ошибку «Поле объекта не обнаружено».

Ключевые идеи
  • Агент без доступа к конфигурации берёт частотные имена из чужих примеров, например Сумма вместо вашего СуммаДокумента.
  • Сервер читает структуру через Метаданные.НайтиПоПолномуИмени; стандартные реквизиты лежат отдельно, в СтандартныеРеквизиты.
  • Промпт требует получить список инструментов, запросить структуру объектов и писать код только по вернувшимся именам.
  • Если сервер молчит, агент отвечает «Нет данных о структуре объекта» и код не пишет.
  • Три теста: несуществующий реквизит, переименованный реквизит, отключённый сервер; запускайте их на копии базы.
Главная мысль

Верное имя реквизита агент берёт из ответа сервера метаданных, и промпт делает этот ответ обязательным шагом перед кодом.

Модель отвечает про конфигурацию 1С уверенно и (почти всегда) ошибается в именах. Причина простая: у LLM нет доступа к структуре вашей конфигурации. Модель читала типовые решения и чужие примеры, но про вашу конфигурацию не знает ничего: реквизит суммы у вас называется СуммаДокумента, а контрагент лежит в шапке документа.

Ошибка в имени реквизита не мешает модулю загрузиться. BSL исполняется интерпретатором, поэтому обращение к несуществующему полю всплывает в момент выполнения строки, сообщением «Поле объекта не обнаружено». Если строка стоит в обработчике проведения, ошибку первым увидит пользователь.

Ниже - промпт, который закрывает эту брешь. Он рассчитан на агента с подключённым MCP-сервером метаданных, и рядом лежит BSL-фрагмент, которым метаданные выгружаются из базы.

🧱 Почему агент выдумывает имена

Агент без доступа к конфигурации выбирает самое вероятное продолжение, и им оказывается имя из чужих примеров: короткое Сумма вместо вашего СуммаДокумента. Проверить выбор ему нечем: структура метаданных лежит в вашей базе, и в обучающую выборку она не попадала.

Три места, где это ломается чаще всего:

  • Реквизиты с нестандартными именами. В типовых решениях их переименовывают при доработках: ЮрАдрес, ИННКонтрагента, СуммаСНДС. Модель подставит общеупотребительное имя.
  • Строковый код. Вызовы через Выполнить("ПроверитьЗаполнение") и Вычислить("Цена * Количество") собираются во время работы, и по тексту модуля их не видно ни человеку, ни агенту.
  • Общие модули и их экспортные функции. Даже верно угаданное имя общего модуля не даёт сигнатуры: сколько параметров, какие обязательные, что возвращается.

Синтаксис при этом остаётся правильным. Модуль проверится, конфигурация обновится, а падение случится на конкретном документе в конкретном сценарии.

🔌 Что отдаёт MCP-сервер метаданных

MCP (Model Context Protocol) - открытый протокол, по которому агент запрашивает данные у внешнего процесса. Обмен идёт сообщениями JSON-RPC: клиент вызывает tools/list и получает список инструментов сервера с описанием параметров, затем tools/call с именем инструмента и аргументами. Формат описан в спецификации протокола, раздел Tools.

Сервер метаданных для 1С подключается к базе внешним соединением или через HTTP-сервис, читает структуру объектов и отдаёт её агенту по запросу. Внешнее соединение открывается COM-объектом и строкой подключения:

bsl/vneshnee-soedinenie.bsl UTF-8 📦 Скачать архив
1
2
Соединитель = Новый COMОбъект("V83.COMConnector");
Соединение = Соединитель.Connect("Srvr=""srv-1c"";Ref=""dev_base"";Usr=""robot"";Pwd=""***"";");

Для файловой базы строка другая: File="C:\bases\dev";Usr="robot";Pwd="***";. Через полученное соединение доступны объекты встроенного языка и экспортные процедуры общих модулей с включённым свойством «Внешнее соединение».

Разделение, которое стоит зафиксировать в самом сервере: наружу уходят имена, типы и структура, а значения реквизитов, записи регистров и тексты модулей - нет. Это разные вещи, и в коде сервера они разводятся по разным веткам.

Если сервер пишете сами, учтите ограничение на имя инструмента из спецификации: от 1 до 128 символов, латиница, цифры, подчёркивание, дефис и точка. Имена вида [get_object_structure] в квадратных скобках протокол не примет - квадратных скобок в допустимых символах нет.

🧪 Выгрузка метаданных на BSL

Структура конфигурации читается глобальным объектом Метаданные. Справочник находится по полному имени, дальше перебираются его реквизиты:

bsl/rekvizity-spravochnika.bsl UTF-8 📦 Скачать архив
1
2
3
4
СправочникМД = Метаданные.НайтиПоПолномуИмени("Справочник.Номенклатура");
Для Каждого Реквизит Из СправочникМД.Реквизиты Цикл
    Сообщить(Реквизит.Имя + " - " + Строка(Реквизит.Синоним));
КонецЦикла;

Состав коллекций зависит от вида объекта. У документа есть ТабличныеЧасти, у каждой части - свои Реквизиты. У регистра накопления - Измерения и Ресурсы, у регистра сведений к ним добавляется периодичность. Стандартные реквизиты (Ссылка, ПометкаУдаления, Дата, Номер, Проведен) лежат отдельно, в коллекции СтандартныеРеквизиты, и в Реквизиты не попадают. Сервер, который читает только Реквизиты, отдаст агенту неполную картину, и агент снова угадает Проведен.

Код выше не прогнан на платформе: в облаке нет 1С. Проверьте его на своей базе перед тем, как встраивать в сервер.

💻 Первый промпт

Промпт не называет инструменты сервера по именам. Имена задаёт ваша реализация, и зашитая в текст строка вроде list_objects разойдётся с ней на первой же правке. Вместо этого промпт требует сначала получить список инструментов, а потом работать по нему.

Ты - эксперт по разработке на платформе 1С:Предприятие 8.3.
У тебя подключён MCP-сервер метаданных конфигурации.

Порядок работы над задачей:
1. Получи список инструментов MCP-сервера. Если структура нужных объектов уже есть
   в контексте этой сессии, повторно не запрашивай.
2. Определи объекты, которые нужны для задачи, и запроси структуру каждого:
   реквизиты шапки, табличные части и их колонки, измерения и ресурсы регистров.
3. Пиши код только по именам, которые вернул сервер. Имя, которого нет в ответе
   сервера, использовать нельзя, даже если оно выглядит стандартным.
4. Перед ответом перечисли имена, взятые из метаданных, и укажи, из какого ответа
   сервера получено каждое.

Если сервер недоступен или не вернул структуру объекта - остановись и напиши:
«Нет данных о структуре объекта <имя>». Код в этом случае не пиши.

Задача: <опишите задачу>

Пункт 1 снимает главную причину срывов. Агент видит инструмент в списке, но вызывает его не всегда: описание инструмента и инструкция в промпте конкурируют между собой, и без явного требования модель отвечает по памяти.

Пункт 4 - дешёвая проверка для вас. Агент сам показывает, какие имена он взял из ответов сервера. Если в списке пусто или имена не совпадают с тем, что вернул сервер, промпт не сработал, и это видно до запуска кода.

Пункт про недоступный сервер закрывает худший сценарий. Агент, у которого инструмент отвалился, обычно не молчит: он добирает недостающее из общих знаний и выдаёт правдоподобный код. Явный отказ дешевле разбора такого кода.

🧰 Как проверить промпт на своей конфигурации

Три теста, каждый на своей базе:

  1. Несуществующий реквизит. Дайте задачу, для которой нужен реквизит, отсутствующий в конфигурации, например Справочник.Номенклатура.АртикулПоставщика при его отсутствии. Правильное поведение - сообщение, что в метаданных такого реквизита нет.
  2. Нестандартное имя. Возьмите свой реквизит с переименованием (СуммаДокумента, ЮрАдрес) и посмотрите, какое имя окажется в коде. Совпадение с базой означает, что агент читал структуру.
  3. Отключённый сервер. Уберите MCP-сервер из настроек агента и повторите задачу. Кода в ответе быть не должно.

К тестам добавляется журнал вызовов инструментов. Посчитайте, сколько разных объектов агент запросил за задачу. Если в задаче участвуют десять объектов, а в журнале два, промпт работает вполсилы, и пункт 2 стоит переписать конкретнее.

Проверять это придётся на копии базы. Внешнее соединение на продуктивной базе даёт лишний сеанс и лишний доступ, а метаданные ничем не отличаются от метаданных копии.

🚧 Границы

  • Промпт отвечает за имена и типы и не отвечает за логику. Верные имена реквизитов не спасают от неверного алгоритма: расчёт себестоимости, закрытие месяца и проведение по регистрам агент по-прежнему пишет сам, и проверять их нужно тестами.
  • Метаданные платформы не описывают вашу бизнес-логику. Правила расчёта, зашитые в общий модуль, из структуры конфигурации не видны: там есть только имя функции и её параметры.
  • Несуществующее имя агент ловит по ответу сервера. Существующее, но неподходящее по смыслу имя так не поймать: Сумма в конфигурации есть, и агент честно подставит её вместо СуммаДокумента, если запросил не тот объект.

📚 Источники и чем эта статья отличается

  • Спецификация Model Context Protocol, раздел Tools: методы tools/list и tools/call, поля описания инструмента, правила именования.
  • «Технологии интеграции 1С:Предприятия 8.3», раздел «Внешнее соединение» (its.1c.ru): COM-объекты V83.COMConnector и V82.COMConnector, строка подключения, ограничения внешнего соединения.
  • Методическая документация 1С по работе с объектами метаданных во встроенном языке (its.1c.ru): Метаданные.НайтиПоПолномуИмени(), коллекции Реквизиты, СтандартныеРеквизиты, ТабличныеЧасти.
  • Разбор ошибки «Поле объекта не обнаружено» на Infostart (статья 2286929): почему она возникает во время выполнения и чем проверять существование свойства.

Публикации на ту же тему, прочитанные 30.09.2026:

Публикация Что делает Чем отличается эта статья
Свой MCP-сервер для метаданных 1С (FSerg) Метаданные из выгрузки конфигурации в XML, векторный поиск в Qdrant Здесь текст промпта, после которого агент не отвечает по памяти
Cursor + MCP: собираем идеальное рабочее место 1С-разработчика за 15 минут и Cursor + MCP для 1С: работающая инструкция с картинками Настройка редактора и подключение MCP-серверов Здесь разбирается, что именно требует промпт от агента и как это проверить

📦 Файл к статье

К публикации приложен архив 02.2-companion.zip, он в блоке «Файлы» вверху страницы:

  • prompt-mcp-metadannye.md - промпт из статьи: агент сначала запрашивает структуру объектов у MCP-сервера метаданных и пишет код только по полученным именам; если данных нет - останавливается.
  • bsl/rekvizity-spravochnika.bsl - перебор реквизитов справочника через Метаданные.НайтиПоПолномуИмени.
  • bsl/vneshnee-soedinenie.bsl - подключение через V83.COMConnector.
  • README.md: что внутри, как пользоваться и что проверено.

🏁 Итог

Промпт состоит из четырёх пунктов: получить список инструментов, запросить структуру нужных объектов, использовать только вернувшиеся имена, перечислить источники каждого имени. Плюс явный отказ писать код, когда сервер молчит.

Проверяется это на трёх задачах: несуществующий реквизит, переименованный реквизит, отключённый сервер. Замер частоты вызовов сервера на своих задачах я не проводила: это зависит от модели и от описаний инструментов в вашем сервере.

 
Нинель Адольевна Щербакова
Нинель Адольевна Щербакова (Ninel_S)
Архитектор • SRE & DevOps инженер • HighLoad 1С
Автор 28+ технических публикаций на Infostart. Разработчик NOPik, SRE-Suite-for-1C и мультиагентных ассистентов для экосистемы 1С:Предприятие.

Вступайте в нашу телеграмм-группу Инфостарт

MCP ИИ-агент промпт метаданные BSL Cursor Claude Code галлюцинации

См. также

SALE! %

Банковские операции Обмен с интернет-банком Мастера заполнения Нейросети Разработчик Бухгалтер Пользователь 1С:Предприятие 8 1C:ERP 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:ERP. Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

Корректируйте банковские документы быстро и легко! Создайте правило обработки — и оно автоматически применится при загрузке выписки (отбор по любому реквизиту или регулярному выражению). Решение заполняет расшифровку платежа, комиссию эквайринга, подбирает ведомости на выплату зарплаты, помечает дубли из банка на удаление и многое другое. Доплачивать за алгоритмы не нужно — они включены в решение. Обработка работает при загрузке из файлов клиент-банка и через DirectBank. Новое — искусственный интеллект: модель приводит нестандартные назначения платежа к виду, понятному алгоритмам, а ИИ-ассистент прямо в 1С консультирует по решению и разбирает код правил и алгоритмов. Поддерживаются локальные и облачные OpenAI-совместимые модели — данные могут не покидать ваш контур.

17500 руб.

20.12.2024    20003    104    32    

86

SALE! %

Нейросети Системный администратор Разработчик Аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С:Документооборот 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Россия Платные (руб)

Задавайте вопросы базе 1С обычными словами: получайте данные, находите ошибки и связанные документы, проверяйте права, работайте с вложениями и контролируемо вносите изменения. Всё это работает в самой программе, а Codex и Claude подключаются по желанию.

16990 15770 руб.

30.07.2026    14720    31    4    

29

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    72328    143    41    

151

Распознавание документов и образов Нейросети 1С:Предприятие 8 1С 8.3 1С 8.5 1C:Бухгалтерия 1С:Зарплата и Управление Персоналом 3.x Беларусь Россия Казахстан Армения Платные (руб)

ИИ-сканер документов с REST API для интеграции с 1С и корпоративными системами. Извлекайте данные из счетов, паспортов, дипломов, патентов и трудовых книжек за секунды. Точность человека - скорость машины. Приложение поддерживает восемь типов документов, четырех провайдеров ИИ (имеется возможность использования локальных ИИ), локальный REST API и экспорт в JSON. Важно! модель должна поддерживать функцию Vision (распознавание файлов и картинок). Запускайте используя локальные ИИ, без подписок и ограничений

6100 руб.

24.08.2026    701    2    0    

1

Нейросети Разработчик 1С 8.3 Бесплатно (free)

Как устроен ИИ-агент, который работает в открытом сеансе пользователя 1С: показывает найденные документы в штатных списках, считает суммы типовыми отчётами, меняет данные только после подтверждения в форме предпросмотра и не передаёт модели персональные данные. Архитектура на MCP внутри тонкого клиента, приёмы и подводные камни, проверка на «Бухгалтерии предприятия 3.0».

28.09.2026    3912    oyti    35    

11

Инструментарий разработчика Нейросети Разработчик 1С:Предприятие 8 Абонемент ($m)

MCP-сервер даёт модели всю цепочку правки кода: найти метод, показать изменения построчно, внести, загрузить в базу с проверкой синтаксиса и проверить результат на живых данных. Плюс перенос данных между базами со сверкой остатков, поиск по коду и по смыслу, проверка выдуманных вызовов и аргументов, обезличивание персональных данных на выходе. И главное: пока не выполнено обновление из хранилища, сервер отказывается править и загружать. Инструмент умеет говорить «нет» — в статье есть кадр с таким отказом.

6 стартмани

24.09.2026    5414    9    Rafael-87    22    

12

Нейросети 1С:Управление торговлей 11 Бесплатно (free)

Я не считаю покупку специализированных платных инструментов обязательной для разработки с ИИ: нужную обвязку тоже можно создать с агентом. Показываю этот подход на расширении УТ 11 с динамическим списком остатков. Одно задание Codex, 37 минут до проверки, работающая форма. Рассказываю, как устроено окружение, почему первую попытку пришлось переснять и что получилось в повторном прогоне.

17.09.2026    6712    117    Ibrogim    90    

22

Нейросети Разработчик Руководитель проекта 1C:ERP Бесплатно (free)

Служба на Rust, через которую Claude Code, Cursor или другой MCP-клиент вызывает узких ИИ-агентов. Агент — папка с prompt.md и config.toml, модель — строка в конфиге: DeepSeek, Claude Code по подписке, Codex или локальная модель. Агент получает MCP-инструменты, работает в фоне, каждый ход записывается. Внутри — цифры за три месяца: 10 351 вызов, 78 агентов.

17.09.2026    2100    0    Sorm    47    

12
Для отправки сообщения требуется регистрация/авторизация