1C и GigaChat на базе 1С HTTP Connector (теперь + DeepSeek)

21.06.25

Интеграция - Нейросети

Данная публикация демонстрирует основы взаимодействия 1С по АПИ с GigaChat от Сбера. Приведены примеры получения токена, отправки файла для последующей обработки и чат с ИИ, и непосредственно обработка файла. upd: в публикацию добавлено как обрабатывать файлы DeepSeek

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
1C и GigaChat на базе 1С HTTP Connector
.epf 7,15Kb
9
9 Скачать (2 SM) Купить за 2 150 руб.
1C и DeepSeek на базе 1С HTTP Connector
.epf 6,66Kb
5
5 Скачать (2 SM) Купить за 2 150 руб.

Моя вторая публикация и снова на базе https://github.com/vbondarevsky/Connector

upd:

Сразу выкладываю как только это у меня получилось.
Итак, чтобы отправить файл дипсику для обработки нужно:

 

 

 

В приложенной обработке реализовано получение токена Bearer для обращения к API GigaChat, помещение файла pdf в хранилище GigaChat для последующего анализа и обработки и простой чат вопрос - ответ.

upd:
Добавляю простейший запрос для получения описания номенклатуры по ее наименованию:
 

Функция СпроситьИИНаСервере(Наименование)

	//ИДФайла = Ответ;
    Аутентификация = КоннекторHTTP.НоваяАутентификацияBearer(Токен());
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("x-client-id", "");
    
    // Определение структуры
    СтруктураДанных = Новый Структура;
    СтруктураДанных.Вставить("model", "GigaChat");
    
    Сообщения = Новый Массив;
    
    СообщениеСистемы = Новый Структура;
    СообщениеСистемы.Вставить("role", "system");
    СообщениеСистемы.Вставить("content", "Ты профессиональный маркетолог. Умеешь из короткого названия товара сгенерировать описание. Результат выводишь в виде текста без своих комментариев.");
    Сообщения.Add(СообщениеСистемы);
    
    СообщениеПользователя = Новый Структура;
    СообщениеПользователя.Вставить("role", "user");
    СообщениеПользователя.Вставить("content", Наименование);  
    //СообщениеПользователя.Вставить("attachments", ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИДФайла));  
    
    
    Сообщения.Add(СообщениеПользователя);
    
    СтруктураДанных.Вставить("messages", Сообщения);
    
    // Теперь структура готова к использованию    
    
    Результат = КоннекторHTTP.PostJSON("https://gigachat.devices.sberbank.ru/api/v1/chat/completions", СтруктураДанных, Новый Структура("Аутентификация,Заголовки", Аутентификация, Заголовки));
    Ответ = Результат["choices"][0]["message"]["content"];
	
	Возврат Ответ;
	
КонецФункции

 

Выкладываю код, он же в приложенной обработке.

Подставляем в функцию Токен() <Authorization key> из кабинета developers.sber.ru

&НаСервере
Функция Токен()
    
    Аутентификация = КоннекторHTTP.НоваяАутентификацияBearer("<Authorization key>");

Также понадобится <id клиента>

  

  Данные = Новый Структура("purpose", "general");
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("x-client-id", "<id клиента>");

Прилагаю код формы:

&НаКлиенте
Процедура Команда1(Команда)
     РеквизитТокен = Токен();
 КонецПроцедуры
 
 &НаКлиенте
Процедура Команда2(Команда)
     СкормитьПДФ();
 КонецПроцедуры
 
&НаСервере
Функция Токен()
    
    Аутентификация = КоннекторHTTP.НоваяАутентификацияBearer("<Authorization key>");

    Данные = Новый Структура("scope", "GIGACHAT_API_PERS");
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("RqUID",XMLСтрока(Новый УникальныйИдентификатор));

    Результат = КоннекторHTTP.КакJSON(КоннекторHTTP.Post("https://ngw.devices.sberbank.ru:9443/api/v2/oauth", Неопределено, Новый Структура("Аутентификация,Заголовки, Данные", Аутентификация, Заголовки, Данные)));
    
    Возврат Результат["access_token"];    
    
КонецФункции

&НаСервере 
Процедура СкормитьПДФ()
    Аутентификация = КоннекторHTTP.НоваяАутентификацияBearer(Токен());

    Файлы = Новый Массив;  
    ФайлДанных = КоннекторHTTP.НовыйОтправляемыйФайл("file", "d:\test.pdf", Новый ДвоичныеДанные("d:\test.pdf"),  "application/pdf");
    Файлы.Добавить(ФайлДанных);

    Данные = Новый Структура("purpose", "general");
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("x-client-id", "<id клиента>");

    Результат = КоннекторHTTP.Post("https://gigachat.devices.sberbank.ru/api/v1/files", Неопределено, Новый Структура("Файлы,Данные,Аутентификация,Заголовки", Файлы, Данные, Аутентификация, Заголовки));
    Ответ = КоннекторHTTP.КакJson(Результат)["id"];
