ИИкона для 1С: модели, база знаний, инструменты и мониторинг
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Я по привычке всё ещё называю ИИкону коннектором. Между тем у неё уже есть база знаний, инструменты и мониторинг. Проект давно перерос первое название, хотя прежний вызов из своего кода работает как раньше.
Актуальный файл расширения — в разделе «Файлы» этой публикации. Для первого запроса нужны само расширение и настроенная модель. Установка и обновление — в конце статьи.
Кому лень читать — вот СДВГшное видео на минуту. Дальше — текст, скриншоты и подробности.
После первой публикации меня попросили показать не только вызов «Привет», но и пользу в настоящей базе. Начну с разбора ошибок, затем покажу работу со знаниями, инструментами и диаграммами.
Готовый прикладной пример тоже есть — ИИПоздравлятор. Это отдельная обработка: она находит именинников по кадровым данным 1С, а модель через ИИкону пишет поздравления. В файл расширения обработка не входит.
Мониторинг ошибок и аудитор кода
Сделал мониторинг журнала регистрации: он собирает ошибки, объединяет повторы и передаёт их модели на разбор. В группе поддержки можно получить текст ошибки, координаты в коде и ответ модели, а в дашборде — увидеть, что повторяется чаще всего. Для разбора с доступом к коду подключил внешний анализатор rlm-tools-bsl.
На скриншоте — уведомление из демо-базы о сетевой ошибке при обращении к Telegram API. Модель предложила проверить доступ в интернет, блокировки, настройки прокси и доступность API. Причину этого сбоя она не установила; зато текст ошибки, координаты и варианты проверки собраны в одном сообщении.

Уведомление, полученное при тестировании подсистемы.
Сбор. Регламентное задание забирает ошибки из журнала регистрации, склеивает повторы по хешу текста (гуиды и числа склейке не мешают), пропускает через правила игнорирования и отдает пачку модели на классификацию. Дальше ошибку можно разобрать глубоко – агентом, с инструментами.
Аудитор кода. Отдельное задание берет координату из стека («ОбщийМодуль.Имя.Модуль(130)») и через небольшой HTTP-мост обращается к rlm-tools-bsl. Модель получает тело метода и список тех, кто его вызывает.
Сам анализатор rlm-tools-bsl (MIT, автор Dach-Coin) я нашел в каталоге открытых 1С-проектов OpenYellow. Он строит индекс BSL по выгрузке конфигурации. По строке из стека возвращает метод, его тело и граф вызовов — без EDT, живой базы и эмбеддингов. Модели уходит один метод с окружением вместо всего модуля.
HTTP-мост к аудитору по умолчанию слушает только 127.0.0.1: он не требует авторизации и отдаёт исходный код. Доступ с другой машины настраивается отдельно.
Если оставить мониторинг включённым во время тестов, можно получить очень обстоятельный разбор ошибки, которую сам же специально вызвал. С уведомлением в телеграм.
Телеграм. Можно отправлять отдельные разборы или дайджест. По умолчанию критическая ошибка приходит сразу, повторная — с третьего появления; об одной ошибке отправляется не больше десяти уведомлений. Пороги и модель анализа меняются в форме «Настройки мониторинга ошибок».
Дашборд. Показывает повторяющиеся ошибки, их координаты, ответы модели и расходы на ИИ. Открывается формой в 1С или в браузере через HTTP-сервис, доступ – по роли просмотра. Графики рисует ECharts из макета, данные считает сервер.
Дашборд ошибок в браузере.
Один вызов — разные модели
Обычный вызов модели выглядит так:
Модель = Справочники.КИИ_МоделиИИ.НайтиПоНаименованию("GPT-6 Sol", Истина);
Ответ = КИИ_КоннекторИИ.ЗапросКМодели(Модель, "Привет! Как дела?");
Если Не Ответ.ЭтоОшибка Тогда
ОбщегоНазначения.СообщитьПользователю(Ответ.ТекстОтвета);
КонецЕсли;
Пять форматов за одним вызовом. За общим фасадом работают OpenAI-совместимый формат (через него же DeepSeek, OpenRouter, LiteLLM, Ollama, LM Studio и другие), Anthropic, Gemini, YandexGPT и GigaChat. Для своего кода не нужно разбираться в каждом протоколе.
Личные подписки ChatGPT и GLM. В чате можно выбрать и модель из своей подписки. Для ChatGPT используется вход Sign in with ChatGPT, для GLM Coding Plan — профиль поддерживаемого клиента. История, инструменты, предпросмотр запроса и контроль персональных данных продолжают работать в 1С.
Для этого рядом с сервером 1С запускается личный адаптер; его исходники входят в архив выпуска. Текущий вариант рассчитан на Windows и работу адаптера с сервером 1С на одном компьютере, поддержан текст и результаты инструментов. Подключение привязано к пользователю и модели, общий кеш для него отключён. Доступные модели определяет аккаунт. Порядок подключения.
Максимум выходных токенов задаётся в карточке модели; поле позволяет сохранить и большие значения. Допустимый предел и окно контекста зависят от самой модели и её API. Высокий максимум не означает, что каждый ответ израсходует его целиком.
В комментариях попросили не складывать все протоколы в один модуль. Теперь у каждого провайдера свой общий модуль, а прежний КИИ_КоннекторИИ остаётся единым входом для прикладного кода.

