AI Agent 0.9.3: skills и распознавание документов в 1С

25.08.26

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

Переносимые JSON skills и прикладной сценарий: агент распознает счет, УПД, акт или счет-фактуру из PDF и создает заполненный черновик в 1С.

Привет. Это статья про развитие AI Agent от 0.9.0 до 0.9.3.

Главная тема версии — skills: переносимые JSON-сценарии, которые расширяют обычного ИИ-агента в 1С без доработки кода под каждую пользовательскую задачу. В 0.9.3 у этого механизма появился первый полноценный прикладной сценарий: распознавание входящих документов и создание черновиков в 1С.

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

Для таких процессов и появился слой skills.

LLM-редактор: "Универсальный агент — это мощно. Но когда бухгалтер третий раз объясняет, как именно заводить заказ клиента, универсальность начинает пахнуть ручной работой".

 

Предыдущие статьи

 

Ссылки

 

TL;DR

  • Добавлен реестр skills в 1С.
  • Skill описывается переносимым JSON: можно скопировать из одной базы и вставить в другую.
  • В форме skills есть генерация JSON по описанию задачи.
  • Есть кнопка тестового запуска: можно проверить, подходит ли skill под пользовательский запрос.
  • Обычная форма "ИИ Агент" автоматически учитывает активные skills при планировании.
  • Для опасных write-сценариев skill может требовать подтверждение пользователя.
  • Добавлен режим Распознавание документов: агент принимает PDF или изображение и создает черновик документа в 1С.
  • Из коробки поставляются skills для счета поставщика, УПД/ТОРГ-12, акта услуг и входящей счет-фактуры в БП и УНФ.
  • Добавлены UI E2E-тесты: форма skills, негативные кейсы, обычный агент + выбранный skill, разные режимы запуска агента.

 

Зачем нужны skills

LLM хорошо понимает живой текст, но бизнес-процесс в 1С обычно состоит из местных правил:

  • какие объекты разрешено создавать;
  • какие реквизиты надо заполнить обязательно;
  • где искать контрагента и номенклатуру;
  • когда надо остановиться и спросить подтверждение;
  • какие действия запрещены вообще.

Если эти правила каждый раз писать в сообщении пользователю, получится не автоматизация, а длинная инструкция перед каждой задачей. Skill переносит эти правила в отдельный слой.

Создай заказ клиента для Ромашка на Кабель 10 штук.

Агент видит активный skill для Document.ЗаказПокупателя, добавляет его инструкцию в prompt-контекст и строит план уже не как "свободная модель", а как исполнитель конкретного сценария.

 

Как устроен skill

Skill — это JSON-карточка. Ее удобно хранить в git, переносить между базами, отправлять разработчику и вставлять обратно в форму.

{
  "name": "customer-order-safe",
  "title": "Создание заказа клиента",
  "description": "Создает заказ клиента по пользовательскому запросу.",
  "enabled": true,
  "owner": "user",
  "scope": "user",
  "triggers": ["заказ клиента", "создай заказ", "ЗаказПокупателя"],
  "dialog_types": ["Агент"],
  "target_object_type": "Document",
  "target_object_name": "ЗаказПокупателя",
  "prompt": "Перед созданием заказа проверь метаданные Документ.ЗаказПокупателя, найди контрагента и номенклатуру по названию, заполни реквизиты и не записывай документ без подтверждения пользователя.",
  "template_vars": {
    "customer": {"type": "CatalogRef.Контрагенты", "required": true, "source": "user_prompt"},
    "items": {"type": "array", "required": true, "source": "user_prompt"}
  },
  "dsl_template_mode": "validate",
  "dsl_template": {
    "dsl_version": 1,
    "steps": [
      {"action": "GetMetadata", "object": "Document.ЗаказПокупателя", "save_as": "metadata"},
      {"action": "FindReferenceByName", "object": "Catalog.Контрагенты", "value": "$customer", "save_as": "customer_ref"},
      {"action": "CreateDocument", "object": "ЗаказПокупателя", "save_as": "document_ref"},
      {"action": "SetField", "target": "$document_ref", "field": "Контрагент", "value": "$customer_ref"},
      {"action": "SetField", "target": "$document_ref", "field": "Товары", "value": "$items"},
      {"action": "ShowInfo", "message": "Черновик подготовлен. Запись только после подтверждения пользователя."}
    ]
  },
  "risk_level": "write",
  "enforcement": "warn",
  "approval_required": true
}