КонецПроцедуры    


&НаСервере
Процедура СпроситьИИНаСервере()

    ИДФайла = Ответ;
    Аутентификация = КоннекторHTTP.НоваяАутентификацияBearer(Токен());
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("x-client-id", "<id клиента>");
    
    // Определение структуры
    СтруктураДанных = Новый Структура;
    СтруктураДанных.Вставить("model", "GigaChat");
    
    Сообщения = Новый Массив;
    
    СообщениеСистемы = Новый Структура;
    СообщениеСистемы.Вставить("role", "system");
    СообщениеСистемы.Вставить("content", "Ты - пьяный гопник и быдло. Тебе нужно отвечать на все вопросы как будто ты маргинал.");
    Сообщения.Add(СообщениеСистемы);
    
    СообщениеПользователя = Новый Структура;
    СообщениеПользователя.Вставить("role", "user");
    СообщениеПользователя.Вставить("content", ВопросИИ);  
    //СообщениеПользователя.Вставить("attachments", ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИДФайла));  
    
    
    Сообщения.Add(СообщениеПользователя);
    
    СтруктураДанных.Вставить("messages", Сообщения);
    
    // Теперь структура готова к использованию    
    
    Результат = КоннекторHTTP.PostJSON("https://gigachat.devices.sberbank.ru/api/v1/chat/completions", СтруктураДанных, Новый Структура("Аутентификация,Заголовки", Аутентификация, Заголовки));
    Ответ = Результат["choices"][0]["message"]["content"];
КонецПроцедуры


&НаКлиенте
Процедура СпроситьИИ(Команда)
    СпроситьИИНаСервере();
КонецПроцедуры

 

upd:
Пример обработки загруженного файла в хранилище GigaChat
&НаСервере
Процедура СпроситьИИНаСервере()

	ИДФайла = Ответ;
	Аутентификация = КоннекторHTTP.НоваяАутентификацияBearer(РеквизитТокен);
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("x-client-id", "");
	
	// Определение структуры
	СтруктураДанных = Новый Структура;
	СтруктураДанных.Вставить("model", "GigaChat-2-preview");
	
	Сообщения = Новый Массив;
	
	СообщениеПользователя = Новый Структура;
	СообщениеПользователя.Вставить("role", "user");
	СообщениеПользователя.Вставить("content", "Выпиши все значения id в документе в столбик. Отвечай на основе приложенного документа");  
	СообщениеПользователя.Вставить("attachments", ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИДФайла));  
	
	
	Сообщения.Add(СообщениеПользователя);
	
	СтруктураДанных.Вставить("messages", Сообщения);
	
	// Теперь структура готова к использованию	
	
	Результат = КоннекторHTTP.PostJSON("https://gigachat.devices.sberbank.ru/api/v1/chat/completions", СтруктураДанных, Новый Структура("Аутентификация,Заголовки", Аутентификация, Заголовки));
	Ответ = Результат["choices"][0]["message"]["content"];
КонецПроцедуры

 

upd:

Добавлен диалог с DeepSeek

 

Проплатить токены так:


Прилагаю пример:

&НаСервере
Процедура СпроситьИИНаСервере()

	ИДФайла = Ответ;
	Аутентификация = КоннекторHTTP.НоваяАутентификацияBearer("<API key DeepSeek>");
	Заголовки = Новый Соответствие;
	
	// Определение структуры
	СтруктураДанных = Новый Структура;
	СтруктураДанных.Вставить("model", "deepseek-chat");
	
	Сообщения = Новый Массив;
	
	СообщениеПользователя = Новый Структура;
	СообщениеПользователя.Вставить("role", "system");
	СообщениеПользователя.Вставить("content", "Ты отвечаешь как маргинал, быдло и интернет тролль.");  
	
	Сообщения.Add(СообщениеПользователя);

	СообщениеПользователя = Новый Структура;
	СообщениеПользователя.Вставить("role", "user");
	СообщениеПользователя.Вставить("content", ВопросИИ);  
	
	Сообщения.Add(СообщениеПользователя);
	
	СтруктураДанных.Вставить("messages", Сообщения);
	СтруктураДанных.Вставить("stream", false);
	// Теперь структура готова к использованию	
	
	Результат = КоннекторHTTP.PostJSON("https://api.deepseek.com/chat/completions", СтруктураДанных, Новый Структура("Аутентификация,Заголовки", Аутентификация, Заголовки));
	Ответ = Результат["choices"][0]["message"]["content"];
КонецПроцедуры

 

 

 

 

Проверено на следующих конфигурациях и релизах:

  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.155, 3.1.11.142

См. также

Нейросети Мастера заполнения Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение для заполнения описания номенклатуры с помощью модели ИИ GigaChat от Сбера. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ.

5000 руб.

08.11.2023    4028    15    0    

