Интеграция AI в 1С через AI Gateway: HTTP-запросы на встроенном
Как обратиться к AI из 1С:Предприятие 8: HTTP-запрос на встроенном языке к OpenAI-совместимому API AI Gateway, сериализация JSON и разбор ответа. Ключ в константе или параметрах.
1С:Предприятие умеет ходить в HTTP-сервисы штатными средствами встроенного языка — этого достаточно, чтобы обращаться к OpenAI-совместимому API AI Gateway. Соберём функцию, которая шлёт текст промпта на шлюз и возвращает ответ модели: её можно вызывать из обработки, регламентного задания или обработчика события. Модели берём из каталога.
Подготовка
Нужен ключ AI Gateway sk-aigate-… и хост ai-gatewey.ru (порт 443, HTTPS). Ключ лучше хранить в константе или параметре сеанса, а не в модуле. Обращения идут на путь /v1/chat/completions.
Реализация
- Вспомогательные функции JSON
Тело запроса и разбор ответа — через штатные
ЗаписатьJSON/ПрочитатьJSON:Функция ВJSON(Значение) Запись = Новый ЗаписьJSON; Запись.УстановитьСтроку(); ЗаписатьJSON(Запись, Значение); Возврат Запись.Закрыть(); КонецФункции Функция ИзJSON(Строка) Чтение = Новый ЧтениеJSON; Чтение.УстановитьСтроку(Строка); Результат = ПрочитатьJSON(Чтение); Чтение.Закрыть(); Возврат Результат; КонецФункции - Функция обращения к модели
Формируем структуру запроса, шлём
HTTPЗапроспо защищённому соединению и достаём текст ответа:Функция ЗапросКAI(ТекстПромпта) Экспорт Сообщение = Новый Структура("role, content", "user", ТекстПромпта); Сообщения = Новый Массив; Сообщения.Добавить(Сообщение); Тело = Новый Структура; Тело.Вставить("model", "deepseek/deepseek-chat"); Тело.Вставить("messages", Сообщения); Запрос = Новый HTTPЗапрос("/v1/chat/completions"); Запрос.Заголовки.Вставить("Content-Type", "application/json"); Запрос.Заголовки.Вставить("Authorization", "Bearer " + КлючAI Gateway()); Запрос.УстановитьТелоИзСтроки(ВJSON(Тело)); Соединение = Новый HTTPСоединение( "ai-gatewey.ru", 443, , , , 30, Новый ЗащищенноеСоединениеOpenSSL); Ответ = Соединение.ОтправитьДляОбработки(Запрос); Данные = ИзJSON(Ответ.ПолучитьТелоКакСтроку()); Возврат Данные["choices"][0]["message"]["content"]; КонецФункции - Хранение ключа
Ключ отдаём отдельной функцией — из константы или параметра сеанса, чтобы не хардкодить в бизнес-логике:
Функция КлючAI Gateway() Возврат Константы.КлючAI Gateway.Получить(); КонецФункции - Вызов из кода
Дальше функцию можно применять где угодно — например, сформировать краткое описание номенклатуры:
Описание = ЗапросКAI("Составь краткое описание товара: " + Наименование);
Какие модели подойдут
Для типовых задач учёта (описания, классификация, черновики писем) хватает быстрой недорогой модели; сложные разборы можно направить на флагман:
| Модель | Ввод, ₽/1М | Вывод, ₽/1М | Контекст |
|---|---|---|---|
| DeepSeek: DeepSeek V3 | 31 | 125 | 128K |
| OpenAI: GPT-5.4 Mini | 118 | 705 | 400K |
| Anthropic Claude Haiku Latest | 157 | 784 | 200K |
Частые вопросы
Нужны ли внешние компоненты или коннекторы?
Нет. Достаточно штатных HTTPСоединение, HTTPЗапрос и объектов JSON встроенного языка — API AI Gateway обычный HTTPS с JSON, как у OpenAI. Сторонние компоненты не требуются.
Работает ли это в тонком клиенте?
HTTP-запросы выполняются на стороне сервера 1С, поэтому вызывайте функцию в серверном контексте (&НаСервере или общий серверный модуль). Так соединение с интернетом не зависит от рабочего места пользователя.
Как обработать ошибку или таймаут?
Оберните вызов в попытку (Попытка … Исключение) и проверяйте Ответ.КодСостояния: 401 — неверный ключ, 403 — модель сверх тарифа при пустом балансе, 429 — исчерпана квота или RPM. Логируйте сбои и делайте повтор с паузой.
AI в 1С — начните с ключа AI Gateway
Получить ключ