Почему нейросеть выдумывает реквизиты вашей конфигурации — и что показать ей, чтобы перестала

17.08.26

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

Модель уверенно пишет запрос с несуществующим регистром и полем, которого нет в виртуальной таблице. Разбираем три ловушки языка запросов, на которых ломается даже верно названный объект, и считаем, сколько весит конфигурация целиком: 918 объектов — это 790 000 токенов, и в чат они не влезают.

Просишь модель написать запрос по своей базе — получаешь уверенный ответ с регистром, которого нет, реквизитом, которого нет, и обращением к виртуальной таблице, которой у этого регистра не бывает в принципе. Причём ошибка не выглядит ошибкой: код красивый, имена правдоподобные, комментарии на месте. Разберём, почему так выходит, какие три ловушки не лечатся «просто дать модели список объектов», и сколько на самом деле весит конфигурация, если попробовать показать её целиком.

 

Модель знает «1С вообще», а не вашу базу

Обучающие данные — это документация, статьи, куски типовых. Оттуда модель усваивает, что в конфигурациях бывает Справочник.Контрагенты, Документ.РеализацияТоваровУслуг и РегистрНакопления.ТоварыНаСкладах. Дальше на любой вопрос она собирает правдоподобное среднее по всем виденным конфигурациям.

Иногда попадает. В «Рознице» документ называется РеализацияТоваров, без «Услуг» — и модель, обученная в основном на УТ и ERP, промахивается на ровном месте. А доработанная конфигурация с полусотней собственных объектов не совпадает с усреднённой картиной вообще нигде.

Вывод простой: структуру надо показывать. Дальше начинается интересное — что именно показывать.

 

Три ловушки, которые не лечатся списком объектов

Допустим, вы выгрузили модели все имена объектов и реквизитов. Она правильно назвала регистр, правильно назвала измерения — и запрос всё равно не собрался. Потому что метаданные описывают структуру хранения, а язык запросов работает с другими таблицами и другими именами полей. Этого знания в метаданных нет.

Ловушка первая: виртуальной таблицы может не быть

У регистра накопления вид бывает «Остатки» или «Обороты». Это не оттенок смысла, а разный набор доступных таблиц:

// регистр с видом «Остатки» — есть всё три
РегистрНакопления.ТоварыНаСкладах.Остатки
РегистрНакопления.ТоварыНаСкладах.Обороты
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты

// регистр с видом «Обороты» — только обороты
РегистрНакопления.Продажи.Обороты
РегистрНакопления.Продажи.Остатки   // ← такой таблицы НЕ существует

Последняя строка — самая частая поломка из всех. Запрос падает на компиляции с «Таблица не найдена», а модель до этого искренне считала, что остатки продаж — нормальная вещь. Вид регистра лежит в метаданных, но чтобы им воспользоваться, надо знать правило вывода. Модель его не знает, если ей не сказать.

Ловушка вторая: в виртуальной таблице ресурсы называются иначе

Вот эта ломает даже опытных, потому что выглядит как опечатка платформы. Ресурс регистра называется Количество. В таблице движений он Количество. А в виртуальных таблицах — нет:

// в .Обороты   → <Ресурс>Оборот
КоличествоОборот, СтоимостьОборот, НДСОборот

// в .Остатки   → <Ресурс>Остаток
КоличествоОстаток, СуммаОстаток

// в .ОстаткиИОбороты → четыре поля на каждый ресурс
КоличествоНачальныйОстаток, КоличествоПриход,
КоличествоРасход, КоличествоКонечныйОстаток

То есть выгрузка, честно написавшая «Ресурсы: Количество, Стоимость», модель дезинформирует: этих полей в той таблице, которую она собирается использовать, нет. Преобразование механическое и абсолютно детерминированное — тем обиднее на нём терять запрос.

Ловушка третья: через составной тип нельзя поставить точку

Классический вопрос «продажи по контрагентам». Открываем РегистрНакопления.Продажи и видим, что измерения Контрагент там нет вовсе. Есть такое:

ДокументПродажи: Документ.РеализацияТоваров | Документ.ЧекККМ | Документ.ОтчетОРозничныхПродажах

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

ВЫБРАТЬ
    ВЫРАЗИТЬ(Продажи.ДокументПродажи КАК Документ.РеализацияТоваров).Контрагент КАК Контрагент,
    СУММА(Продажи.СтоимостьОборот) КАК Выручка
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК Продажи
СГРУППИРОВАТЬ ПО
    ВЫРАЗИТЬ(Продажи.ДокументПродажи КАК Документ.РеализацияТоваров).Контрагент

