Ко мне регулярно приходят с одной и той же задачей: в 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 ₽.