Перейти к содержимому
Tez Base

Как загрузить данные из 1С в нейросеть и проверить её ответ

· Опубликовано:

1С Нейросети и 1С

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

Инструкция рассчитана на двоих. Руководитель приносит вопрос и потом читает ответ. Программист готовит выгрузку и отвечает за то, чтобы цифру можно было проверить.

Три способа, которые пробуют первыми

Прежде чем идти по шагам, коротко о том, чего делать не стоит. Каждый из этих путей что-то даёт, но на разовый вопрос к своим данным ни один не отвечает.

ПутьЧто получитсяПочему
Сформировать отчёт, сохранить в xlsx, приложить к чатуПересказ той же таблицы. На вопрос за её пределами модель признается, что данных мало, или додумаетВ отчёте уже стоят чужие отборы и итоги. Контрагент там просто текст, связи с договорами и другими документами нет
Подключить базу к модели по API через расширениеРабочая схема для постоянного сценария, но долгий проектОбъём упирается в окно модели. Серверу базы нужен выход в интернет, а это согласование с безопасностью. Плюс ключ и оплата каждого вопроса
Отдать модели метаданные и попросить написать запросЧерновик запроса, который обязан вычитать человекМодель ставит в запрос поля, которых у объекта нет. Хуже, когда поле есть, но значит другое: дата документа вместо даты проведения, цена с налогом вместо цены без него

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

Шаг 1. Руководитель: сформулировать вопрос и период

Нейросеть на файле из 1С полезна для вопросов, которые задают один раз. Отчёт под них писать жалко, а руками собирать цифру час-два. Примеры:

  • сколько закупили за прошлый квартал у поставщиков, с которыми работаем меньше года;
  • какие контрагенты перестали покупать за последние полгода;
  • по каким позициям цена менялась чаще всего;
  • сколько документов провёл сотрудник, который уходит.

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

Шаг 2. Программист: посмотреть, что в базе заполнено

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

Для Каждого ОписаниеСправочника Из Метаданные.Справочники Цикл
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ КОЛИЧЕСТВО(*) КАК Всего ИЗ Справочник." + ОписаниеСправочника.Имя;
    Выборка = Запрос.Выполнить().Выбрать();
    Выборка.Следующий();
    Если Выборка.Всего > 0 Тогда
        Сообщить(ОписаниеСправочника.Имя + ": " + Выборка.Всего);
    КонецЕсли;
КонецЦикла;

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

Что показал такой обход на небольшой живой базе 1С:ERP для Казахстана 2.4.5.17 (платформа 8.3.27):

ПоказательЗначение
Объектов, способных хранить данные, в конфигурации2 853
Из них с записями456
Записей во всех заполненных объектах106 332
Из них в служебных таблицах платформы49 316 (54 объекта)
Осталось без служебных таблиц57 016 записей, 402 объекта

Служебные таблицы это версии объектов, сведения об обновлениях, настройки пользователей, ключи доступа. На вопрос руководителя они не отвечают, а место в чате занимают. Их выбрасывают первыми.

Шаг 3. Решить, что именно выгружать

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

Здесь многих подводит интуиция “документов у нас мало, значит и файл будет маленький”. В той же базе ERP было 3 730 документов за два года, 327 контрагентов, 22 сотрудника. А из 57 016 записей без служебных таблиц 42 288 пришлись на регистры: движения документов, графики работы, суммы в валюте, производственный календарь. Документы дали шесть с половиной процентов записей.

Прикинуть размер до выгрузки можно грубо: число знаков текста разделить на 2,5, получится порядок числа токенов для кириллицы. Для той базы в режиме без служебных таблиц вышло 4,9 миллиона знаков Markdown, то есть около 2 миллионов токенов. Целиком в чат такое не кладут. Отсюда правило: в чат идёт срез по одному разделу учёта и по периоду вопроса.

Шаг 4. В каком виде отдавать

Удобнее всего один архив с двумя папками: Markdown для чата и JSON для программы, если те же данные потом забирает код. Так устроен архив, который собирает наша обработка:

markdown/
  00-ЧИТАТЬ-ПЕРВЫМ.md     что за база, как читать, какие вопросы задавать
  01-Структура-базы.md    выгруженные объекты и поля с синонимами
  02-Сводки.md            документы по месяцам, итоги регистров, состав выгрузки
  10-<Раздел>.md ...      данные по разделам учёта
json/
  manifest.json           состав, счётчики "в базе / в файле", правила чтения
  schema.json             поля объектов с типами и табличными частями
  <ПолноеИмя>.json        сами записи

Почему в файле сырые строки плюс описание полей, и зачем каждая часть.