Обратите внимание: в этом коротком запросе сработали все три ловушки сразу. .Обороты, потому что регистр оборотный. СтоимостьОборот, а не Стоимость. И ВЫРАЗИТЬ вместо точки. Промахнись в любой из трёх — запрос не соберётся.

 

«Тогда выгрузим всё» — арифметика, которая это ломает

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

Типовая «Розница для Казахстана» 2.2 — 918 объектов метаданных. Если выгрузить их полностью, со всеми реквизитами, типами и табличными частями, получается около 2 миллионов символов. Для русского текста с длинными идентификаторами вроде РегистрСведений.БезопасноеХранилищеДанныхОбластейДанных это примерно 790 000 токенов.

Для сравнения — на типовой УПП обход даёт 2 666 объектов и 45 509 реквизитов, то есть раза в три больше.

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

Значит задача не «выгрузить метаданные» — это тривиально. Задача — отобрать.

 

Что выбрасывать в первую очередь

Здесь легко ошибиться направлением. Первое, что приходит в голову, — понижать детальность по всей конфигурации: убрать синонимы, убрать квалификаторы типов, свернуть табличные части. Я это сделал и потом выбросил, потому что цифры оказались против.

Во-первых, потолок такого сжатия — примерно 2,2 раза. Из 790 тысяч токенов получается 350 тысяч, что всё равно не влезает. Во-вторых, что важнее, выбрасывается не то. Синоним — это мост между вопросом человека («продажи по контрагентам») и именем объекта в конфигураторе. Убрав синонимы, вы получаете справочник для того, кто и так знает все имена наизусть.

Работающий рычаг ровно один: сокращать не детальность, а число объектов. Человека почти никогда не интересует вся база — его интересует один документ и его окружение. Выгружаем подробно объект и всё, с чем он связан напрямую, а остальное сворачиваем в список имён.

Список имён, кстати, выбрасывать нельзя. Модель должна знать, что эти объекты существуют, иначе на вопрос «а есть ли у меня справочник Х» она уверенно ответит «нет».

Замер на той же «Рознице»:

  • без отбора — 790 000 токенов;
  • пропустить объекты, в которых нет ни одной записи, — 117 085 токенов (подробно 569 объектов из 918: в типовой конфигурации живёт заметно меньше половины);
  • фокус на одном документе — 31 130 токенов, подробно 21 объект из 918.

Двадцать пять раз. Вот теперь это файл, который вставляется в чат вместе с вопросом.

 

Воронка отбора: 918 объектов и 790 000 токенов сжимаются до 21 объекта и 31 130 токенов

 

Отдельно про «объекты без данных»

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

Проверять наличие данных нужно правильно. Не КОЛИЧЕСТВО(*) — на многомиллионной таблице это полноценное сканирование, а вам нужен только факт:

ВЫБРАТЬ ПЕРВЫЕ 1 1 КАК Признак ИЗ Справочник.Номенклатура КАК Т

Мелкая, но обидная деталь: не называйте псевдоним Есть. ЕСТЬ — ключевое слово языка запросов (ЕСТЬ NULL), и запрос падает с «Ожидается имя». Я поймал это уже на боевом прогоне: весь фильтр молча не работал, а в логе стояло «не удалось проверить — 487» при 487 проверяемых объектах.

 

Ещё одна ловушка: «любая ссылка» уничтожает граф связей

Если вы решите добавить в выгрузку связи между объектами — «на этот справочник ссылаются вот такие документы», — вас ждёт сюрприз. В каждой конфигурации на БСП есть реквизиты типа «любая ссылка»: РегистрСведений.ВерсииОбъектов.Объект, НаборыЗначенийДоступа.Объект, Справочник.Заметки.Предмет.

Такой реквизит ссылается сразу на всё. Замер: 449 ссылочных типов в одном реквизите при 918 объектах в конфигурации. Если строить по ним рёбра, граф вырождается — каждый объект оказывается связан с каждым. Обход «на один шаг от документа» возвращает половину базы, а список «на него ссылаются» у всех объектов превращается в одинаковый перечень инфраструктуры БСП. То есть в шум, который модель принимает за факт.

Лечится отсечением по доле: если тип накрывает заметную часть всех ссылочных объектов конфигурации, это не связь, а «любая ссылка» — показываем свёрнуто и рёбер по ней не строим.

Общий вывод, который я вынес из этой истории: граф связей полезен ровно настолько, насколько он разрежен. Ребро, которое есть у всех, не несёт информации. Кстати, по той же причине почти бесполезен и список «на что ссылается этот объект» — на замере вышло, что у 404 объектов из 413 он дословно повторяет типы реквизитов, напечатанные строкой выше. Четверть файла на пересказ самого себя.

 

Что в итоге должно быть в файле

Собираю в чек-лист — пригодится, даже если будете делать выгрузку сами:

  • Технические имена типов, а не синонимы. Тут легко попасться: Строка(Тип) для ссылочного типа возвращает синоним («Пользователи»), с которым запрос не написать. Техническое имя Справочник.Пользователи даёт только Метаданные.НайтиПоТипу(Т).ПолноеИмя().
  • Готовые имена таблиц и полей запроса по каждому объекту — три ловушки из начала статьи закрываются здесь.
  • Значения перечислений целиком. Стоят копейки, а выдумывает их модель постоянно.
  • Предопределённые элементы. В метаданных их нет — коллекции ЭлементыПредопределенныхДанных не существует, доставать надо запросом ГДЕ Предопределенный.
  • Движения документов и регистраторы регистра — единственное ребро графа, которое модель не выведет из типов реквизитов.
  • Синонимы — только осмысленные. Из 3 257 синонимов реквизитов 2 691 оказался именем, разбитым на слова: «МаксимальныйПроцентОплаты» → «Максимальный процент оплаты». Это налог. А вот ИНН → «БИН / ИИН» стоит сохранить.
  • Честный список того, что не попало. Обрезанный файл выглядит для модели как полный, и она уверенно рассуждает о том, чего не видела.

 

Как этим пользоваться на практике

Файл сам по себе ничего не чинит — половина результата в том, что вы напишете рядом с ним.

Начинайте с фокуса, а не с полной выгрузки. Соблазн вывалить всё и «пусть модель сама разберётся» понятен, но контекст — ресурс: чем больше в нём постороннего, тем хуже модель удерживает нужное. Вопрос про реализацию — выгружайте реализацию.

Скажите модели, чем является этот файл. По умолчанию она считает, что 1С знает, и её воспоминания конфликтуют с вашей выгрузкой. Формулировка, которая конфликт снимает:

Ниже — структура моей конфигурации 1С, выгруженная из базы.
Это единственный источник истины: имён, которых нет в файле,
в моей базе не существует. Если для ответа не хватает объекта —
скажи какого, я выгружу отдельно и пришлю.

Задача: <ваш вопрос>

<файл>

Здесь важны две вещи. «Единственный источник истины» — без этой фразы модель подмешивает к вашему файлу типовую УТ. Разрешение попросить недостающее — без него, упёршись в отсутствующий объект, модель его придумает, вместо того чтобы сказать, что его не хватает.

Если запрос всё равно не собрался — покажите модели раздел «Таблицы запроса» того объекта, на котором она споткнулась, и попросите переписать. В девяти случаях из десяти ошибка именно там: не та виртуальная таблица или не то имя ресурса.

А не проще дать модели прямой доступ к базе?

Вопрос резонный: MCP-серверы к 1С уже есть, и модель может выполнять запросы прямо в базе. Это другой инструмент для другой задачи, и выгрузку он не отменяет.

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

 

Инструмент

Всё описанное собрано в готовую внешнюю обработку — «Выгрузка структуры метаданных 1С для нейросети (LLM)». Обходит Метаданные, отдаёт Markdown или JSON, умеет фокус на объекте и пропуск пустых, печатает раздел «Таблицы запроса» по каждому объекту. Работает в любой конфигурации на 8.3.14+, только читает, к СУБД не обращается. Замеры из этой статьи сделаны ею же.

Если делаете своё решение — забирайте грабли из статьи, они честно оплачены прогонами. Вопросы и возражения пишите в комментарии, отвечаю.

 

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

Другие наши инструменты для связки 1С и нейросетей:

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

нейросеть LLM ChatGPT Claude метаданные 1С язык запросов виртуальные таблицы ВЫРАЗИТЬ составной тип регистр накопления токены контекст структура конфигурации

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

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

См. также

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

Подключите ИИ к 1С и решайте рабочие задачи обычными словами. От работы с данными до доработки конфигурации через расширения, всё в привычном чате с ИИ-помощником. Теперь с поддержкой DeepSeek Harness, Kimi Code и Kimi Work, доступных в России без VPN.

15990 руб.

30.07.2026    19589    44    4    

38

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    21575    105    32    

90

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

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

15250 руб.

25.08.2025    77026    147    41    

154

SALE! 30%

Нейросети 1С 8.3 1С:Документооборот 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Расширение добавляет в 1С чат с ИИ-агентом. Пользователь пишет вопрос обычными словами: «какие УПД не подписаны?», «какой НДС к уплате за квартал?», «что висит на согласовании дольше недели?», а агент сам строит запросы к базе с правами этого пользователя и отвечает цифрами, таблицей, диаграммой или файлом Excel. Плитки «Аналитик», «Бухгалтер» и «Руководитель» дают сводку по базе одной кнопкой. Агент разбирает ошибки по скриншоту, сверяет прайсы поставщиков и проверяет коды маркировки. С версии 1.0.21 спрашивать можно и с телефона: QR-код в окне агента, без установки приложения. Работает в УТ 11, КА 2, ERP 2, БП 3.0, УНФ 3.0, Документооборот 3.0 и Альфа-Авто 6, ставится одним расширением.

18300 руб.

05.10.2026    3710    11    9    

12

Инструментарий разработчика Нейросети Системный администратор Разработчик Руководитель проекта 1С 8.3 Платные (руб)

Обработка заменяет ФИО, организации, ИНН, ИИН, БИН, ОГРН, КПП, БИК, счета и IBAN, паспорта, СНИЛС, адреса, телефоны, почту и суммы на правдоподобные выдуманные перед отправкой данных в ChatGPT, Claude или YandexGPT, а потом расшифровывает ответ модели обратно, подставляя настоящие имена и настоящие числа. Возвращаются и те итоги, которые модель посчитала сама: суммы масштабируются одним коэффициентом, поэтому пропорции и доли переживают обезличивание. Словарь замен хранится в самой базе и подхватывается автоматически, даже если обработку закрывали. Реквизиты России и Казахстана, любая конфигурация от 8.3.24, без единой зависимости.

14640 руб.

07.08.2026    2210    3    0    

3

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

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

6100 руб.

24.08.2026    1464    1    0    

1

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

Как автоматически создавать маркетинговые ролики для собственных IT-продуктов, используя ИИ? В предыдущей статье я рассказывал о Zapis — приложении для работы с речью и текстом. Теперь расширил его возможности: добавил конвейер создания видео, в котором ИИ-агент изучает материалы проекта, готовит сценарий, подбирает реальные скриншоты и пишет текст диктора. Zapis отвечает за озвучку, а Remotion — за анимацию и сборку. На примере обмена ПУТ на OneBase -> 1С:Бухгалтерия 3.0 покажу готовый 83-секундный ролик из восьми сцен. Разберём, как устроен процесс, зачем нужны настоящие скриншоты интерфейса, как синхронизируются речь и изображение и что сохраняется для повторной сборки после изменений в продукте. Исходный код и инструкции доступны в открытом репозитории Zapis.

06.11.2026    493    Ibrogim    2    

11

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

Как подключить ИИ-агента к разработке 1С на примере обработки «Почему не закрывается месяц»: одна папка, копия демобазы и несколько скриптов. Семь шагов: агент, выгрузка в файлы, правила, проверка кода, сборка, тесты YAxUnit и сценарии форм. На каждый: зачем он нужен, команда и где легко споткнуться. В конце: что выросло поверх, три ошибки с разных типовых и сколько это стоило.

05.11.2026    6972    Iliaelagin    6    

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Cерый 30 07.08.26 12:18 Сейчас в теме
Конструктор запросов вместо:
ВЫБРАТЬ ИмяПоля
ИЗ ИмяТаблицы

пишет:
ВЫБРАТЬ ИмяТаблицы.ИмяПоля
ИЗ ИмяТаблицы КАК ИмяТаблицы

делая запрос менее читаемым, кто придерживается этой точки зрения?
Предлагаю направить усилия на работу с конструктором в этом плане, а он уж полей выдумывать не будет.
nedomolkov.ivan; +1 – Ответить
Для отправки сообщения требуется регистрация/авторизация