25

Нейросети Анализ продаж Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Новая (портабельная) версия анализа продаж вместе с ИИ. Не требует установки расширения Библиотека искусственного интеллекта для 1С.

10 стартмани

17.06.2025    998    6    mkalimulin    6    

8

Управление инвестициями Нейросети Финансовые услуги, инвестиции Бесплатно (free)

Вплоть до текущего года я скептически относился к новостям о нейросетях. Мне казалось, что всё это просто очередной хайп и уж точно они не скоро смогут помочь в чём-то разработчику ПО. Но решил немного поэкспериментировать с пет-проектом, который пылился уже пару лет. Результат меня удивил, поэтому решил поделиться опытом с вами.

16.06.2025    2545    oyti    3    

6

Нейросети Инструментарий разработчика Программист Платформа 1С v8.3 Абонемент ($m)

Для эффективного использования современных LLM им не хватает контекста об 1С, как минимум, знания структуры метаданных 1С, а еще лучше знаний БСП и синтакс-помощника :) Технология MCP помогает решать эту проблему. Под катом описание MVP-решения, которое можно далее дорабатывать под себя. Мне сильно не хватало подобной статьи, чтобы сэкономить бессонные ночи.

1 стартмани

16.06.2025    4863    14    FSerg    13    

41

Нейросети Россия Абонемент ($m)

Нейросетями становится пользоваться все удобнее и интереснее. Правильное применение инструмента помогает сэкономить много времени сил и сосредоточиться на творчестве, а не на рутине.

1 стартмани

11.06.2025    451    Ликреонский    9    

0

Нейросети Программист 1С:Библиотека стандартных подсистем Бесплатно (free)

Рассмотрим Claude Sonnet 4, GPT o3 и 4.1, Qwen3, Llama 4 Maverick, Grok. Cursor и плагин для EDT.

28.05.2025    6608    comol    39    

37

Нейросети Платформа 1С v8.3 1С:Управление торговлей 11 Платные (руб)

ИИ престиж это уникальное готовое решение для того, чтобы начать применять современные технологии искусственного интеллекта в вашей учетной системе и сразу получать выраженный экономический эффект. Для этого вам не надо будет отказываться от устоявшихся практик. ИИ престиж дополнит вашу рабочую систему инструментами, операторами, агентами на базе искусственного интеллекта. Вы получите учетную систему совершенно другого уровня, которую вы сможете развивать в нужном направлении.

600000 руб.

23.05.2025    1978    0    0    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. akR00b 25 15.04.25 09:04 Сейчас в теме
за юмор + ) какой тариф за сие использование? и вообще есть ограничения?
4. qazaz2 17 21.04.25 11:04 Сейчас в теме
Приветствую,
По ссылке https://github.com/vbondarevsky/Connector скачал расширение. Появился общий модуль БОНД_Коннектор.
Скачал обработку. В обработке обращение к КоннекторHTTP, которого вроде как нет.
В БОНД_Коннектор например метода НоваяАутентификацияBearer нет.
Что я делаю не так?
5. exitone 14 21.04.25 14:15 Сейчас в теме
Я использовал этот модуль
Возможно разработка на гитхабе ушла вперед(или назад)
Прикрепленные файлы:
Общий модуль КоннекторHTTP_ Модуль.txt
8. qazaz2 17 21.04.25 22:34 Сейчас в теме
9. qazaz2 17 22.04.25 12:18 Сейчас в теме
Добавил общий модуль КоннекторHTTP.
Синтаксические ошибки из обработки ушли.
Вставил свой <Authorization key>.
В отладке вижу что токен получаю.
Но СпроситьИИ возвращает "message" - "Internal Server Error" и "status" - 500
Что я делаю не так?
11. exitone 14 22.04.25 12:28 Сейчас в теме
(9)
СтруктураДанных = Новый Структура;
СтруктураДанных.Вставить("model", "GigaChat-2-preview");

Вот тут попробуйте модель
СтруктураДанных.Вставить("model", "GigaChat");
12. exitone 14 22.04.25 12:33 Сейчас в теме
(9)
Заголовки.Вставить("x-client-id", "<id клиента>");
плюс сюда не забудьте id клиента
10. exitone 14 22.04.25 12:26 Сейчас в теме
Вот пример, когда на основе загруженного pdf файла, GigaChat выписывает в столбик все найденные в файле id

СообщениеПользователя = Новый Структура;
СообщениеПользователя.Вставить("role", "user");
СообщениеПользователя.Вставить("content", "Выпиши все значения id в документе в столбик. Отвечай на основе приложенного документа");
СообщениеПользователя.Вставить("attachments", ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИДФайла));
13. qazaz2 17 22.04.25 13:16 Сейчас в теме
14. qazaz2 17 22.04.25 15:58 Сейчас в теме
Заработало, дело было в "id клиента",
спасибо.
Оставьте свое сообщение