ИИ-помощник по данным 1С: архитектура вместо RAG

11.08.26

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

«Хотим чат, который отвечает на вопросы по нашей 1С» — и дальше берут классический RAG: выгрузка, векторная база, модель. На демо работает, в эксплуатации разваливается. Разбираем, почему остаток нельзя найти векторным поиском, как делить вопросы на классы, почему модель не должна генерировать запросы к базе и что делать с правами доступа.

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

Разберём, почему так и какая архитектура переживает контакт с реальной базой.

 

Почему наивный RAG здесь не работает

Классический RAG рассчитан на текст: документы, регламенты, статьи. Вы режете их на фрагменты, считаете векторы, находите похожее по смыслу и отдаёте модели как контекст.

Учётные данные так себя не ведут, и вот почему.

Ответа нет в тексте. Остаток по номенклатуре не лежит нигде готовой строкой. Он вычисляется по регистру накопления на дату, с учётом всех движений. Векторный поиск по выгруженным документам не найдёт остаток, потому что остатка как текста не существует.

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

Числа не ищутся по смыслу. Векторная близость работает для формулировок, но не для «покажи заказы свыше миллиона за июль». Это условие отбора, а не смысловое сходство.

Права доступа. Выгрузили в индекс — потеряли ограничения. Менеджер, который в 1С видит только своих контрагентов, спросит у ассистента про чужих и получит ответ.

Последний пункт обычно всплывает позже всех и стоит дороже всех.

 

Три класса вопросов

Работающая схема начинается не с выбора модели, а с разделения вопросов на классы. Их три, и обрабатываются они принципиально по-разному.

Вопросы к текстам. «Какой порядок согласования договора со скидкой больше 15%?», «Что делать при возврате брака от розничного покупателя?» Ответ лежит в регламентах, инструкциях, приказах, переписке. Здесь классический RAG уместен и работает хорошо: данные меняются редко, ответ по своей природе текстовый.

Вопросы к учётным данным. «Сколько осталось на складе в Подольске?», «Какая дебиторка у контрагента на сегодня?», «Что отгрузили этому клиенту в июле?» Здесь никакого RAG быть не должно. Модель нужна только чтобы превратить фразу человека в параметры запроса: что спрашивают, по какому объекту, на какую дату, в каком разрезе. Дальше отрабатывает обычный запрос к базе, и цифру отдаёт 1С, а не модель.

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

Практический вывод: первое, что делает система, — определяет класс вопроса. Не находит ответ, а решает, куда идти. Если этого шага нет, вы получаете ассистента, который на вопрос об остатках уверенно цитирует прошлогоднюю инструкцию.

 

Как устроен запрос к учётным данным

Здесь важна деталь, которую часто пропускают: модель не должна генерировать текст запроса к базе напрямую.

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

Рабочая схема другая. На стороне 1С делается ограниченный набор параметризованных операций: остатки по номенклатуре и складу на дату, взаиморасчёты по контрагенту, отгрузки за период, статус документа. Каждая — отдельный HTTP-сервис с понятными параметрами и предсказуемым планом выполнения.

Модель в этой схеме занимается только распознаванием: какой из операций соответствует вопрос и какие параметры из фразы вытащить. Всё остальное делает 1С своими средствами — своими запросами, своими правами, своей логикой.

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

 

Права доступа

Это то место, где проекты чаще всего ломаются на приёмке, причём ломаются громко.

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

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

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

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

 

Актуальность и ссылка на источник

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

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

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

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

 

Локальная модель и контур

Вопрос «облако или локально» в проектах вокруг 1С решается не качеством моделей, а тем, кто в компании согласует передачу данных наружу.

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

Отсюда рекомендация по архитектуре: слой распознавания и слой доступа к данным должны быть отделены от конкретной модели. Тогда решение «облако или локально» принимается по ходу проекта и меняется без переписывания системы — а не блокирует старт на этапе согласований.

 

Что закладывать сразу

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

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

 

Итог

Ассистент по данным 1С — это не поиск по выгрузке. Это маршрутизатор, который отличает вопрос к регламенту от вопроса к регистру, и в первом случае идёт в текстовый поиск, а во втором — в учётную систему, от имени пользователя и с проверяемым ответом.

Модель здесь занимает куда меньше места, чем принято думать: она понимает вопрос и формулирует ответ. Цифры считает 1С.

Николай Мазур, MZR Digital.

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

ИИ LLM RAG ассистент HTTP-сервисы права доступа RLS регистры накопления интеграция локальные модели

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

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

См. также

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

15250 руб.

20.12.2024    17810    90    29    

78

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

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

15250 руб.

25.08.2025    66801    134    38    

142

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

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

12078 руб.

30.07.2026    5078    13    4    

12

Нейросети Бесплатно (free)