Мультимодальность. Модели можно передавать вложения в разных форматах и принимать сгенерированные картинки. Вложения принимают OpenAI-совместимый коннектор, Anthropic, Gemini и GigaChat; в коннекторе YandexGPT они пока не реализованы. Тип вложения и возможности самой модели тоже имеют значение — один протокол не превращает любую модель в мультимодальную.
В комментариях предложили «просто положить Base64 в массив images». Слово «просто» здесь самое интересное: даже у OpenAI Chat Completions картинка идёт в content как image_url, а не в отдельный images. Потом начинаются разные схемы других провайдеров, ошибки, размеры файлов, форма для человека и совместимость со старыми вызовами. У некоторых любое API укладывается в две строчки. Я тоже так думаю, пока не начинаю это делать.
Живьем я гоняю OpenAI-совместимые подключения – ключей от Anthropic, Gemini и GigaChat сейчас у меня просто нет и лень оплачивать, там формат запроса и разбор ответа сделал по документации и обложил тестами. Если у вас такие ключи есть и возникнут ошибки – напишите в issue.
Учет расходов. В комментариях к первой статье (меня прокомментировал сам Лустин!) предложили Helicone — учет токенов по каждому пользователю. Я тогда не знал, что это, но обещал разобраться. Подключение заработало сразу: протокол OpenAI-совместимый.
Дальше уперся в OpenRouter. В моём случае подружить Helicone с OpenRouter удалось после подмены адреса в форке. Мне нужен был OpenRouter единой точкой входа, поэтому попробовал LiteLLM — там он идёт из коробки. На нём и остался.
В журнале запросов 1С есть токены, время ответа, стоимость от провайдера, если он её возвращает, и флаг «из кеша». Если провайдер не сообщает сумму, можно задать свои тарифы: входные и выходные токены, чтение и запись кеша провайдера. Под ответом чата появится оценка с валютой; для агентской петли она учитывает все обращения к модели, включая финальное. Оценка хранится отдельно от суммы провайдера. Если для расчёта не хватает статистики, это видно в подписи; неизвестная цена подписки нулём не становится.
Срок жизни локального кеша ИИконы задаётся в модели. Попадание записывается отдельным событием с нулевой стоимостью, а запись исходного запроса сохраняется. При изменении подключения старый кеш сбрасывается. У личных подписочных подключений общий кеш отключён. Как считаются расходы.
Автоматический повтор генерации по умолчанию предусмотрен для ответа 429 — провайдер просит снизить частоту обращений. При сетевом обрыве или 5xx результат неизвестен: запрос мог уже выполниться на той стороне. Поэтому ИИкона сама его повторно не отправляет. Для своего сценария такой повтор можно явно разрешить параметром вызова.
Экран Usage в LiteLLM: расходы и статистика запросов, прошедших через прокси. Снимок из материалов проекта; суммы на нем относятся к тому тесту.
RAG: встроенный поиск или Qdrant
RAG — это поиск подходящих фрагментов в своих документах перед обращением к модели. ИИкона добавляет найденный текст к вопросу, чтобы модель отвечала с опорой на ваши инструкции и регламенты. Для поиска по смыслу текст превращается в набор чисел — эмбеддинг; близкие по смыслу тексты должны оказаться рядом и в таком представлении.
Документы и фрагменты хранятся в 1С, там же есть встроенный поиск. Когда знаний становится много, можно поднять Qdrant в Docker и одной константой переключить поиск на него. Qdrant получает векторы для поиска, а исходные документы остаются в базе.
Путь знаний от документа до ответа модели.
Документ делится на фрагменты, для которых ИИкона получает эмбеддинги. В карточке эксперта выбираются категории знаний — найденные фрагменты из них попадают в промпт. У категории есть политика отправки: «разрешено внешнее», «только РФ» или «запрещено внешнее». Она проверяется и перед внешним эмбеддером, и перед отправкой текста модели. Удалённые базы в поиск не уходят; если категория удалена и явной политики базы нет, внешняя отправка запрещается.
При изменении текста, модели эмбеддингов или политики отправки индекс потребует обновления. Пригодные векторы используются повторно — ещё раз оплачивать их получение не нужно.
Эмбеддинги можно получать пакетами, по несколько фрагментов за HTTP-запрос. Это поддержано для подходящих подключений OpenAI, OpenRouter и GigaChat. Перед записью проверяются число, порядок и размерность векторов: повреждённый пакет целиком отклоняется.
Изменения знаний синхронизируются с Qdrant через очередь. В серверной базе её разбирают фоновые задания БСП, которые могут работать параллельно; в файловой базе обработка синхронная. Если документ изменился во время отправки, новая версия останется в очереди, а удалённый фрагмент запоздалый ответ не вернёт. При недоступности Qdrant повтор откладывается. Устройство и настройка очереди описаны отдельно.
В замере от 11 октября на пяти тысячах тестовых векторов встроенный поиск занимал около 19 секунд, Qdrant — около 25 миллисекунд. Измерял путь через 1С: получить данные, найти фрагменты и подготовить их тексты.
В быстром режиме Qdrant первая десятка результатов совпала с полным перебором в среднем на 72%; в точном — все десять, а время осталось около 25 миллисекунд. Это замер на моём оборудовании и синтетических векторах, без получения эмбеддинга вопроса и ответа модели. Нагрузку множества пользователей и качество ответов по настоящим документам он не измеряет. Условия и исходные измерения.
Сравнение встроенного поиска и Qdrant в замере от 11 октября.
Прежде чем ругать модель за ответ, полезно посмотреть, какой текст мы ей вообще подложили. Для этого поиск теперь можно проверить отдельно, без чата.
В карточке знания видно, готов ли индекс. Отсюда, из списка знаний и карточки эксперта открывается проверка поиска: вопрос, область поиска, найденные источники и полный текст выбранного фрагмента. Источник можно открыть или скопировать. ИИкона использует модель эмбеддингов сохранённого индекса; вопрос отправляется ей после подтверждения.
Подробный разбор двух вариантов RAG, возможно, будет отдельной статьей — там есть что разобрать и про настройку, и про поиск.
Агентская петля
Модель по ходу ответа просит вызвать инструмент 1С, ИИкона его выполняет и возвращает результат, и так по кругу, пока модель не соберет ответ. Работает во всех пяти форматах провайдеров – у каждого он, конечно же, свой (tool_use, functionCall, toolCallList и прочие радости зоопарка API).
В карточке модели задаются пределы петли: число раундов и вызовов инструментов, размер одного результата и всего диалога. По умолчанию — 5 раундов и 10 вызовов; можно настроить их под свою задачу. Большие списки метаданных и структуры объектов агент получает частями, чтобы они помещались в отведённый объём.
Повторный вызов с теми же аргументами берётся из кеша петли и лимит не тратит. Каждый вызов записывается в аудит. После исчерпания предела раундов модель получает ещё один запрос для итогового ответа без инструментов. Пределы не заменяют денежный бюджет: автоматической остановки по сумме в валюте пока нет.
Каждое «пусть ещё подумает» превращается в новый запрос. Поэтому количество раундов я ограничил — пусть фантазия модели хотя бы укладывается в бюджет.
В ИИконе петля работает в чате с экспертом, глубоком разборе ошибки и генераторе диаграмм. При разборе агент сам смотрит структуру объектов из текста ошибки и, если это разрешено в настройках, читает данные запросом. Тело метода и тех, кто его вызывает, достаёт аудитор кода — о нём выше. Для своих сценариев есть публичный метод КИИ_АгентАнализа.ВыполнитьАнализСИнструментами: ему передаются модель, промпт и опции, в том числе список доступных инструментов. Пример вызова — в руководстве для разработчика.
В «Чате с экспертом» инструменты включаются флажком «Использовать инструменты». На вкладке «Инструменты» карточки модели включается поддержка вызова функций и выбирается разрешённый набор. Например, можно оставить чтение метаданных, а запросы к данным выключить. Если включён отдельный выбор и сняты все отметки, инструменты отключены. Сама модель и её API тоже должны поддерживать вызов функций.
На учебной модели разрешено только дерево объектов конфигурации.
Встроенных инструментов четыре: дерево метаданных, структура объекта, сведения о конфигурации и запрос данных на чтение в пределах прав пользователя. Они работают внутри 1С, отдельный сервер для них не нужен. История беседы, выбранные вложения и знания эксперта участвуют в подготовке запроса, а токены и стоимость учитываются по раундам. Контроль персональных данных действует и на результаты инструментов; в ответе для человека подстановки восстанавливаются. Как включить и использовать инструменты в чате.
С включёнными инструментами можно спросить: «Кому забыли начислить премию?» Агент сам изучит структуру базы, посмотрит начисления и поищет, кого могли пропустить при выплате премии. Если данных для вывода не хватит, задаст уточняющие вопросы.
В демо-базе модель по вопросу о связях справочников сама запросила структуру объектов — понадобилось два вызова инструментов. В другом диалоге она посчитала элементы трёх справочников, не помеченные на удаление, — три вызова. Это настоящие диалоги из предыдущей редакции, а не нарисованные примеры ответа.
Вопрос о метаданных: модель запросила структуру справочников.
Подсчёт элементов в демо-базе; числа проверены прямым запросом.
Если инструмент не смог обратиться к выбранной базе, ИИкона показывает отдельное сообщение с названием источника. Оно остаётся, даже если модель не упомянула отказ. По известной причине различаются недостаток прав, недоступное подключение и ошибка подготовки результата. Если модель ошиблась в запросе — например, выбрала несуществующее поле, — она получает причину ошибки и может уточнить структуру объекта и исправить запрос в следующем раунде. Тот же ответ передаётся при работе через MCP и с подключённой базой. Подробности администратор найдёт в журнале регистрации по коду обращения. Служебные команды, которые модель вернула обычным текстом вместо вызова инструмента, не исполняются и не выдаются за успешный ответ.
Один чат и несколько баз
В чате можно выбрать несколько доступных баз 1С. В центральной ИИконе администратор задаёт подключения и выдаёт доступ пользователям или группам. Для каждого вызова агент выбирает источник из отмеченного списка. Чтение выполняется с правами той учётной записи, под которой настроен вход в целевую базу.
Есть служебный вход и личные реквизиты каждого пользователя. Пароли хранятся через БСП и не передаются модели. В каждой подключённой базе нужны расширение ИИконы и опубликованный HTTP-сервис. Настройка подключений.
Учебное подключение со служебным входом. Адрес и пользователь относятся к проверочному HTTP-источнику.
Посмотреть, что уйдёт модели
На вкладке «Настройки диалога» можно исключить историю, знания эксперта или отмеченные вложения и задать размер истории. Вкладка «Перед отправкой» показывает получателя, вопрос, инструкцию, историю, предлагаемые инструменты и описание вложений — после контроля персональных данных.
Просмотр подготовленного запроса в проверочной базе, без отправки чат-модели.
Обычное обновление просмотра не вызывает модель, эмбеддинги или инструменты. Чтобы заранее увидеть справку из базы знаний, есть отдельная команда «Подобрать знания»: она выполняет поиск и может обратиться к внешней модели эмбеддингов. Результаты будущих вызовов инструментов появляются уже во время работы петли.
На вкладке «Журнал диалога» видны связанные запросы, раунды, инструменты, ответы, ошибки, длительность и расход токенов. У каждого раунда можно открыть сохранённый вопрос, инструкцию и контекст с вызовами инструментов после обработки персональных данных. Новый диалог очищает форму, прежние записи журнала остаются. Контекст и журнал чата.
Один раунд петли и то, что ее останавливает.
MCP-сервер: теперь ИИ сам ходит в 1С
Внешний ИИ-агент (Claude, Cursor или другой MCP-клиент) получает шесть инструментов: ping, сведения о конфигурации, дерево метаданных, структура объекта, запрос только на чтение и диаграмма. Транспорт — HTTP-сервис 1С и JSON-RPC 2.0. Сервер обрабатывает инициализацию MCP, служебные уведомления и вызовы инструментов; результаты возвращает в формате протокола. Порядок публикации сервиса и настройки отдельного пользователя есть в руководстве по MCP.
Доступ к инструментам ограничен:
- отдельные логин и пароль API ИИконы; пользователь базы для публикации и его роль настраиваются отдельно;
- не больше 60 вызовов в минуту на клиента;
- белый список запросов, секреты в ответах скрываются;
- журнал вызовов с хранением 30 дней.
«Только чтение» запрещает менять данные, но прочитать их агент сможет в пределах прав своего пользователя. Поэтому внешний доступ настраивается через HTTPS и отдельную учётную запись с нужными правами. Для MCP-клиентов, которым нужен stdio, есть отдельный прокси.

