ИНТЕГРАЦИЯ • 1С:ПРЕДПРИЯТИЕ

1С + Claude AI

Подключи искусственный интеллект к 1С:Предприятие. Генерация описаний, анализ данных, автоматизация рутины.

Описания номенклатуры

Генерация описаний товаров из характеристик

Анализ отчётов

AI-выводы по данным продаж и остатков

Ответы клиентам

Генерация писем и коммерческих предложений

Способы интеграции с 1С

HTTPСоединение

Встроенный объект 1С для HTTP-запросов. Работает в любой конфигурации без доработки.

Внешняя обработка (.epf)

Отдельный файл, не требует изменения конфигурации. Легко распространять.

Базовая функция вызова Claude API

Добавьте эту функцию в общий модуль или внешнюю обработку:

// Функция вызова Claude API через CryptoCat
// Параметры: Промпт - текст запроса к AI
// Возвращает: Строка - ответ от AI

Функция ВызватьClaude(Промпт) Экспорт
    
    APIКлюч = "sk-ваш-ключ"; // Ваш API ключ CryptoCat
    
    // Формируем тело запроса
    ТелоЗапроса = Новый Структура;
    ТелоЗапроса.Вставить("model", "claude-sonnet-4-20250514");
    ТелоЗапроса.Вставить("max_tokens", 1024);
    
    Сообщение = Новый Структура;
    Сообщение.Вставить("role", "user");
    Сообщение.Вставить("content", Промпт);
    
    МассивСообщений = Новый Массив;
    МассивСообщений.Добавить(Сообщение);
    ТелоЗапроса.Вставить("messages", МассивСообщений);
    
    // Конвертируем в JSON
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON, ТелоЗапроса);
    СтрокаJSON = ЗаписьJSON.Закрыть();
    
    // Создаём HTTP соединение
    ЗащищённоеСоединение = Новый ЗащищенноеСоединениеOpenSSL;
    HTTPСоединение = Новый HTTPСоединение(
        "api.cryptocatslab.ru", 
        443, 
        , , , 
        30, 
        ЗащищённоеСоединение
    );
    
    // Формируем запрос
    HTTPЗапрос = Новый HTTPЗапрос("/v1/chat/completions");
    HTTPЗапрос.Заголовки.Вставить("Authorization", "Bearer " + APIКлюч);
    HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
    HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8);
    
    // Отправляем POST запрос
    Попытка
        HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
    Исключение
        Возврат "Ошибка соединения: " + ОписаниеОшибки();
    КонецПопытки;
    
    // Проверяем статус
    Если HTTPОтвет.КодСостояния <> 200 Тогда
        Возврат "Ошибка API: " + HTTPОтвет.КодСостояния;
    КонецЕсли;
    
    // Парсим ответ
    СтрокаОтвета = HTTPОтвет.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
    
    ЧтениеJSON = Новый ЧтениеJSON;
    ЧтениеJSON.УстановитьСтроку(СтрокаОтвета);
    Результат = ПрочитатьJSON(ЧтениеJSON);
    ЧтениеJSON.Закрыть();
    
    // Извлекаем текст ответа
    Если ТипЗнч(Результат) = Тип("Структура") Тогда
        Если Результат.Свойство("choices") Тогда
            Выборки = Результат.choices;
            Если Выборки.Количество() > 0 Тогда
                Возврат Выборки[0].message.content;
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
    
    Возврат "Ошибка разбора ответа";
    
КонецФункции

Кейс 1: Генерация описаний номенклатуры

Автоматическое создание продающих описаний товаров из характеристик:

// Генерация описания для карточки товара
Процедура СгенерироватьОписание(Номенклатура)
    
    // Собираем характеристики товара
    Наименование = Номенклатура.Наименование;
    Артикул = Номенклатура.Артикул;
    
    // Получаем характеристики (пример для УТ)
    ТекстХарактеристик = "";
    Для Каждого Строка Из Номенклатура.ДополнительныеРеквизиты Цикл
        ТекстХарактеристик = ТекстХарактеристик + 
            Строка.Свойство + ": " + Строка.Значение + Символы.ПС;
    КонецЦикла;
    
    // Формируем промпт
    Промпт = "Напиши продающее описание товара для интернет-магазина.

Товар: " + Наименование + "
Артикул: " + Артикул + "
Характеристики:
" + ТекстХарактеристик + "

Требования:
- 2-3 абзаца
- Выгоды для покупателя
- SEO-оптимизация
- Без воды, только конкретика";
    
    // Вызываем AI
    Описание = ВызватьClaude(Промпт);
    
    // Записываем результат
    Номенклатура.Описание = Описание;
    Номенклатура.Записать();
    
КонецПроцедуры

Кейс 2: AI-анализ отчёта по продажам

Получение выводов и рекомендаций на основе данных:

// Анализ данных продаж за период
Функция АнализПродаж(ДатаНачала, ДатаОкончания)
    
    // Получаем данные из 1С
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |   Продажи.Номенклатура.Наименование КАК Товар,
    |   СУММА(Продажи.Количество) КАК Количество,
    |   СУММА(Продажи.Сумма) КАК Выручка
    |ИЗ
    |   РегистрНакопления.Продажи КАК Продажи
    |ГДЕ
    |   Продажи.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
    |СГРУППИРОВАТЬ ПО
    |   Продажи.Номенклатура
    |УПОРЯДОЧИТЬ ПО
    |   Выручка УБЫВ";
    
    Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
    Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
    
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    
    // Формируем текст для анализа
    ТекстДанных = "Продажи за период " + ДатаНачала + " - " + ДатаОкончания + ":
";
    Пока Выборка.Следующий() Цикл
        ТекстДанных = ТекстДанных + 
            Выборка.Товар + ": " + 
            Выборка.Количество + " шт., " + 
            Выборка.Выручка + " руб." + Символы.ПС;
    КонецЦикла;
    
    // Запрос к AI
    Промпт = "Проанализируй данные продаж и дай рекомендации:

" + ТекстДанных + "

Ответь кратко:
1. Топ-3 товара по выручке
2. Товары с падением продаж (если есть)
3. Рекомендации по ассортименту
4. Что закупить в первую очередь";
    
    Возврат ВызватьClaude(Промпт);
    
КонецФункции

Кейс 3: Генерация писем клиентам

Персонализированные письма на основе данных из 1С:

// Генерация письма для клиента
Функция СгенерироватьПисьмо(Контрагент, ТипПисьма)
    
    // Данные клиента
    Наименование = Контрагент.Наименование;
    КонтактноеЛицо = Контрагент.КонтактноеЛицо;
    
    // Последние заказы
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ ПЕРВЫЕ 5
    |   Заказы.Дата,
    |   Заказы.СуммаДокумента
    |ИЗ
    |   Документ.ЗаказКлиента КАК Заказы
    |ГДЕ
    |   Заказы.Контрагент = &Контрагент
    |УПОРЯДОЧИТЬ ПО
    |   Заказы.Дата УБЫВ";
    Запрос.УстановитьПараметр("Контрагент", Контрагент.Ссылка);
    
    ИсторияЗаказов = "";
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        ИсторияЗаказов = ИсторияЗаказов + 
            Формат(Выборка.Дата, "ДФ=dd.MM.yyyy") + " - " + 
            Выборка.СуммаДокумента + " руб." + Символы.ПС;
    КонецЦикла;
    
    // Выбираем тип письма
    Если ТипПисьма = "Напоминание" Тогда
        Промпт = "Напиши вежливое письмо-напоминание клиенту.
Клиент: " + Наименование + "
Контактное лицо: " + КонтактноеЛицо + "
История заказов:
" + ИсторияЗаказов + "

Цель: напомнить о себе, предложить сделать новый заказ.
Тон: дружелюбный, не навязчивый. До 150 слов.";
        
    ИначеЕсли ТипПисьма = "Благодарность" Тогда
        Промпт = "Напиши письмо благодарности клиенту за заказ.
Клиент: " + Наименование + "
Тон: тёплый, искренний. До 100 слов.";
    КонецЕсли;
    
    Возврат ВызватьClaude(Промпт);
    
КонецФункции

Другие сценарии использования

Классификация номенклатуры

AI определяет категорию товара по наименованию и характеристикам

Заполнение документов

Генерация комментариев, оснований, пояснений к документам

Обработка обращений

Анализ входящих писем и подготовка ответов

Прогнозирование

AI-рекомендации по закупкам на основе истории продаж

⚠️ Важные замечания

  • Версия платформы: HTTPСоединение доступен начиная с 1С:Предприятие 8.3
  • HTTPS: Для работы с API нужен объект ЗащищенноеСоединениеOpenSSL
  • Таймаут: Рекомендуем устанавливать таймаут 30-60 секунд для сложных запросов
  • API ключ: Храните ключ в константе или настройках, не в коде
  • Кодировка: Всегда используйте UTF-8 для корректной работы с русским текстом

Какую модель выбрать для 1С?

Claude Sonnet
Описания товаров, письма, анализ — оптимальный выбор
рекомендуем
Claude Haiku
Простые задачи, классификация — быстро и дёшево
экономия
Qwen3 Coder
Массовая обработка, минимальная цена
от ₽15/1M

Почему CryptoCat для 1С?

Работает из России
Без VPN, стабильное соединение
Оплата в рублях
Карты РФ, СБП, для юрлиц
Простая интеграция
Стандартный HTTPСоединение
Поддержка UTF-8
Корректная работа с русским текстом

20₽ на счёт при регистрации • Копируй код и используй