Здесь dsl_template — не готовый документ с жестко заданными значениями, а машинный каркас выполнения. Переменные $customer и $items заполняются из пользовательского запроса согласно template_vars. Режим validate разрешает агенту адаптировать значения и добавлять безопасные уточняющие шаги, но итоговый DSL проверяется по шаблону. Для более свободной подсказки есть hint, для строго фиксированного процесса — strict.

Важный момент: это не привязка к одной демонстрационной задаче. В JSON можно описать разные сценарии: безопасные запросы, создание справочников, создание документов, восстановление DSL, работу с конкретными объектами метаданных.

 

Новый пользовательский поток

  1. Открыть раздел ИИ Агент -> Skills.
  2. Описать задачу обычным языком.
  3. Нажать Сгенерировать JSON.
  4. Проверить или отредактировать JSON.
  5. Ввести тестовый запрос.
  6. Нажать Запустить тест.
  7. Сохранить skill.
  8. Перейти в обычную форму ИИ Агент и выполнить пользовательский запрос.

JSON, DSL-шаблон и тест в одном рабочем потоке

На одном экране видны коробочные skills, описание нового сценария, DSL-шаблон и результат тестового сопоставления. Поле has_dsl_template: true подтверждает, что сгенерированная карточка содержит машинный каркас выполнения.

 

Skill с DSL-шаблоном и успешным тестовым запуском

 

Как skill попадает в обычный агент

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

  1. агент получает активные skills для типа диалога;
  2. сравнивает triggers и целевой объект с запросом пользователя;
  3. добавляет подходящие skills в prompt-блок;
  4. явно передает target_object_type и target_object_name;
  5. строит DSL с учетом ограничений skill;
  6. для write-действий применяет policy и approval.

В рабочем режиме имя выбранного skill попадает в план и финальное резюме агента. Это видно ниже на прикладном сценарии распознавания счета, поэтому отдельный дублирующий скрин формы агента здесь не нужен.

 

Прикладной сценарий: первичка из PDF в документ 1С

Самое наглядное применение skills в 0.9.3 — режим Распознавание документов. Пользователь прикладывает скан или PDF и пишет, что нужно сделать. Например:

Создай счет поставщика по приложенному PDF.

Дальше агент не ограничивается извлечением текста и не возвращает пользователю еще одну таблицу для ручного переноса. Подходящий skill определяет целевой объект метаданных, правила поиска ссылок и безопасный DSL-сценарий, после чего агент создает в базе черновик документа.

Из коробки поддержаны четыре частых B2B-сценария:

 

Входящий документ Бухгалтерия предприятия Управление нашей фирмой
Счет поставщика СчетНаОплатуПоставщика СчетНаОплатуПоставщика
УПД / ТОРГ-12 ПоступлениеТоваровУслуг ПриходнаяНакладная
Акт услуг ПоступлениеТоваровУслуг АктВыполненныхРабот
Счет-фактура СчетФактураПолученный СчетФактураПолученный

 

Это не четыре жестко прошитые ветки в коде агента. Для каждой конфигурации поставляется свой skill с applicability_json, сопоставлением полей и dsl_template_json. Перед выполнением агент проверяет наличие целевого объекта и его реквизитов в метаданных текущей базы. Поэтому один и тот же пользовательский запрос приводит к разным корректным документам в БП и УНФ, а неподходящий конфигурации skill не должен выбираться.

Что агент извлекает и заполняет

Для счета поставщика агент получает из PDF номер и дату, поставщика и покупателя, ИНН/КПП, основание, срок оплаты, сумму и НДС, а также строки товаров или услуг: наименование, количество, единицу, цену, сумму и ставку НДС.

