AI · 6 мин чтения

Подключение ИИ к 1С: 5 рабочих способов интеграции нейросети

Ко мне регулярно приходят с одной и той же задачей: в 1С скопились остатки, заказы, переписка с клиентами и куча документов, а получить по ним связный ответ на человеческом языке некому. Подключение ИИ к 1С не требует ждать обновления от вендора и не сводится к покупке готовой коробки: технически это соединение двух систем через HTTP. 1С умеет отправлять и принимать запросы через встроенный язык, а нейросети вроде Claude работают через обычный REST API, разница только в том, где поставить прослойку и сколько кода написать самому. Ниже пять способов, которые я настраивал на реальных проектах, с кодом и ограничениями каждого варианта.

Способ 1: HTTP-запросы к нейросети прямо из кода 1С

Самый прямой путь: вызвать API нейросети из встроенного языка 1С через объекты HTTPСоединение и HTTPЗапрос. Это штатные объекты платформы 1С:Предприятие, отдельная подсистема или расширение конфигурации для этого не нужны.

Сценарий из практики: при проведении документа или по кнопке в форме 1С собирает текст, например содержимое обращения клиента, отправляет его в Claude и записывает готовый ответ в реквизит документа. Код выглядит примерно так:

Заголовки = Новый Соответствие;
Заголовки.Вставить("x-api-key", КлючAPI);
Заголовки.Вставить("anthropic-version", "2023-06-01");
Заголовки.Вставить("content-type", "application/json");

ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписьJSON.ЗаписатьНачалоОбъекта();
ЗаписьJSON.ЗаписатьИмяСвойства("model");
ЗаписьJSON.ЗаписатьЗначение("claude-sonnet-5");
ЗаписьJSON.ЗаписатьИмяСвойства("max_tokens");
ЗаписьJSON.ЗаписатьЗначение(512);
ЗаписьJSON.ЗаписатьИмяСвойства("messages");
ЗаписьJSON.ЗаписатьНачалоМассива();
ЗаписьJSON.ЗаписатьНачалоОбъекта();
ЗаписьJSON.ЗаписатьИмяСвойства("role");
ЗаписьJSON.ЗаписатьЗначение("user");
ЗаписьJSON.ЗаписатьИмяСвойства("content");
ЗаписьJSON.ЗаписатьЗначение(ТекстДляАнализа);
ЗаписьJSON.ЗаписатьКонецОбъекта();
ЗаписьJSON.ЗаписатьКонецМассива();
ЗаписьJSON.ЗаписатьКонецОбъекта();
ТелоЗапроса = ЗаписьJSON.Закрыть();

Запрос = Новый HTTPЗапрос("/v1/messages", Заголовки);
Запрос.УстановитьТелоИзСтроки(ТелоЗапроса, КодировкаТекста.UTF8);

ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(, Новый СертификатыУдостоверяющихЦентровОС);
Соединение = Новый HTTPСоединение("api.anthropic.com", , , , , , ЗащищенноеСоединение);
Ответ = Соединение.ВызватьHTTPМетод("POST", Запрос);

Если Ответ.КодСостояния = 200 Тогда
	РезультатОтвета = Ответ.ПолучитьТелоКакСтроку();
КонецЕсли;

Для HTTPS в конструктор HTTPСоединение передаётся объект защищённого соединения. Его создаю отдельной строкой, а сертификаты для проверки сервера он берёт из операционной системы.

Ключ API храню в отдельной константе с ограниченными правами чтения, а не в общем модуле: иначе его увидит любой, у кого есть доступ к конфигуратору. Сам вызов лучше выносить в фоновое задание, потому что запрос к внешнему серверу может занять секунду-две, и если дёргать его прямо в обработчике формы, интерфейс подвиснет на это время.

Ограничение способа очевидное: серверу 1С нужен исходящий доступ в интернет по HTTPS. Если база работает во внутренней сети без прямого выхода наружу, потребуется прокси или отдельный шлюз, и тогда логичнее сразу смотреть на способ 2. Для несложных сценариев вроде категоризации обращений или короткого summary по документу этот вариант рабочий и не тянет за собой лишнюю инфраструктуру.

Способ 2: промежуточный сервис на Python между 1С и ИИ

Логика быстро усложняется, когда нужно собрать данные из нескольких документов, свериться со справочниками или сделать несколько последовательных запросов к нейросети. Вызовы прямо из 1С в таком случае быстро превращаются в нечитаемый код. Я выношу такую логику в отдельный сервис на Python, а 1С обменивается с ним данными как с обычным REST API.

У 1С есть готовый OData-интерфейс, который публикуется вместе с веб-сервисом информационной базы и отдаёт данные каталогов и документов по HTTP без написания дополнительного кода в конфигурации. Python-сервис читает через него нужные данные, прогоняет их через нейросеть и, если нужно, пишет результат обратно тем же способом:

import requests
import anthropic

client = anthropic.Anthropic()

def get_stock_from_1c(item_code):
    response = requests.get(
        "https://1c-server/base/odata/standard.odata/Catalog_Номенклатура",
        params={"$filter": f"Code eq '{item_code}'", "$format": "json"},
        auth=("odata_user", "odata_password"),
    )
    return response.json()