Для подключений центральной ИИконы используется отдельный маршрут /connection с входом пользователем целевой базы; прежний /rpc с отдельными реквизитами API сохранён. В форме MCP внутренняя проверка и проверка опубликованного HTTP-сервиса разделены. Первая проверяет диспетчер в базе. Для внешнего агента нужна вторая: она обращается по фактическому адресу публикации и проверяет весь маршрут вместе с авторизацией.
Генератор диаграмм
Генератор диаграмм я начал еще в прошлом году. Тогда хотел обойтись только внутренними средствами платформы. С ее веб-движком провозился несколько десятков итераций, пока наконец не дошло: не 1С единым...
Внутри обработки есть Mermaid из макета — он работает. Рядом можно подключить Kroki: внешний сервис или свой, в докере, чтобы не отправлять данные наружу.
Без ИИ обработка строит диаграмму по готовому коду. С ИИ можно нарисовать связи в конфигурации или данных: модель вызывает инструменты, читает метаданные и использует реальные реквизиты — результат можно сверить с базой. Поддерживаются mermaid, plantuml, graphviz и bpmn.
Как устроен контроль персональных данных
В вопросе, переписке или результате инструмента могут оказаться ФИО, телефоны и другие данные из базы. Перед внешней отправкой ИИкона ищет такие значения и, в зависимости от настройки, заменяет их или останавливает запрос.
Встроенные правила ищут ФИО с отчеством или инициалами, ИНН, СНИЛС, номера карт, паспорт рядом со словом «паспорт», российские телефоны и электронную почту. У карт проверяется контрольная сумма; ИНН и СНИЛС с неверной суммой распознаются рядом с названием реквизита.
Границы контроля. Содержимое вложений не читается: при замене подстановками файл уходит как есть, в режиме «Не отправлять» запрос с вложением блокируется. MCP-сервер этим контролем не охвачен — внешний агент получает данные по правам своего пользователя. Возможны пропуски и ложные срабатывания. Юридического обезличивания такой контроль не обеспечивает.
Можно выбрать стиль подстановок:
| Стиль | Что увидит модель |
|---|---|
| Правдоподобные значения | ФИО того же рода и формы, почта на example.com, телефон с кодом 000, ИНН, СНИЛС и карты из несуществующих диапазонов с верными контрольными суммами |
| Метки | [ФИО-1], [ОРГ-1], [ИНН-1] |
| Смешные выдуманные имена | Вельзевулов Саурон Сарумяныч, ООО «Рога и копыта»; номера – как в правдоподобном стиле |
В пределах запроса одно значение получает одну подстановку. По умолчанию выбран правдоподобный стиль.
Словари имен конечные. Если очередной вариант уже занят, алгоритм пробует другой; после 100 попыток переходит к номерной метке. Для больших списков удобнее сразу выбрать «Метки»: [ФИО-1], [ФИО-2] и дальше по счетчику, без подбора имен.

Сервис на Natasha дополняет правила: ищет одиночные фамилии, имена без отчества, организации, адреса и даты рождения. Организации – с правовой формой, адреса – с улицей или домом, даты – рядом со словом «рождения». Сервис ставится рядом с 1С, работает без интернета и включается после указания адреса. При его отказе остаются встроенные правила и предупреждение в журнале регистрации. Флажок «Без сервиса не отправлять» останавливает такой запрос в режимах замены и запрета отправки.
Где работает контроль. Запросы к моделям, сообщения Telegram и код диаграмм для Kroki. Проверяются промпты и история, имена вложений, аргументы и результаты инструментов, текст для генерации картинок и эмбеддингов; у Telegram — текст, подписи и имена файлов.
Для каждого канала есть режимы «Выключен», «Только записывать в журнал», «Заменять подстановками» и «Не отправлять». Первые два отправляют исходный текст, последний блокирует запрос с находками или вложением. По умолчанию у моделей и Telegram включена замена, у Kroki — журнал. Для конкретной модели режим можно переопределить, а для доверенного маршрута к своему серверу — отключить проверку.
Настройки собраны в обработке «Контроль персональных данных». Там можно проверить текст до отправки и посмотреть замены. Журнал контроля хранит типы находок, количество замен и решение без исходных значений.
Ответ для человека в форме «Чат с экспертом» и генераторе диаграмм восстанавливается до исходных значений. Если модель просклоняла подставную фамилию или исказила метку, форма предупреждает о невосстановленном месте. Машинный ответ и мониторинг остаются с подстановками. В SVG подписи восстанавливаются, в PNG и PDF – остаются подстановки.
У поиска по конкретному ФИО или номеру есть особенность: если перед эмбеддером включены подстановки, вопрос и фрагмент могут получить разные замены. Тогда совпадение исходных значений теряется. Для доверенного маршрута к своему локальному эмбеддеру можно отключить подстановки; доверие привязано к настройкам подключения. При смене маршрута его нужно подтвердить заново.
Чтобы всем этим можно было пользоваться
В меню четыре группы: «Работа с ИИ», «Знания», «Мониторинг» и «Администрирование». В «Знаниях» рядом находятся базы, категории, фрагменты и проверка поиска.
В карточке модели отдельно подключение и авторизация. Итоговый адрес виден целиком; проверка показывает время, адрес и результат нового запроса. HTTP 200 с пустым ответом или негодным вектором успехом не считается.

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