Ссылочные поля заполняются по отдельной политике skill:

  1. Контрагент ищется прежде всего по ИНН, затем по доступным идентификаторам и наименованию.
  2. Организация-покупатель ищется по ИНН из документа; если прямого совпадения нет, используется безопасный fallback по данным ранее созданных документов и настройкам базы.
  3. Номенклатура ищется по артикулу, штрихкоду, коду и наименованию в зависимости от доступных данных.
  4. Если элемент не найден, policy конкретного skill решает, разрешено ли его создать. Для коробочных skills распознавания создание контрагентов и номенклатуры включено через безопасный skill создания справочника; это правило можно изменить в JSON.

Повторное распознавание того же файла не должно без причины перезаписывать найденные элементы справочников. В список созданных/измененных объектов попадают только ссылки, которые действительно были записаны текущим сценарием.

Что видит пользователь

  1. Пользователь выбирает режим Распознавание документов.
  2. Прикладывает PDF или изображение и формулирует задачу.
  3. Агент показывает план и ход выполнения в обычной форме агента.
  4. Перед рискованной записью, если этого требует policy, открывается отдельное понятное окно подтверждения со списком действий.
  5. Агент создает черновик, но не проводит документ.
  6. В финальном сообщении и правой части формы появляются кликабельные ссылки на реально созданные или измененные объекты. Документ можно сразу открыть и проверить, не переоткрывая диалог.

Демонстрация счета поставщика

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

 

Счет поставщика: результат агента и ссылка на созданный документ

 

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

 

Созданный счет поставщика с заполненными реквизитами и товарами

Смотреть на Rutube: распознавание счета поставщика от PDF до документа в 1С.

Например, на тестовом счете агент определил поставщика ООО «Торговый дом „Комплексный“», покупателя ООО «Турбаза „Яхрома“», четыре товарные строки и итоговую сумму 31 175 рублей. В БП результатом стал черновик СчетНаОплатуПоставщика; карточка документа открывается непосредственно по ссылке из результата агента.

Для входящей счет-фактуры в БП workflow составной: сначала создается документ-основание ПоступлениеТоваровУслуг, его ссылка сохраняется в контексте DSL через save_as, затем стандартное заполнение 1С используется при создании СчетФактураПолученный. Так skill описывает не только набор полей, но и последовательность связанных прикладных действий.

Почему это именно skill

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

  • к каким конфигурациям и версиям он применим;
  • какой документ является целевым;
  • как сопоставить распознанные данные с реквизитами и табличными частями;
  • искать или создавать элементы справочников;
  • какие действия разрешены и запрещены;
  • когда требуется подтверждение;
  • какой DSL-шаблон должен пройти валидацию.

Чтобы адаптировать процесс к другой конфигурации или правилам компании, разработчик переносит и меняет JSON skill, а не добавляет в ядро агента очередное условие по названию документа.

 

Что изменилось технически

  • общий модуль ИИА_Skills;
  • регистр сведений ИИА_Скилы;
  • общая команда и форма ИИА_Skills;
  • системные skills по умолчанию;
  • импорт и экспорт JSON-карточки;
  • генерация черновика skill по описанию;
  • тестирование matching-логики;
  • защита системных skills от удаления и перезаписи;
  • добавление skills в prompt обычного агента.
  • привязка skills к конфигурации и обязательным объектам метаданных;
  • dsl_template_json и переменные составного workflow (save_as, $variable);
  • отдельный режим распознавания документов и коробочные skills для БП и УНФ;
  • вывод кликабельных ссылок на созданные объекты без повторного открытия диалога.

Слой намеренно сделан developer-first: JSON остается главным форматом. Это удобно для нормального жизненного цикла: разработчик подготовил skill, проверил в тестовой базе, положил в репозиторий, перенес в рабочую базу.

 

Пример: заказ клиента

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

Разработчик или сам агент генерирует JSON. Дальше пользователь проверяет сценарий тестовой фразой:

Создай заказ клиента для Ромашка на Кабель 10 штук.

Если skill matched, его можно сохранить и использовать в обычном агенте. При запуске агент не просто "угадывает", что нужно сделать, а получает устойчивую инструкцию:

  • работать с Document.ЗаказПокупателя;
  • сначала проверить метаданные;
  • найти ссылочные значения по названию;
  • подготовить запись;
  • остановиться перед опасным действием;
  • запросить подтверждение.

 