Разбираем новые, более дешевые и эффективные паттерны работы внешнего 1С:Эксперта, а именно – прямое использование LLM-ассистентов и создание с их помощью инструментов для аудита производительности и нагрузочного тестирования. Показываем, как модели помогают анализировать таймауты и взаимные блокировки по технологическому журналу, проверять сложные запросы, а также находить неочевидные взаимосвязи между показателями загрузки оборудования. Рассказываем о создании скриптов для построения графиков по данным atopsar и для поиска и визуализации стеков горячих запросов, а также о создании неинвазивной оснастки для реалистичных нагрузочных и сценарных тестов без программирования на 1С. Отдельно разбираем антипаттерны и ограничения такого подхода. Делаем вывод, что LLM остается лишь помощником, не превращает джуна в сеньора, а ответственность за итоговый результат по-прежнему несет 1С:Эксперт.

10.08.2026    2974    jf2000    15    

17

Нейросети Программист Бесплатно (free)

Практический кейс автономной разработки для бизнес-платформы OneBase: ИИ-агент под управлением Claude Code и недорогой модели GLM за 37 минут с нуля создаёт полную конфигурацию с метаданными, формами, отчётами и дашбордами. Процесс проходит полностью без участия человека — агент сам нарезает задачи, генерирует демо-данные и исправляет ошибки до успешного прогона всех проверок.

07.08.2026    5174    Ibrogim    10    

11

Нейросети Программист Бесплатно (free)

Вокруг 1С выросла целая индустрия MCP-серверов: свой сервер в контуре, HTTP-сервисы, расширения, докер. Это отличные инструменты для разработчика. Но большинству людей вокруг 1С нужно другое: быстро подключить ИИ к базе, спросить словами, получить таблицу и отключиться. Без программиста, без изменений конфигурации и без единого открытого порта. Рассказываю, как сделали такой шлюз, почему он работает даже на УПП 1.3 на обычных формах, и разбираем живые кейсы: консультант без программиста, бухгалтер без сопровождения и вайб-кодинг Б24 по живой базе.

04.08.2026    5585    svcoopers    5    

9

Нейросети Программист Бесплатно (free)

SFT-адаптация Qwen/Qwen3.6-27B для разработки на платформе 1C:Enterprise: код на BSL, структура выгрузок BSL+XML, схемы XML и типовые практики конфигураций. Модель ориентирована на ассистента разработчика 1С: навигация по метаданным/XML-выгрузке, пояснение и правка BSL, следование внутренним стандартам кодирования, работа с открытыми кодовыми базами 1С.

03.08.2026    5855    andrew.ab    41    

20

Облачные сервисы, хостинг Сервера Нейросети Программист Бесплатно (free)

В последние годы спор «облако или локалка» стал одним из самых горячих в мире работы с нейросетями. Давайте разберемся.

03.08.2026    2825    dsdred    48    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. infosoft-v 1108 11.08.26 21:50 Сейчас в теме
Отличная статья, спасибо.
Вопрос по главе "Как устроен запрос к учётным данным". Как оптимально возвращать учётные данные в модель? Какой формат предпочтительнее? Какие дополнительные данные помимо самого отчёта желательно также передать в модель?
maXon777; +1 Ответить
2. nedomolkov.ivan 113 12.08.26 06:57 Сейчас в теме
(1) Не автор, но у меня этот вопрос уже отболел, поделюсь практикой.

Формат: плоская таблица, а не вложенный JSON. Колонки с явными заголовками модель читает заметно надёжнее, чем дерево объектов: на вложенности она начинает терять уровни и путать, к какому элементу относится сумма. Числа отдаю как есть, без разделителей разрядов, даты в ISO. Заголовки пишу человеческими словами, а не именами реквизитов: "Долг на дату", а не "СуммаВзаиморасчетовОстаток".

Что кладу рядом с цифрами:
- какая операция отработала и с какими параметрами, прямо строкой (у вас в статье это названо ссылкой на источник, согласен полностью);
- дату и время среза отдельно от периода отчёта, иначе на вопрос "а сейчас?" модель бодро отвечает вчерашним;
- валюту и единицы явно, включая "в тысячах", если свернули;
- сколько строк отдано и сколько всего было.

Последний пункт недооценён сильнее всего. Если молча обрезать пять тысяч строк до сотни, модель сделает уверенный вывод по хвосту, которого не видела, и никак это не пометит. Строка "показано 100 из 5213" стоит ноль и убирает целый класс уверенного вранья.

И то, что сэкономило больше всего нервов: перед данными отдаю кусок структуры метаданных по тем объектам, о которых спрашиваем. Пока модель угадывает имена реквизитов и состав измерений, галлюцинации не кончаются, сколько ни правь промпт.
3. nedomolkov.ivan 113 12.08.26 06:58 Сейчас в теме
Про права отдельно любопытно, как вы это решаете на практике. Фильтруете результат после запроса или поднимаете сеанс от имени пользователя до? Второе идеологически правильнее, но у меня на больших ролевых моделях разваливалось: там, где сверху навешаны ограничения на уровне записей, ответ на один и тот же вопрос у двух пользователей отличается так, что объяснить его бизнесу уже нельзя.
4. capitan 2595 13.08.26 23:02 Сейчас в теме
Спасибо КЭП
Может надо примеры из практики приложить?
Отдельное за перевод Naive RAG
Кстати почему «наивный», а не «простодушный» или «не имеющий жизненного опыта»
Прикрепленные файлы:
Для отправки сообщения требуется регистрация/авторизация