Редактор в небольшом окне. Построение запускается отдельной командой.
В журналах можно открыть ошибку, прочитать разбор модели, скопировать текст и перейти к связанным запросам. Базовый пользователь видит свои запросы; общий журнал и старые записи без владельца доступны по роли КИИ_ОбщийЖурналЗапросовИИПросмотр. Telegram включается флажком. Пользователю с правом только на просмотр мониторинга токен и ChatID не показываются. Отмена ожидания возвращает управление форме, хотя уже отправленный HTTP-запрос может завершиться на сервере.
Код пишут агенты. А проверять все равно приходится
С начала 2026 года я вообще не пишу код руками. Кода от ИИ получается столько, что вручную весь его уже не вычитать. Приходится придумывать другие способы контроля.
Дед со скриптами из январской статьи никуда не делся. Только его «зато я сам писал» с каждым днём звучит всё менее убедительно.

В октябрьской переписке Линус Торвальдс довёл идею запретить ИИ в разработке до абсурда: тогда уж запретите компиляторы, пишите ядро на ассемблере, а сообщения коммитов — без редактора. При этом он требует понимать результат независимо от использованных инструментов. Мне такая позиция близка: ИИ — ещё один очень мощный инструмент, а отвечать за получившийся код всё равно мне.
И вообще все реже мой глаз цепляется за кривой код. Когда это происходит, я не правлю код руками, а добавляю правило проверки для ИИ-аудитора, чтобы в следующий раз таких ошибок не было. Но при этом требую, чтобы код был человекочитаем и легок для ручной поддержки. Возможно, кто-то со мной и не согласится, но терять контроль над кодом пока не хочется.
Кстати, тот самый Лустин ещё в 2015 году выступал с докладом «DevOps для 1С», или «мы все теперь инженеры бизнес-приложений». Сейчас быть самому себе DevOps стало неожиданно дёшево: даже вокруг пет-проекта можно выстроить целую инфраструктуру — CI/CD, автотесты, мониторинг. В моём случае агенты пишут код, проверки ловят ошибки, тесты запускаются сами, собранное расширение пробует установиться в чистую базу. Это как игрушечная железная дорога: я расставляю рельсы и стрелки, а потом с интересом слежу, как по ним идёт состав. Если вагон сходит с рельсов, хочется понять, почему это произошло, и починить путь. Работы стало даже больше, но я не выгораю: мне нравится придумывать эти маршруты и смотреть, как они начинают работать.
Сама ИИ-разработка меняется на ходу: сначала промпты и контекст, потом мультиагентные системы, теперь loop-инженерия. Что это за loop-инженеры — трудно сказать. Самое смешное — сначала просто накидываешь ИИ идеи по ходу разговора, а спустя какое-то время узнаёшь, что у этого занятия уже есть название — рамблинг.
В моей базе всё работало...
Пользователь проявил неожиданную самостоятельность — попробовал поставить расширение в свою.
Оказалось, я (ИИ, но ответственность на мне) умудрился упаковать в расширение три заимствованных объекта из своей базы разработки. Проверка применимости не пускала его ни на какую базу, кроме демо БСП. Так появился первый в истории репозитория issue (спасибо пользователю!). Тесты этого не поймали: они гонялись в той же демо-базе, где заимствованные объекты совпадали.
Теперь установка проверяется снаружи базы разработки. Скрипт поднимает чистую демо-базу БСП, загружает прежние данные, ставит собранный .cfe и проверяет, что данные сохранились, старый API работает, дашборд открывается, а HTTP-сервис различает пользователя с правом и без него.