def summarize_stock(data):
    message = client.messages.create(
        model="claude-sonnet-5",
        max_tokens=500,
        messages=[{"role": "user", "content": f"Опиши остатки простым языком: {data}"}],
    )
    return message.content[0].text

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

Бесплатный материал

🎁 Полезный скрипт в подарок

Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.

Без спама. Отписка в 1 клик.

Способ 3: n8n как оркестратор между 1С и нейросетью

Если не хочется писать и поддерживать отдельный сервис, между 1С и ИИ можно поставить n8n. Сценарий обычно такой: 1С по расписанию через фоновое задание отправляет вебхук в n8n, нода HTTP Request забирает нужные данные из 1С через тот же OData-интерфейс, следующая нода обращается к API нейросети, а результат n8n записывает обратно в 1С через HTTP-запрос к опубликованному HTTP-сервису.

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

Ограничение такое: n8n не заменяет бизнес-логику 1С. Сложные расчёты вроде остатков с учётом резервов правильнее оставить на стороне 1С в отдельном HTTP-сервисе, а не пытаться перенести их в цепочку нод, иначе сценарий станет хрупким при любом изменении структуры данных.

Способ 4: Telegram-бот с ИИ поверх данных 1С

Частый запрос от отделов продаж и логистики: спросить у бота в Telegram остаток по артикулу или статус заказа обычным языком, а не искать документ в интерфейсе 1С. Бот собираю на aiogram: он принимает вопрос, идёт в 1С за сырыми данными через HTTP-сервис или OData, а нейросеть превращает результат в связный ответ и при необходимости уточняет детали у пользователя.

from aiogram import Bot, Dispatcher, F
from aiogram.types import Message

bot = Bot(token="TELEGRAM_BOT_TOKEN")
dp = Dispatcher()

@dp.message(F.text)
async def handle_message(message: Message):
    stock_data = get_stock_from_1c(message.text)
    answer = summarize_stock(stock_data)
    await message.answer(answer)

Чат-бот с базой знаний вместо разовых ответов

Если задача не в том, чтобы дёргать 1С по одному вопросу, а собрать помощника с регламентами, инструкциями по работе в учётной системе и типовыми ответами на вопросы сотрудников, за основу я беру ИИ-чатбот на Claude и донастраиваю его под конкретную базу документов и вызовы к 1С. Разница с простым ботом выше в том, что чат-бот обращается к базе знаний, прежде чем сформировать ответ, а не только к текущим данным из учётной системы.

Сравнение способов подключения ИИ к 1С

Коротко о том, когда какой вариант имеет смысл брать:

Способ Сложность внедрения Когда подходит Моя цена от
HTTP-запросы из кода 1С Нужен штатный 1С-программист Разовые сценарии внутри одной базы оценивается индивидуально
Промежуточный сервис на Python Нужен отдельный сервер Сложная логика, несколько источников данных от 20 000 ₽
Сценарий в n8n Минимум кода, но нужна связка нод Несколько систем в цепочке кроме 1С и ИИ от 25 000 ₽
Telegram-бот с ИИ Отдельный бот-сервис Быстрые ответы сотрудникам и клиентам от 30 000 ₽
Чат-бот с базой знаний (RAG) Нужна база документов для поиска Помощник с регламентами и инструкциями от 50 000 ₽

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

1С регулярно обновляется, поэтому перед внедрением я сверяюсь с актуальной документацией.

Частые вопросы

Нужен ли отдельный модуль или расширение конфигурации, чтобы подключить ИИ к 1С?

Нет. Объекты HTTPСоединение, HTTPЗапрос и HTTPСервис входят в платформу 1С:Предприятие и доступны в конфигурациях без установки дополнительных модулей. Расширение может понадобиться только для того, чтобы не трогать типовую конфигурацию при обновлениях, но это вопрос удобства поддержки, а не технического ограничения.

Как хранить ключ API нейросети внутри 1С безопасно?

Держу его в отдельной константе с ограниченными правами чтения на уровне ролей, а не в общем модуле, который виден всем разработчикам конфигурации. Более надёжный вариант: вообще не хранить ключ в 1С, а вынести обращение к нейросети в промежуточный сервис из способа 2 или 3. Тогда 1С обменивается данными только со своим сервисом внутри защищённого контура, а ключ живёт на отдельном сервере.

Что делать, если сервер 1С не имеет выхода в интернет?

Прямой вызов из способа 1 в этом случае не сработает. Ставлю между 1С и нейросетью промежуточный сервис на Python или сценарий в n8n на машине, у которой есть доступ в интернет, а 1С обменивается с ней данными только внутри локальной сети.

Сколько стоит подключить нейросеть к 1С?

Зависит от способа и объёма данных, с которыми работает нейросеть. Автоматизация в n8n у меня начинается от 25 000 ₽, сервис на Python от 20 000 ₽, Telegram-бот с ИИ от 30 000 ₽, а чат-бот с базой знаний и полноценной RAG-интеграцией от 50 000 ₽.

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно