Вы просите нейросеть написать запрос по своей конфигурации - и получаете уверенный ответ с несуществующим регистром, выдуманным реквизитом и обращением к виртуальной таблице, которой у этого регистра нет. Модель не видела вашу базу: она достраивает типовую 1С по памяти. Лечится это тем, что структуру ей нужно просто показать - но выгрузить её сегодня нечем. Штатные средства дают либо XML конфигурации на миллионы токенов, либо плоский список имён без типов и связей.
Эта обработка обходит Метаданные и отдаёт компактный файл, который вставляется в чат: объекты, реквизиты, типы, табличные части, значения перечислений, предопределённые элементы - и, главное, готовые имена таблиц и полей запроса.
Главное: раздел «Таблицы запроса»
Метаданные описывают структуру хранения, а язык запросов работает с другими таблицами и другими именами полей. Именно на этом разрыве ломается большинство ответов - и никакая фильтрация выгрузки тут не помогает, потому что нужного знания в метаданных просто нет. Обработка выводит его явно, по каждому объекту:
### РегистрНакопления.Продажи - «Продажи» · вид регистра: Обороты Ресурсы: - Количество: Число(15,3) - Стоимость: Число(15,2) Таблицы запроса: - РегистрНакопления.Продажи - движения (плюс Период, Регистратор, Активность, ВидДвижения) - РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Периодичность, Условие) - ресурсы называются: КоличествоОборот, СтоимостьОборот, СтоимостьБезСкидокОборот, НДСОборот - виртуальной таблицы .Остатки у этого регистра НЕТ - он оборотный - внимание: есть поля составного типа - разыменовывать только через ВЫРАЗИТЬ Регистраторы (какими документами наполняется): Документ.РеализацияТоваров, Документ.ЧекККМ, …
Четыре строки, каждая из которых закрывает типовую ошибку: модель больше не напишет .Остатки у оборотного регистра, не возьмёт поле Количество там, где оно называется КоличествоОборот, и не поставит точку через составной тип.
Все правила выведены не из документации по памяти, а проверены выполнением на живой базе: у остаточного регистра есть .Остатки, .Обороты и .ОстаткиИОбороты; у оборотного .Остатки нет; срезы существуют только у периодического регистра сведений; табличная часть - самостоятельная таблица со связью по Ссылка. Для регистров бухгалтерии и расчёта виртуальные таблицы намеренно не описываются: эти правила не проверялись, а выдумывать в файле, который существует ради борьбы с выдумками, нельзя.
Фокус: как конфигурация помещается в окно контекста
Полная выгрузка типовой конфигурации - сотни тысяч токенов, и это не влезает ни в один чат. Поэтому ядро обработки - не обход, а отбор. Вы указываете объект (можно частью имени, регистр не важен), и выгружается он со всем окружением, а остальное сворачивается в список имён - чтобы модель знала, что эти объекты существуют, и не заявляла обратного.
Замер на «Рознице для Казахстана» 2.2 - 918 объектов метаданных:
- без отбора - около 790 000 токенов;
- с пропуском объектов без данных - 117 085 токенов, подробно 569 объектов из 918;
- с фокусом на одном документе - 31 130 токенов, подробно 21 объект из 918.
Двадцать пять раз. Именно это превращает «интересную идею» в файл, который реально можно вставить в чат вместе с вопросом.
Если объект фокуса не распознан, обработка отказывается работать и показывает подсказку, а не выгружает молча всю конфигурацию: получить миллион токенов вместо одного документа и не заметить этого - худший из возможных исходов.
Что ещё попадает в файл
- типы реквизитов в техническом виде -
Справочник.Контрагенты, а не синоним «Контрагенты», с квалификаторами:Строка(25),Число(15,2), неограниченные строки помечены отдельно; - составные типы перечислены через
|, чтобы было видно, что именно приводить черезВЫРАЗИТЬ; - значения перечислений целиком - их модель выдумывает чаще всего;
- предопределённые элементы справочников, планов счетов и видов характеристик;
- движения документов и обратная сторона - регистраторы регистра;
- иерархия, подчинение, вид регистра, периодичность, режим записи;
- синонимы - только там, где они отличаются от имени не разбивкой на слова. На типовой конфигурации это отсекает около 2 700 пустых повторов вида «МаксимальныйПроцентОплаты» → «Максимальный процент оплаты», но сохраняет полезные:
ИНН→ «БИН / ИИН».
Два формата: Markdown для вставки в чат и JSON для программной обработки. На одинаковом отборе JSON стоит примерно на 48 % больше токенов при том же содержании, поэтому по умолчанию включён Markdown.
Принцип безопасности: только чтение
Обработка обходит коллекцию Метаданные и выполняет запросы на языке 1С. Ни прямого SQL, ни обращения к СУБД, ни единой записи. Проверка «есть ли данные» сделана запросом ВЫБРАТЬ ПЕРВЫЕ 1, а не подсчётом строк - на многомиллионной таблице это принципиально дешевле.
Никаких внешних сервисов: файл формируется локально и остаётся у вас. Обработка ничего никуда не отправляет - что делать с выгрузкой дальше, решаете вы.
Совместимость
- Платформа 8.3.14 и выше. В карточке два файла: под управляемое приложение и под обычные формы - код и результат у них одинаковые, отличается только интерфейс.
- Любая конфигурация - обработка не обращается ни к одному прикладному объекту, только к системной коллекции
Метаданныеи языку запросов. Ни БСП, ни привязок к УТ / ERP / Розница не требуется. - Файловая и клиент-серверная база - без разницы, обработка читает метаданные через платформу.
- Проверена на типовых конфигурациях: «Розница для Казахстана» 2.2 (918 объектов) и УПП (2 666 объектов, 45 509 реквизитов - обход за 2,9 секунды).
- Код открыт.
Что в файле и как запустить
Внешняя обработка .epf. Открыли → при необходимости вписали объект в поле «Что выгружать» → «Сформировать» → «Сохранить в файл» или скопировали прямо из формы. Внизу слева обработка показывает, что именно она сделала: сколько объектов выгружено подробно, сколько свёрнуто и почему, и какой примерно объём получился в токенах.
Обновления публикуются этой же публикацией - покупатели получают уведомление. Вопросы и замечания пишите в комментарии, отвечаю.
Другие инструменты для связки 1С и нейросетей:
- Анонимизатор выгрузки - обезличивает данные перед отправкой в чат-модель и расшифровывает ответ обратно.
- Матрица прав доступа 1С для нейросети - выгружает роли, пользователей и матрицу прав в Markdown: спрашиваете у чата, у кого какие права и что упростить.
Проверено на следующих конфигурациях и релизах:
- Розница, редакция 2.3, релизы 2.3.1.30
- Управление производственным предприятием, редакция 1.3, релизы 1.3.262.1
Вступайте в нашу телеграмм-группу Инфостарт