Тот самый первый issue.
В одном из пользовательских отчётов всплыли вызовы двух JSON-функций, которых не оказалось в старой БСП. Эти зависимости убраны: чтение и запись JSON теперь выполняются средствами платформы. Остальные механизмы БСП продолжают использоваться, поэтому обновление всё равно нужно проверять на копии своей конфигурации.
Для подключения УТ на IIS в руководстве появился пример на основе инструкции Сергея Бойко, с его разрешения. Там разобрано, почему IIS может принять логин пользователя 1С за учётную запись Windows и вернуть 401 ещё до входа в сервис. Такие письма помогают обнаружить то, чего нет на моей демо-базе.
Руководство сверял с кодом, а скриншоты снимал сценариями Vanessa Automation на демо-базе. Пока писал, нашел и исправил в продукте восемь ошибок — от формы эксперта, где нельзя было выбрать категории знаний, до регламентов очистки, которые ни разу не запускались. Писать инструкции полезно и самому ИИ: каждое «теперь нажмите» — повод проверить в настоящей форме, что нажать действительно можно.
Как я это проверяю
Код пишут ИИ-агенты — клод-код, кодекс. Дальше идут стандарты 1С, статический анализ, YAxUnit, SonarQube и ИИ-аудитор с моими правилами. После каждой пачки правок агент запускает тесты скриптом и разбирает результат. Сборка, тесты и отчёты выпуска привязаны к одному срезу исходников.
Выпуск 1.8.9 прошёл 1085 автотестов: 1058 серверных и 27 проверок управляемого клиента. Падений, ошибок и пропусков нет. Дополнительно изменённую цепочку обработки ошибок запроса проверили под двумя обычными профилями БСП — все восемь выполнений прошли. Штатная проверка компиляции в семи контекстах завершилась без диагностик. На проверочном стенде подтверждена сохранность данных, пользователей, настроек и ключей после обновления.
Для чата проверены история, вложения, несколько раундов с инструментами, ограничения, отказы источников и восстановление подстановок. Обмен с моделью в регрессионном прогоне проверял локальный HTTP-сервер. При настройке подключений обращаюсь и к настоящим моделям.
Проверка SonarQube завершилась без открытых замечаний. Отчёты, состав и границы проверок сохранил в репозитории тестов. Это результаты конкретного выпуска; они не заменяют проверку установки и нужных сценариев в своей конфигурации.
Проверки тоже приходится проверять: загрузка формы может пройти, а кнопка внутри — упасть. Поэтому помимо модульных тестов гоняю пользовательские сценарии в настоящем клиенте: поиск, копирование, файлы, отмену ожидания и работу с разными правами. Полный набор тестов при наличии ключа может обратиться к настоящей модели; состав отдельного прогона есть в README тестов. И это все тоже не руками - все делают агенты.
Последний бастион — логирование. От ИИ требую логировать каждый чих, чтобы потом понимать, что произошло, где операция застряла и что съело время.
Как поставить
Требования: платформа 8.3.27 и новее (проверено на 8.3.27.1989), БСП 3.1.10 и новее (проверено на 3.1.11.392), режим совместимости интерфейса «Такси. Разрешить Версия 8.2». Для внешнего поиска нужен Qdrant 1.16 и новее; проверял на 1.18.2. Встроенный поиск работает без него.
Частый вопрос из комментариев про Ollama: localhost в адресе модели означает компьютер, где работает сервер 1С. Если Ollama запущена на другой машине, нужен её адрес, доступный серверу 1С. Адрес прокси задаётся константой, ключи — через безопасное хранилище в форме модели.
- Загрузить расширение из файла .cfe и обновить конфигурацию базы данных.
- В разделе «ИИкона» → «Администрирование» открыть «Модели ИИ» и выполнить «Заполнить модели»; если модели уже есть — «Обновить предустановленные модели».
- Настроить авторизацию модели: ключ API в безопасном хранилище или личное подключение подписки по отдельной инструкции.
- Создать эксперта: модель, системный промпт, при желании база знаний.
- Открыть «Чат с экспертом» и задать первый вопрос. Qdrant, Kroki, мост для аудитора кода и бот телеграма подключаются по мере надобности.
Перед обновлением — резервная копия. Модели, настройки, пользователи и прежние публичные вызовы сохраняются; перегружать базу из .dt не нужно. Пригодные векторы знаний используются повторно. Если обновляетесь с 1.6.3 или более ранней версии с работающим Qdrant, нужно завершить прежние обработчики очереди и пересобрать его коллекции. Для перехода с 1.7.0, 1.7.1 или 1.7.2 и для встроенного поиска при выключенном Qdrant эта пересборка не нужна. После обновления перезапустите сеанс. Изменения и порядок обновления.
При работе с несколькими базами обновляется и центральная ИИкона, и расширение в подключённых источниках. Если используется личный адаптер подписки, его файлы обновляются по инструкции с сохранением каталога авторизации.
Порядок обновления и особенности старых установок описаны в README. Предустановки моделей обновляются командой «Обновить предустановленные модели»: существующие карточки не удаляются, ключи сохраняются. Совпавшие по имени предустановки обновляются из шаблона; свои модели с другими именами не перезаписываются. Для администрирования ИИконы достаточно роли «КИИ_ПолныеПрава», полные права во всей базе не нужны.
Где взять и что лежит рядом
Расширение и сопутствующие проекты бесплатно доступны на GitHub под MIT. Здесь файл лежит в разделе «Файлы» за 1 стартмани — это способ поддержать автора.
Актуальный выпуск — на GitHub. Для установки расширения нужен один файл .cfe; исходники личного адаптера подписок находятся в архиве выпуска. Руководство, тесты и сервисы рядом разложил по отдельным репозиториям:
| Репозиторий | Что внутри |
|---|---|
| 1c-ai-connector | само расширение ИИкона (.cfe в релизах), README с установкой и обновлением |
| 1c-ai-connector-guide | руководство пользователя: установка, настройка подсистем и снимки интерфейса |
| 1c-ai-connector-tests | автотесты YAxUnit отдельным расширением и состав проверенного набора |
| 1c-ai-connector-mcp-proxy | мост stdio → HTTP для MCP-клиентов, которые не умеют HTTP |
| 1c-ai-connector-audit-shim | HTTP-мост между аудитором кода и rlm-tools-bsl |
| 1c-ai-connector-ner-shim | сервис распознавания имен, организаций и адресов на Natasha |
В комментариях к первой статье я уверенно объяснял, что не хочу ещё одну обязательную прокладку между 1С и моделью. С первым запросом так и есть: достаточно расширения и настроенной модели. А дальше вокруг проекта появились Qdrant, LiteLLM, Natasha, Kroki и мосты для внешних инструментов. Всё это подключается по задаче, а не ставится каждому пользователю комплектом. Так что точнее сказать «без обязательной инфраструктуры». Необязательной я, как выяснилось, могу построить сколько угодно.
В руководстве есть настройка подсистем, вызовы из своего кода и таблица «модель не отвечает»: что значат 401, 404, таймаут или отказ контроля персональных данных и где это исправить.
Тесты YAxUnit ставятся отдельным расширением «Тесты» в отдельную базу. Состав контрольного набора и фильтр запуска есть в README.
Из открытых проектов использую БСП, YAxUnit — тесты, rlm-tools-bsl — индекс кода для аудитора, Qdrant — векторный поиск, Kroki и mermaid.js — диаграммы, ECharts — графики дашборда.
Отдельная благодарность людям, которые скачивают проект с Инфостарта, хотя есть возможность бесплатно скачать с гитхаба, — вы мотивируете продолжать развивать проект.
Кулич и космодромы
Когда я делал ИИкону, мне казалось, что это очередной кулич в песочнице 1С на фоне космических кораблей других проектов. Потом попробовал сделать свои инструменты за пределами платформы и обнаружил, что те космодромы тоже из песка. Стало проще браться за новые идеи. Главное — перед тем как радостно пилить своё, оглядеться: анализатор кода я, например, нашёл готовым в OpenYellow. Пришлось сделать мост к ИИконе, зато сам анализатор писать не понадобилось. Если готовое не подходит, небольшой сервис под себя иногда действительно написать быстрее, чем приспосабливать чужой.

