Интеграция нейросети в 1С:Предприятие через API
Шаблон кода для 1С, который отправляет текст в Claude, GPT или GLM и возвращает ответ: классификация писем, черновики ответов, извлечение данных.
5 мин · · бизнес · автоматизация
В базах 1С много работы с текстом, которую делают вручную: разобрать входящие письма по типам, подготовить ответ клиенту, вытащить реквизиты из свободного текста. Подключить нейросеть к 1С можно встроенными средствами платформы — HTTPСоединение, HTTPЗапрос и чтение/запись JSON, без внешних компонент. Ниже — шаблон функции для обращения к модели через Zukko, примеры задач, обработка ошибок и расчёт стоимости.
Как устроена интеграция 1С с нейросетью
Схема простая:
- Код 1С собирает JSON с текстом задания и параметрами модели.
- HTTPS-запрос уходит на
https://api.zukko.pro/v1/chat/completions. - Модель возвращает ответ в JSON.
- Код 1С достаёт текст ответа и записывает его в документ, справочник или регистр.
Понадобится платформа 8.3.6 или новее: в ней появились объекты ЧтениеJSON и ЗаписьJSON. Запросы выполняйте на сервере — так ключ не попадает на клиентский компьютер.
Шаг 1: создайте API-ключ
- Откройте страницу ключей в кабинете.
- Создайте ключ с понятным именем, например «1С».
- Ограничьте его: задайте дневной лимит расходов и список разрешённых моделей.
- Скопируйте ключ вида
fetch_...— полностью он показывается один раз.
Ключ не стоит хранить в коде модуля. В конфигурациях на БСП для этого есть безопасное хранилище — процедуры ЗаписатьДанныеВБезопасноеХранилище и ПрочитатьДанныеИзБезопасногоХранилища общего модуля ОбщегоНазначения (точную сигнатуру сверьте с вашей версией БСП). В остальных случаях подойдёт константа, доступ к которой есть только у администратора.
Шаг 2: шаблон функции запроса к модели
Ниже — шаблон, а не готовая обработка: перенесите его в серверный общий модуль (например, ИнтеграцияСМоделью), адаптируйте под свою конфигурацию и проверьте на копии базы.
// ШАБЛОН. Серверный общий модуль, платформа 8.3.6+.
// Отправляет текст модели через Zukko и возвращает ответ строкой.
Функция ЗапросКМодели(ТекстЗадания, КлючAPI, Модель = "claude-sonnet-5") Экспорт
// 1. Тело запроса в формате OpenAI Chat Completions
Сообщения = Новый Массив;
Сообщения.Добавить(Новый Структура("role, content", "user", ТекстЗадания));
Данные = Новый Структура;
Данные.Вставить("model", Модель);
Данные.Вставить("max_tokens", 1000);
Данные.Вставить("messages", Сообщения);
ЗаписьJSON = Новый ЗаписьJSON;На что обратить внимание:
- BOM. Параметр
ИспользованиеByteOrderMark.НеИспользоватьубирает метку BOM в начале тела: с ней сервер может не разобрать JSON. - Соответствие вместо Структуры. Второй параметр
ПрочитатьJSON(Чтение, Истина)читает ответ вСоответствие. Так не возникнет проблем с ключами JSON, которые не являются допустимыми именами свойств структуры. - Таймаут. 120 секунд — с запасом для длинных ответов. Если ответы короткие, его можно уменьшить.
- Сертификат. Чтобы платформа проверяла сертификат сервера по хранилищу ОС, в конструктор
ЗащищенноеСоединениеOpenSSLможно передать вторым параметромНовый СертификатыУдостоверяющихЦентровОС— доступность зависит от версии платформы. - Прокси. Если сервер 1С выходит в интернет через прокси, передайте объект
ИнтернетПроксипятым параметромHTTPСоединение.
Названия объектов и параметров сверяйте с синтакс-помощником вашей версии платформы.
Примеры задач
Многострочные строки в 1С склеиваются через Символы.ПС. Пример вызова из формы:
&НаСервереБезКонтекста
Функция КлассифицироватьПисьмо(ТекстПисьма)
Задание = "Отнеси письмо к одной категории: заказ, жалоба, вопрос, благодарность. "
+ "Ответь одним словом." + Символы.ПС + Символы.ПС
+ "Письмо:" + Символы.ПС + ТекстПисьма;
Возврат ИнтеграцияСМоделью.ЗапросКМодели(Задание, ПолучитьКлючAPI(), "glm-5.3-flash");
КонецФункцииПолучитьКлючAPI() — ваша функция, которая читает ключ из безопасного хранилища или константы. По тому же образцу:
- Черновик ответа клиенту: «Составь вежливый ответ на письмо клиента. Сообщи, что обращение принято и ответим в течение рабочего дня. Письмо: ...». Отправлять клиенту стоит после проверки менеджером.
- Извлечение данных: «Найди в тексте ФИО, должность, телефон и email. Верни только JSON с ключами fio, position, phone, email. Текст: ...». Ответ разберите тем же
ПрочитатьJSONи проверьте поля перед записью в справочник.
Выбор модели и расчёт стоимости
Цены Zukko за 1M токенов: claude-sonnet-5 — $0.3 на вход и $0.3 на выход, gpt-5.6-luna — $0.1 / $0.1, glm-5.3-flash — $0.04 / $0.04.
Пример: 1000 писем, в среднем 500 входных и 100 выходных токенов на письмо. Это 1000 × 500 = 500 000 входных (0,5M) и 1000 × 100 = 100 000 выходных (0,1M) токенов.
| Модель | Вход | Выход | Итого |
|---|---|---|---|
claude-sonnet-5 | 0,5 × $0.3 = $0.15 | 0,1 × $0.3 = $0.03 | $0.18 |
gpt-5.6-luna | 0,5 × $0.1 = $0.05 | 0,1 × $0.1 = $0.01 | $0.06 |
glm-5.3-flash | 0,5 × $0.04 = $0.02 | 0,1 × $0.04 = $0.004 | $0.024 |
Реальное число токенов для ваших писем смотрите в поле usage ответа или в истории расходов в кабинете. Какая модель справится с вашими задачами, проверьте на выборке: прогоните 50 типовых писем через две-три модели и сравните с ручной разметкой. Актуальный список моделей — GET https://api.zukko.pro/v1/models или страница «Модели» в кабинете.
Обработка ошибок и лимиты
Шаблон бросает исключение с кодом и текстом ошибки. Что означают коды:
- 401 — неверный ключ;
- 402 — недостаточно средств на балансе;
- 403 — модель не входит в список разрешённых для ключа;
- 413 — слишком большой запрос, текст нужно сократить;
- 429 — слишком частые запросы или исчерпан лимит ключа;
- 503 — провайдер модели временно недоступен.
При массовой обработке (регламентное задание по сотням документов) повторяйте запрос только на 429 и 503, с паузой, растущей от попытки к попытке. На 401, 402 и 403 задание лучше остановить и записать ошибку в журнал регистрации: повторы не помогут. Подробнее о лимитах ключа — в разделе о лимитах ключей и кэше.
Частые вопросы
Какая версия платформы нужна?
8.3.6 или новее — в ней есть ЧтениеJSON, ЗаписьJSON и СтрШаблон. На более старых версиях JSON придётся собирать и разбирать вручную или через внешнюю компоненту. Для HTTPS платформа должна поддерживать современный TLS, поэтому на старых релизах сначала проверьте, проходит ли запрос к api.zukko.pro вообще.
Как отправить большой документ?
У моделей Claude и GPT в Zukko контекст 1M токенов, у GLM — 128K, так что обычный договор или письмо помещаются целиком. Если получаете 413, разбейте текст на части и обрабатывайте их по очереди. Для классификации часто хватает первых нескольких тысяч символов.
Можно ли не платить за одинаковые запросы?
Сделайте свой кэш: регистр сведений с измерением «хеш запроса» и ресурсом «ответ». Перед отправкой проверяйте, нет ли уже ответа для такого же текста задания. Хеш можно посчитать объектом ХешированиеДанных.
Как проверить баланс перед массовой обработкой?
Через API баланса или в кабинете. Надёжнее всего задать ключу дневной лимит расходов: тогда регламентное задание не потратит больше, чем вы рассчитывали.
zukko
Платите в 25×
меньше
за Claude Code & ChatGPT
Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.
Похожие статьи
- Нейросеть для тестировщика: тест-кейсы, чек-листы и баг-репортыКак QA-инженеру использовать модель для тест-кейсов, чек-листов и баг-репортов, проверять полноту покрытия и не получить придуманные требования.
- Обезличивание данных перед отправкой в нейросеть: практический подходПерсональные данные не нужно отправлять модели, чтобы она обработала документ. Показываем, как заменять их метками, возвращать в ответ и проверять, что ничего не просочилось.
- Нейросеть для HR: вакансии, письма кандидатам и разбор резюмеМодель может готовить черновики вакансий и писем и делать первичный разбор резюме. Разбираем, что отдавать, как работать с персональными данными кандидатов и как не допустить предвзятых решений.
- Генерация FAQ нейросетью: вопросы из обращений и ответы по базе знанийХороший FAQ строится на том, что клиенты правда спрашивают. Показываем пайплайн: группируем обращения, отвечаем по базе знаний со ссылкой на источник и проверяем результат.