Сырые записи. Справочник таблицей, документ карточкой с табличными частями, регистр таблицей. Никаких итогов и заранее выбранных группировок. Только так на вопрос “покажи всё по этому контрагенту” у модели есть материал, а у вас есть строка, в которую можно ткнуть пальцем.

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

Сводки. Документы по месяцам, итоги регистров, счётчики по объектам. Это опорные числа для сверки, о них в шаге 6.

Представления вместо идентификаторов. В Markdown контрагент записан наименованием. Строка вида 8a2c4e1f-... модели ничего не говорит и съедает место. Идентификаторы остаются в JSON: там ссылка хранится типом, идентификатором и представлением, перечисление именем значения, даты в ISO.

Собирать это руками под каждый вопрос долго. Мы сделали внешнюю обработку Выгрузка данных 1С для нейросети: она сама обходит метаданные, делит объекты на бизнес-данные, классификаторы и служебные, в кратком режиме служебные отбрасывает, ограничивает документы и регистры периодом и отдаёт один архив. Имена объектов в неё не зашиты, прогоны шли на ERP для Казахстана, Управлении торговлей 11.5 и бухгалтерии Казахстана без правок кода. По той базе ERP краткий прогон дал 428 файлов и архив на 4 МБ, распакованный Markdown весил 7,8 МБ.

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

Шаг 5. Загрузить в чат и задать вопрос

Порядок в чате простой. Первым кладётся файл-инструкция 00-ЧИТАТЬ-ПЕРВЫМ.md, за ним структура и сводки, потом файлы только тех разделов, которые нужны вопросу. Если чат ограничивает число вложений, лишние разделы отрезаются здесь, данные внутри нужного раздела остаются целыми.

Вопрос руководителя стоит дополнить просьбой назвать, из каких записей получена цифра: номера и даты документов, наименования контрагентов. Такой ответ проверяется за минуты. Ответ одной цифрой без опоры приходится либо принимать на веру, либо пересчитывать целиком.

Шаг 6. Проверить ответ по исходным строкам

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

Сверка со сводкой. Модель говорит, сколько было документов за месяц, в 02-Сводки.md стоит своё число. Совпало - модель прочитала файл правильно. Разошлось - разбираемся, что она пропустила или посчитала дважды. Ограничение у этой проверки есть: сводка собрана из тех же данных, что и файлы разделов. Ошибку чтения моделью она ловит, ошибку самой выгрузки не ловит.

Полнота выгрузки. В manifest.json по каждому объекту записано, сколько строк в базе и сколько ушло в файл. Если числа расходятся, модель считала по неполным данным, и спорить с ней бесполезно. Такое бывает, когда база живая и в ней работают во время выгрузки.

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

Роли тут делятся естественно. Руководитель смотрит, отвечает ли ответ на его вопрос по смыслу. Программист проверяет, что цифра сходится со строками.

Где подход перестаёт работать

Большие базы. Миллионы документов в окно модели не поместятся ни в каком режиме. Два года небольшой компании уже дали около двух миллионов токенов. На крупной базе работает только узкий срез: один раздел, один месяц, один участок.

Хранилища значений. Двоичные данные в выгрузку не идут, в поле остаётся пометка.

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

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

Могу починить это за вас

Для каждого нового вопроса руководителя приходится собирать отдельную выгрузку и объяснять цифры вручную. Вопросы о продажах и запасах на понятном языке с проверяемыми расчётами. Сначала разбираемся в показателях и качестве исходных данных.

Стоимость
450 000 - 600 000 ₸анализ задачи и погружение; на выходе отчёт и оценка дальнейших работ, внедрение отдельно

Рано писать? Измерьте сами

Выгрузка данных 1С для нейросети

Открыть обработку

INFOSTART TECH EVENT 2026: конференция для 1с-специалистов. если собираетесь, регистрируйтесь по нашей ссылке. Регистрация →

Читайте также

Проверка сертификата и декларации в реестре ЕАЭС из 1С: запрос, код и ловушки номера

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

Регламентное задание 1С обрабатывает не все записи и не выдаёт ошибок: проверка и исправление цикла

Задание прошло, журнал чистый, счётчик обработанных сходится, а утром часть записей по-прежнему ждёт обработки. Частая причина: постраничный обход со смещением по набору, который сам сжимается от обработки. Как подтвердить это холостым прогоном, сколько теряется при разных размерах страницы, как переписать цикл и чем платить за исправление.

Что нейросеть знает о вашей компании: проверили на своём сайте

Задали трём нейросетям 20 вопросов из своей тематики: из 47 ответов наш сайт в источниках 17 раз, а по имени нас назвали дважды и оба раза с ошибкой. Разбор с индексом, HTML и robots.txt.