Ограничения

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

  • write-сценарии надо проектировать осторожно;
  • для критичных документов нужно оставлять approval_required=true;
  • JSON skills лучше хранить в git и ревьюить как код;
  • перед переносом в рабочую базу нужен прогон в тестовой публикации;
  • системные skills нельзя перезаписывать из UI.

 

Что проверено для распознавания

  • Runtime-прогон всех коробочных skills в БП и УНФ: 8/8, PASS.
  • Выполнение dsl_template_json непосредственно из карточек skills: 8/8, PASS.
  • Bridge-тесты проверяют реестр skills, prompt с вложением и построение typed plan из DSL-шаблона.
  • UI E2E проверяет полный пользовательский поток и появление видимых ссылок на созданные объекты.

Тесты запускаются на метаданных обеих конфигураций. Это важно: успешное распознавание текста само по себе еще не означает, что агент сможет создать корректный объект в конкретной базе 1С.

 

Что дальше

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

LLM-редактор: "Самое приятное в skills не то, что агент стал умнее. А то, что его ум теперь можно положить в JSON и перенести в другую базу".

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

1C ИИ агент AI Agent skills JSON LLM распознавание документов OCR первичные документы БП УНФ DSL

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

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

См. также

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

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

15250 руб.

25.08.2025    67429    136    38    

143

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    18086    91    29    

80

Нейросети Программист 1С:Предприятие 8 Бесплатно (free)

В этой статье расскажу, как реализовал с помощью LLM полноценную генерацию кода для 1С (BSL) в популярном Open Source API-клиенте Bruno.

21.08.2026    846    malikov_pro    9    

9

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

Один проход модели по вопросу из 28 знаков стоит 631 296 умножений и 4,8 секунды. Столько берёт языковая модель на 21 920 параметров, посчитанная прямо в 1С средствами самой платформы. На ней разбираю по шагам, что стоит за каждым словом из модного словаря: токен, словарь, вектор символа, вес, слой, голова внимания, контекст, softmax, температура, KV-кэш. Отдельно про температуру - она вообще не про креативность и управляет выбором буквы уже после того, как модель закончила работу. Отдельно про галлюцинацию - показываю в цикле генерации место, куда физически невозможно вставить "не знаю". Плюс расчёт потолка для встроенного языка, замер цены размера модели и история про метод платформы, которого не существует.

20.08.2026    4479    nedomolkov.ivan    11    

20

Инструментарий разработчика Нейросети Программист 1С 8.3 Бесплатно (free)

Стенд, на котором языковую модель видно изнутри: настоящий трансформер посчитан с нуля на встроенном языке, без внешних компонент, ONNX, Native API и обращений наружу. Три кнопки: полный ответ с отчётом о числе умножений и секундах, один проход модели с вероятностями всех 36 символов алфавита столбиком, и разбор устройства - алфавит, номера токенов, размерности. Поле температуры показывает, что выбор буквы делает не сама модель, а код снаружи: при нуле ответ повторяется слово в слово, при пятёрке текст рассыпается на слоги. В комплекте два файла: модель на 21 920 параметров отвечает за 7-13 секунд, вчетверо более крупная примерно за 28. Веса лежат макетом внутри, скачивать и настраивать нечего. Знаний о мире у модели нет: она помнит сорок фраз про объекты 1С, и на вопрос вне этого набора отвечает бессмыслицей с той же уверенностью.

20.08.2026    3435    79    nedomolkov.ivan    0    

15

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

Код от агента выглядит хорошо, но между «агент выдал код» и «код работает в боевой базе» лежит дистанция, которую никто не проходит за вас. Как я обвесил её конвейером из семи ролей на боевой 1С:БП КОРП с БИТ.ФИНАНС: устройство конвейера, почему «критично» у агента не значит «дефект», шесть промахов, прошедших конвейер насквозь, один дефект, доехавший до боевой базы, и честный список того, чего я не измерял.

19.08.2026    1720    VlaMax    34    

12

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

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

10.08.2026    3455    jf2000    15    

17

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

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

07.08.2026    5623    Ibrogim    13    

11
Для отправки сообщения требуется регистрация/авторизация