Название тоже успело пожить своей жизнью. В комментариях оно вызвало спор о религиозных ассоциациях. Такого смысла я не вкладывал: для меня «ИИкона» — это ИИ и коннектор. А затем Трамп велел американским ведомствам писать Super Intelligence вместо Artificial Intelligence. Если следовать каждому новому словарю, придётся выпускать «СИкону». Пожалуй, ИИкона останется ИИконой.
Что дальше
Пользователь написал: модель умеет вызывать инструменты, MCP-сервер их показывает, а как включить это в чате с экспертом? Теперь в чате помимо флажка есть выбор баз и инструментов, просмотр контекста до отправки и журнал диалога. Спасибо за такие письма — они гораздо полезнее моего представления о том, как всем удобно пользоваться продуктом.
Свой набор инструментов для каждой модели уже настраивается в карточке. Дальше хочу расширить встроенный список. Подключение произвольных внешних MCP-серверов обсуждаю отдельно: сначала надо понять, какие задачи они должны решать.
В планах больше примеров использования и живой прогон инструментов на остальных провайдерах. Остальные планы — в README проекта.
А еще на базе ИИконы уже возвращаю к жизни свой старый проект — тренажер подготовки к сертификации 1С, с которого, по сути, ИИкона и началась: тогда ему не хватало базы знаний, теперь она есть.
Для тех, кому интересно, с чего всё начиналось, оставил первую редакцию статьи как она была. Установка актуальной версии описана выше.
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.392
Вступайте в нашу телеграмм-группу Инфостарт

















