47 попыток записи в секунду. Именно с такой скоростью сорвавшийся с цепи ИИ-агент пытался перепровести документы в закрытом периоде на одном из наших ранних нагрузочных тестов.
Мое мнение однозначно: пускать нейросеть напрямую в объектную модель 1С и давать ей генерировать код — это инженерия слабоумия и отваги.
Интеграторы сейчас агрессивно продают красивую сказку про «умного помощника», который сам разберет почту, заполнит карточки и нажмет кнопку «Провести». Но когда финдир задумывается про ИИ-агент с правом записи в 1С: как дать LLM проводить документы и не разнести базу проводками, всплывает реальность. Данные нельзя гнать в зарубежные облака из-за 152-ФЗ и банальной коммерческой тайны. Значит, нужна локальная LLM. Агент, дорвавшийся до ERP или УПП без жесткого контроля, гарантированно устроит конфликт блокировок, наплодит дубли контрагентов и исказит НДС. Перед закрытием месяца вы получите руины.
ИИ-агент для 1С: граница между чтением и хаосом
Типовой провал пилота всегда выглядит одинаково. Модель читает письмо от поставщика, парсит вложения, стучится в базу и радостно создает дубль договора, потому что старый искала по ИНН, а он там был забит с пробелом. Следом она проводит реализацию. База встает колом из-за транзакционных блокировок таблиц — агент шлет запросы асинхронно и не умеет ждать.
Архитектура надежной системы начинается с жесткой границы: чтение отдается свободно, запись идет только через строгий DSL (Domain Specific Language) и песочницу.
Никакого прямого маппинга полей. Мы даем LLM ограниченный набор типизированных команды. План, действие, проверка. Это исключает галлюцинации, когда модель решает записать строку в числовое поле. Общение идет через структурированный JSON, который принимает HTTP-сервис на стороне 1С. Платформа 8.3.26+ отлично держит такой пул соединений.
{ "action": "create_draft_invoice", "idempotency_key": "msg_88f9a1b2_v1", "payload": { "inn": "7701234567", "items": [{"sku": "00-00012", "qty": 5}], "dry_run": true } }Этот флаг dry_run спасает миллионы нервных клеток. Агент просит 1С сымитировать проведение. 1С открывает транзакцию, прогоняет всю бизнес-логику проверок — хватает ли остатков, бьются ли лимиты, корректен ли НДС — затем откатывает транзакцию и возвращает агенту статус. Идемпотентность по ключу входящего документа (idempotency_key) обязательна: если сеть моргнула и агент повторил POST-запрос, система проигнорирует дубль.
Транзакционность, аудит и матрица прав
Теперь про Human-in-the-loop. Ни один вменяемый главбух не отдаст алгоритму проведение регламентных операций вслепую.
Нужна матрица прав по типам документов. Заявки на расход средств или кадровые переводы — строго в статус «Черновик». Человек должен глазами сверить исходник с результатом и нажать кнопку. Типовые акты сверок от проверенных контрагентов можно пускать в автопроведение, но только если скорринг уверенности агента выше 98%.
Аудит-лог действий агента — это ваш юридический щит перед ФНС и внутренним аудитом. В системе должно железобетонно фиксироваться: документ создан агентом на основе email-письма X, проверен по правилам Y, подтвержден пользователем Z. Каждое действие должно иметь возможность отката в один клик.
Все это требует ресурсов. Для нормальной латентности локальной LLM-модели (например, квантованной Qwen 72B или хотя бы Llama 3 8B) нужен сервер с VRAM от 48 до 80 ГБ. А на стороне сервера 1С потребуется оптимизация кода: агент вводит данные быстрее десяти операторов, и неоптимизированные запросы убьют базу блокировками.
Вот базовый чек-лист допуска ИИ к продуктивному контуру:
- Агент работает под выделенным служебным пользователем с RLS-политиками, обрезанными до минимума.
- Никакого самостоятельного создания нормативно-справочной информации (НСИ). Новые контрагенты создаются только через заявку человеку.
- Запись работает в режиме черновика, проведение — исключительно через механизм dry-run симуляции.
- Каждая сессия агента логируется с привязкой к исходному тексту или документу, из которого он взял данные.
В Morana Labs мы решаем эту задачу через вынесенный edge-middleware на Go. Он держит сессии с локальной LLM, контролирует идемпотентность вызовов, валидирует JSON-схемы и отдает в 1С только математически выверенные команды. База остается консистентной, 152-ФЗ соблюдается, а бухгалтерия перестает работать человеческим API для перебивки цифр со сканов.