Данное решение построено на базе разработки Романа Андриянова «ИИКона-универсальный AI-коннектор для 1С» (//infostart.ru/1c/articles/2585691) и является ее развитием и примером использования.
Структурированный вывод
Не все LLM поддерживают структурированный вывод (constrained decoding). Даже если передать JSON-схему в системном промпте, модель не всегда вернет ответ строго в нужном формате. Она может пропустить обязательное поле, изменить тип значения, выбрать договор не из переданного списка или вернуть сумму в виде, который система не сможет надежно разобрать.
Для автозаполнения документов в корпоративных учетных системах такой ответ нельзя принимать на доверии. Поэтому в решении есть проверка результата после генерации. Система разбирает JSON, проверяет поля, типы значений, обязательные данные и бизнес-условия. Например, если модель предлагает договор, проверяется, что он существует и относится к выбранному контрагенту.
После проверки система решает, что делать с ответом: применить его автоматически, отправить модели повторный запрос с причиной ошибки, передать документ на ручную проверку или отклонить результат. Учитывается и уверенность модели в ответе (confidence). Если уверенность ниже заданного порога, ответ не используется для автозаполнения, даже если формально он корректный. Это закрывает риск неверного заполнения документов и дает возможность использовать модели с разным уровнем поддержки структурированного вывода.
Обработка банковской выписки
При обработке банковской выписки система помогает определить договор по назначению платежа и заполнить расшифровку без ручного ввода. Да, есть другие варианты решения данной задачи: с помощью регулярных выражений, есть типовой инструмент шаблонов анализа назначений, но у каждого из этих подходов есть свои плюсы и минусы. Данное решение, в том числе, рассматривается как пример использования AI - еще одного инструмента для автоматизации процессов. Цель - показать, что ничего сложного здесь нет, можно применять, наряду с обычными правилами и алгоритмами 1С.
При загрузке банковской выписки в 1С формируются документы поступления на расчетный счет. В документе уже есть контрагент, сумма и назначение платежа. Эти данные система передает модели вместе со списком договоров контрагента.
Модель анализирует назначение платежа и предлагает договор или несколько договоров для расшифровки. Затем результат проходит проверку, если ответ корректный, то система заполняет расшифровку платежа: подставляет договор и сумму.
Анализ запускается автоматически при создании нового поступления, если договор в расшифровке еще не заполнен. Также пользователь может запустить его вручную из формы документа. Если строки расшифровки уже есть, система сначала предупреждает, что они будут заменены.
Если модель не дала надежный ответ, вернула спорный вариант или запросила ручную проверку, документ помечается признаком "Требуется проверка". Этот признак выводится в журнале банковских выписок, чтобы такие поступления можно было быстро найти и разобрать вручную.
Настройка схемы структурированного ответа и параметров валидации
В карточке Эксперта ИИ указывается модель ИИ, системный промпт, схема ответа и лимит повторных запросов.

Схема ответа ИИ содержит описание полей схемы JSON, их типы и ссылку на валидатор ответа.

Система добавит в системный промпт текст «Формат ответа (строго):» и схему JSON, согласно настроенной структуры.
Пример схемы JSON, полученной по настройке на картинке:
Валидатор ответа применяется при обработке ответа от модели, он может применять как ко всему ответу, так и к отдельному полю.

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

Результат валидации маршрутизируется по следующей схеме:
| Значение перечисления | Повторный запрос | Ручная проверка | Описание действия |
|---|---|---|---|
| Пройдена валидация | нет | нет | Ответ принимается. Если confidence кандидата не ниже порога, договор и сумма подставляются в расшифровку платежа автоматически |
| Несовпадение вычислений | да | нет | Значение поля не сходится с расчётным. Например, суммы кандидатов в сумме не дают сумму платежа. Модели отправляется уточнённый запрос с причиной отклонения, при исчерпании лимита повторов документ уходит на ручную проверку |
| Несовпадение формата | да | нет | Значение поля не соответствует ожидаемому типу или формату: ожидался массив, пришёл объект; число записано строкой и тому подобное. Уточнённый запрос с причиной ошибки, затем при необходимости на ручную проверку |
| Структурная ошибка | да | нет | Ответ невозможно разобрать как JSON, либо корневой элемент не является объектом. Уточнённый запрос с причиной ошибки, при исчерпании лимита повторов на ручную проверку |
| Отсутствующая информация | нет | да | В ответе нет обязательного поля или данных, которые модель должна была заполнить. |
| Внешняя ссылка | нет | да | Модель вернула значение, которое ссылается на объект вне переданного контекста, например, на договор другого контрагента. |
| Противоречивые данные | нет | да | Значения в ответе противоречат друг другу или переданному контексту. Например, выбран договор, но сумма по нему не соответствует назначению платежа. |
| Ошибка валидатора | нет | да | Сбой при выполнении доверенного кода валидатора в 1С. Причина в самом валидаторе, а не в ответе модели, поэтому повторный запрос не делается. |
Реализация обработки банковской выписки
При записи документа «Поступление на расчетный счет» с видом операции "Оплата от покупателя" система выполняет заполнение документа с помощью назначенного на процесс эксперта ИИ : система формирует пользовательский промпт (назначение + сумма + список договоров контрагента), итеративно вызывает модель с повторами при ошибках валидации, фильтрует кандидатов по порогу уверенности, разделяет на подтверждённые/спорные, обрабатывает признак «требуется ручная проверка результата».
Пример пользовательского промта:
Структурированный ответ модели:
Результат заполнения:

Параметры тестирования
- Модель: YandexGPT 5 Pro (облако Яндекса).
- Конфигурация: Управление холдингом, ред. 3.3 (3.3.3.35).
- В качестве тестовой выборки было использовано 342 документа, успешно обработано 97,4% объема, стоимость одного документа составила 0,46 рубля.
Установка
- Скачайте последний релиз с GitHub
- Установите расширение Kazna_AI_helper_v1.0.cfe
- Обновите базу данных
- Настройте коннектор согласно инструкции (//infostart.ru/1c/articles/2585691)
- Добавьте Эксперта ИИ, укажите модель, системный промпт и настройте схему ответа (примеры выше по тексту).
- Добавьте валидаторы ответа (примеры есть выше по тексту)
- Назначьте эксперта для анализа назначений платежа
Проверено на следующих конфигурациях и релизах:
- 1С:Управление холдингом 3.2 (русский и английский интерфейсы), релизы 3.2.11.20
Вступайте в нашу телеграмм-группу Инфостарт