Обмен через API с Честный знак (Система маркировки товаров)

10.08.20

Интеграция - Обмен с ГосИС

Рассмотрен пример обмена через API с Честным знаком с использованием электронной подписи.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Обмен через API с Честным знаком (Система маркировки товаров):
.epf 10,18Kb
174
174 Скачать (1 SM) Купить за 1 850 руб.

У государства большие планы по развитию системы маркировки товаров, в связи с этим бизнесу надо научиться взаимодействовать с системой маркировки товаров Честный знак. API описан здесь.

Основа взята из публикации //infostart.ru/public/1236219/, но в отличии от неё всё реализовано средствами 1С. В обработке реализовано получение токена с использованием электронной подписи, отправка запроса и получение ответа в файл .json

Проверено на платформе 8.3.15.1830, конфигурации Бухгалтерия предприятия 3.0.80.40. Код обработки ниже:

&НаСервере
Процедура ЗаписатьВЖурнал(Данные)
	Файл = Новый ЗаписьТекста(ПутьКФайламОтветов + "log.txt",,,Истина);
	Файл.ЗаписатьСтроку(Строка(ТекущаяДата()) + ": " + Данные);
	Файл.Закрыть();
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	//Поиск доступных сертификатов
	CAPICOM_CURRENT_USER_STORE = 2;
	//2 - Искать сертификат в ветке "Личное" хранилища.
	CAPICOM_MY_STORE = "My";
	// Указываем, что ветку "Личное" берем из хранилища текущего пользователя
	CAPICOM_STORE_OPEN_READ_ONLY = 0; // Открыть хранилище только на чтение
	oStore = Новый COMОбъект("CAdESCOM.Store"); // Объект описывает хранилище сертификатов
	
	oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,
	CAPICOM_STORE_OPEN_READ_ONLY); // Открыть хранилище сертификатов
	// 1 вариант: поиск сертификата по отпечатку
	//CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0;
	//Certificates = oStore.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, ОтпечатокСтр);
	//Рез = Certificates.Item(1);
	
	//2 вариант: обходом по коллекции и сравнение с отпечатком
	Для Каждого ТекСертификат Из oStore.Certificates Цикл
		НоваяСтрока = Сертификаты.Добавить();
		НоваяСтрока.Владелец = ТекСертификат.SubjectName;
		НоваяСтрока.ПериодС = ТекСертификат.ValidFromDate;
		НоваяСтрока.ПериодДо = ТекСертификат.ValidToDate;
		НоваяСтрока.Контейнер = ТекСертификат.PrivateKey.UniqueContainerName;
		НоваяСтрока.Отпечаток = ТекСертификат.Thumbprint;
	КонецЦикла;
	
	//Запрос = "/api/v3/facade/identifytools/listV2?cisStatus=INTRODUCED&limit=10000";
	Запрос = "/api/v3/facade/cis/cis_list?cis=010462007200949521tkHSO<.I)jqC(";
	Сервер = "ismp.crpt.ru";
	ПутьКФайламОтветов = "C:\temp\GISMT\";
	
КонецПроцедуры

&НаКлиенте
Процедура СертификатыПриАктивизацииСтроки(Элемент)
	СертификатДляОбмена = Элемент.ТекущиеДанные.Отпечаток;
КонецПроцедуры

&НаКлиенте
Процедура ПолучитьТокен(Команда)
	ПолучитьТокенНаСервере();
КонецПроцедуры

&НаСервере
Процедура ПолучитьТокенНаСервере()
	
	// Получение данных для получения токена
	HTTPСоединение =    Новый HTTPСоединение(Сервер,443,,,,,Новый ЗащищенноеСоединениеOpenSSL);
	HTTPЗапрос = новый HTTPЗапрос("/api/v3/auth/cert/key");
	HTTPОтвет = HTTPСоединение.ВызватьHTTPМетод("GET",HTTPЗапрос);
	ОтветСтрока = HTTPОтвет.ПолучитьТелоКакСтроку("UTF-8"); 
	ЧтениеJSON = Новый ЧтениеJSON; 
	ЧтениеJSON.УстановитьСтроку(ОтветСтрока); 
	ДанныеJSON = ПрочитатьJSON(ЧтениеJSON); 
	ЧтениеJSON.Закрыть();
	УИД = ДанныеJSON.uuid;
	ДанныеДляПолученияТокена = ДанныеJSON.data;
	ЗаписатьВЖурнал("Получение данных /api/v3/auth/cert/key" + Символы.ПС + ДанныеДляПолученияТокена);
	
	// Подписание данных для получения токена
	ДанныеДляПолученияТокена = ПодписатьТекст(ЗашифроватьBase64(ДанныеДляПолученияТокена, КодировкаТекста.UTF8),СертификатДляОбмена,Ложь);
	ЗаписатьВЖурнал("Подписано сертификатом " + СертификатДляОбмена + Символы.ПС + ДанныеДляПолученияТокена);
	
	// Получение токена с использованием подписанных данных
	Соединение = Новый HTTPСоединение(Сервер,443,,,,,Новый ЗащищенноеСоединениеOpenSSL);
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Content-Type", "application/json; charset=UTF-8");
	Заголовки.Вставить("Accept", "application/json");
	HTTPЗапрос = Новый HTTPЗапрос("/api/v3/auth/cert/",Заголовки);
	ЗаписьJOIN = Новый ЗаписьJSON;
	ЗаписьJOIN.УстановитьСтроку();
	ДанныеДляЗапроса = Новый Структура;
	ДанныеДляЗапроса.Вставить("uuid",УИД);
	ДанныеДляЗапроса.Вставить("data",ДанныеДляПолученияТокена);	
	ЗаписатьJSON(ЗаписьJOIN,ДанныеДляЗапроса);
	СтрокаДляЗапроса = ЗаписьJOIN.Закрыть();
	
	HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаДляЗапроса,КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
	Ответ = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
	
	Токен = ПрочитатьJSON(ЧтениеJSON, Ложь).token;	
КонецПроцедуры

&НаСервере
Функция ЗашифроватьBase64(Строка, Кодировка) Экспорт
	ИмяВременногоФайла = ПолучитьИмяВременногоФайла();
	ЗаписьТекста = Новый ЗаписьТекста(ИмяВременногоФайла, Кодировка);
    ЗаписьТекста.Записать(Строка);
    ЗаписьТекста.Закрыть();
    Двоичные = Новый ДвоичныеДанные(ИмяВременногоФайла);
    Результат = Base64Строка(Двоичные);
	Если Лев(Результат, 4) = "77u/" Тогда
		Результат = Сред(Результат, 5);
	КонецЕсли; 
	Результат = СтрЗаменить(Результат, Символы.ПС, "");
    УдалитьФайлы(ИмяВременногоФайла);
    Возврат Результат;
КонецФункции

&НаСервере
// sThumbprint - отпечаток сертификата, используемого для подписи; строка,
// представляющая отпечаток в шестнадцатеричном виде
// пример 195934d72dcdf69149901d6632aca4562d8806d8
// ТекстДляПодписи должен быть в Base64
// bDetached - Истина/Ложь - откреплённая(для подписания документов)/прикреплённая(для получения токена авторизации) подпись
Функция ПодписатьТекст(ТекстДляПодписи, sThumbprint, bDetached)
	CADESCOM_BASE64_TO_BINARY = 1; // Входные данные пришли в Base64
	CADESCOM_CADES_TYPE = 1; // Тип усовершенствованной подписи
	CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0; // Атрибут штампа времени подписи
	oSigner = Новый COMОбъект("CAdESCOM.CPSigner");
	// Объект, задающий параметры создания и содержащий информацию об усовершенствованной подписи.
	oSigner.Certificate = ПолучитьСертификатПоОтпечатку(sThumbprint);
	oSigningTimeAttr = Новый COMОбъект("CAdESCOM.CPAttribute");
	oSigningTimeAttr.Name = CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME;
	oSigningTimeAttr.Value = ТекущаяДата();
	oSigner.AuthenticatedAttributes2.Add(oSigningTimeAttr);
	ТекстДляПодписи = СокрЛП(ТекстДляПодписи);
	oSignedData = Новый COMОбъект("CAdESCOM.CadesSignedData");
	// Объект CadesSignedData предоставляет свойства и методы для работы с усовершенствованной подписью.
	oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
	oSignedData.Content = СокрЛП(ТекстДляПодписи);
	EncodingType = 0;
	sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_TYPE,
	bDetached, EncodingType);
	// Метод добавляет к сообщению усовершенствованную подпись.
	Возврат sSignedMessage; // Подпись в формате Base64
КонецФункции

&НаСервере
//Отпечаток - строка HEX
Функция ПолучитьСертификатПоОтпечатку(ОтпечатокСтр)
	Рез = Неопределено; // Найденный сертификат (Com-объект)
	CAPICOM_CURRENT_USER_STORE = 2;
	//2 - Искать сертификат в ветке "Личное" хранилища.
	CAPICOM_MY_STORE = "My";
	// Указываем, что ветку "Личное" берем из хранилища текущего пользователя
	CAPICOM_STORE_OPEN_READ_ONLY = 0; // Открыть хранилище только на чтение
	oStore = Новый COMОбъект("CAdESCOM.Store"); // Объект описывает хранилище сертификатов
	
	oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,
	CAPICOM_STORE_OPEN_READ_ONLY); // Открыть хранилище сертификатов
	// 1 вариант: поиск сертификата по отпечатку
	//CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0;
	//Certificates = oStore.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, ОтпечатокСтр);
	//Рез = Certificates.Item(1);
	
	//2 вариант: обходом по коллекции и сравнение с отпечатком
	Для Каждого ТекСертификат Из oStore.Certificates Цикл
		ТекОтпечаток = ТекСертификат.Thumbprint; // возвращается отпечаток в шестнадцатеричном виде
		Если ВРЕГ(ТекОтпечаток) = ВРЕГ(ОтпечатокСтр) Тогда Рез = ТекСертификат;
			Прервать;
		КонецЕсли;
	КонецЦикла;
	oStore.Close(); // Закрыть хранилище сертификатов и освободить объект 61
	Возврат Рез;
КонецФункции

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

&НаСервере
Процедура ОтправитьЗапросНаСервере()
	HTTPСоединение = Новый HTTPСоединение(Сервер,443,,,,,Новый ЗащищенноеСоединениеOpenSSL);
	HTTPЗапрос = новый HTTPЗапрос(Запрос);
	HTTPЗапрос.Заголовки.Вставить("Authorization","Bearer "+Токен);
	HTTPОтвет = HTTPСоединение.ВызватьHTTPМетод("GET",HTTPЗапрос);	
	Сообщить(HTTPОтвет.КодСостояния);
	ИмяФайлаОтвета = ПутьКФайламОтветов + Строка(Новый УникальныйИдентификатор)+".json";
	HTTPОтвет.ПолучитьТелоКакДвоичныеДанные().Записать(ИмяФайлаОтвета);
	ЗаписатьВЖурнал("Запрос: " + Запрос + Символы.ПС + "Ответ: " + ИмяФайлаОтвета); 
КонецПроцедуры

 

честный знак api система маркировки обувь сигареты вода обработка КИЗ марка ГИС МТ запрос ответ обмен

См. также

Обмен с ГосИС Бюджетный учет Регламентированный учет и отчетность Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление холдингом Химическая промышленность Государственные, бюджетные структуры Электротехника и микроэлектроника Машиностроение и приборостроение Металлургическая промышленность Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Раздельный учет гособоронзаказа в 1С: Отчеты по исполнению госконтрактов, расчетно-калькуляционные материалы и контроль операций для исполнения в срок в 1С: Бухгалтерия 3.0 и Управление Холдингом 3.2. Простая настройка и полное соответствие законодательству. Профессиональный консалтинг и регулярные обновления продукта.

44000 руб.

28.08.2020    388462    2584    137    

1107

Обмен с ГосИС Бухгалтер Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Ювелирная промышленность и торговля Россия Управленческий учет Платные (руб)

Интеграция для работы 1С с ГИИС ДМДК. Государственная интегрированная информационная система в сфере контроля за оборотом драгоценных металлов, драгоценных камней и изделий из них на всех этапах этого оборота.

65000 руб.

12.04.2022    20044    165    34    

42

Бюджетный учет Обмен с ГосИС Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Государственные, бюджетные структуры Россия Бухгалтерский учет Платные (руб)

Доработка конфигурации 1С:Бухгалтерия предприятия, редакция 3.0. реализована в виде расширения. Предназначена для ведения раздельного учета и автоматизации заполнения отчетности исполнения контрактов ГОЗ в конфигурациях 1С БП КОРП, ПРОФ, Базовая, БИТ.ФИНАНС.

55200 руб.

16.08.2019    94670    260    89    

153

Оптовая торговля Производство готовой продукции (работ, услуг) Обмен с ГосИС Программист Бухгалтер Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Оптовая торговля, дистрибуция, логистика Пищевая промышленность Россия Бухгалтерский учет Платные (руб)

Автоматический обмен данными с системой ФГИС Меркурий из 1С через ВетИС API: загрузка данных по хозяйствующим субъектам, предприятиям; типов, групп, видов, наименований продукции, сопоставление данных и запись их в базу данных; создание на основании расходных документов транспортных партий, отправка на сервер, печать полученных ветеринарных свидетельств, запрос остатков складского журнала, проведение инвентаризаций, оформление производственных партий.

11500 руб.

08.12.2017    106677    289    110    

147

Оптовая торговля Розничная торговля Обмен с ГосИС Бухгалтер Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Автоматизация учета ЕГАИС в 1С для оптовой торговли, производства и импорта. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

828 руб.

15.12.2015    173063    886    370    

407

Обмен с ГосИС Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Платные (руб)

Обработка для обмена платежными документами в формате xml для системы Федерального казначейства "Электронный бюджет" из конфигураций 1С. Поставляется для БП 3.0 Работа только с контрагентами. Сайт "Электронного Бюджета": https://www.budget.gov.ru/

19200 руб.

14.10.2020    64962    397    103    

327

Обмен с ГосИС Программист Пользователь Платформа 1С v8.3 1С:Розница 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Внешняя обработка для инвентаризации кодов маркировки в системе "Честный знак". Позволяет быстро определить и списать коды маркировки проданного, испорченного, утраченного (полный перечень причин списания указан ниже)  товара, которые всё ещё числятся за организацией. Привести в соответствие остатки маркированного товара программы 1С и системы "Честного знака".

6540 руб.

09.01.2024    6935    91    21    

87

Регламентированный учет и отчетность Обмен с ГосИС ЭДО и ОФД Бухгалтер Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Работаете по контрактной схеме, сталкивались с проблемой, что в контракте жестко указаны наименование, цена, единица измерения товара. И не все готовы создавать новую номенклатуру под каждый контракт или менять наименование и единицу измерения для уже имеющейся. Тем более, бывает так, что контракт - это формальность. Контракт не описывает жесткие условия поставки, нужно соблюсти правильность в предоставлении документов. Данное решение позволит вам оперировать своей номенклатурой при оформлении реализаций по государственному контракту в УТ 11.5 и КА 2.5.11, в то же время выводить на печать документы, соответствующие данным контракта. Реализована выгрузка для сайта госзакупок (ЕИС) по 44-ФЗ.

60000 руб.

19.12.2022    13505    37    25    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. KHoroshulinAV 171 08.09.20 17:08 Сейчас в теме
Уф. Мало что понятно но видно, что реализация гениальна!!
Подскажите..сэр, как реализована подпись? Мы тянем файл?
Другими словами что должно быть предустановлено в системе для данного обмена?
2. Гость 19.09.20 10:41
Интересная публикация.
У меня стоит цель по принятым кодам маркировки от поставщика с ЧЗ получать размер обуви, которой соответствует марка. Это вообще возможно сделать, используя Ваши наработки? Если да, то как с Вами связаться?
20. map4uk 28.04.21 18:00 Сейчас в теме
(2)
по принятым кодам маркировки от поставщика с ЧЗ получать размер обуви


Реализовали?
21. prozet-z 29.04.21 12:03 Сейчас в теме
(20), не я, но по заказу человек это реализовал.
3. IrinaLvova19 14.10.20 12:50 Сейчас в теме
Спасибо тебе, прекрасный человек
4. Al777 11.11.20 20:04 Сейчас в теме
Я занимаюсь маркировкой обуви в 1С уже где-то год, начинал, когда она ещё запущена не была. Реализовал её сам в УТ 10.3. В данной обработке код понятен, но я никак не мог понять: показан пример чего? И только, когда внимательно посмотрел на скриншот, понял: показывается информация о коде маркировки, конкретнее, коде идентификации. Вот об этом я не увидел информацию, поэтому вначале мне и не был понятен данный пример.
5. AlexeyK1 14 20.01.21 19:35 Сейчас в теме
подскажите как экранировать при HTTPЗапрос ? если в КМ "неудобные" символы? например &
запрос с вот таким КМ не вернет 010462005993464221U8&OD!GiYT94u
6. AlexeyK1 14 20.01.21 19:48 Сейчас в теме
(5)
разобрался =)
КодироватьСтроку(ШК,СпособКодированияСтроки.КодировкаURL);
14. SV6 21.04.21 16:40 Сейчас в теме
(5) реализовал так
//КИ - код идентификации как есть

ПараметрыJSON = Новый ПараметрыЗаписиJSON( , , , ЭкранированиеСимволовJSON.СимволыВнеASCII, , , , ,);
Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку(ПараметрыJSON);
Запись.ЗаписатьЗначение(КИ);
КИJSON = Запись.Закрыть();
Запрос	=	"{"  + Символ(34) + "cises"  + Символ(34) + ":[" + Символы.ПС + КИJSON + Символы.ПС + "]" + Символы.ПС + "}";

Функция ОтправитьЗапросJSON(Запрос, КИ, КИJSON, СтрокаТаблицыМарок)
	HTTPСоединение = Новый HTTPСоединение(Сервер,443,,,,,Новый ЗащищенноеСоединениеOpenSSL);
	
	HTTPЗапрос = новый HTTPЗапрос("/api/v3/facade/cis/cis_list/");

	HTTPЗапрос.Заголовки.Вставить("Authorization","Bearer "+Токен);
	HTTPЗапрос.Заголовки.Вставить("Content-Type","application/json");

	HTTPЗапрос.УстановитьТелоИзСтроки(Запрос, ,  ИспользованиеByteOrderMark.НеИспользовать);
	HTTPОтвет = HTTPСоединение.ВызватьHTTPМетод("POST",HTTPЗапрос);
		
	Если HTTPОтвет.КодСостояния = 200 Тогда
		Попытка
			ЧтениеJSON = Новый ЧтениеJSON;
			ЧтениеJSON.УстановитьСтроку(СтрЗаменить(HTTPОтвет.ПолучитьТелоКакСтроку(), КИJSON, (Символ(34)+"КИ"+Символ(34))));
			Рез	=	ПрочитатьJSON(ЧтениеJSON);
			СтрокаТаблицыМарок.НазваниеЧЗ	=	рез["КИ"]["productName"];
			
			Возврат рез["КИ"]["status"];
		Исключение
			Сообщить(КИ);
			Возврат  "ХЗ";
		КонецПопытки;
	Иначе
		Возврат Неопределено;
	КонецЕсли;
КонецФункции
Показать


распознаются все марки на ура,
PS: это пример для одиночного кода, но в json можно передать до 10000 кодов за раз(если верить инструкции, на практике при запросе более 300 за раз, часто возвращает ошибку)
Shakhter; +1 Ответить
7. VladislavDolgov 21.01.21 23:05 Сейчас в теме
Огромное спасибо за свободный доступ, собрал за 10 минут!
8. makskisselev 20.02.21 11:13 Сейчас в теме
Огромное спасибо за обработку, на ее основе сделали свою. Есть один момент - почему-то при экранировании штрихкода, когда есть спецсимволы (, ;) все экранируется по документации честного знака, но сервер возвращает пустой ответ. Хотя та же марка в приложении на телефоне честного знака ответ получает корректный. Кто-то сталкивался ? Строку экранирую как в (5).
10. AlexeyK1 14 20.02.21 15:28 Сейчас в теме
9. makskisselev 20.02.21 12:59 Сейчас в теме
Разобрались, используйте структуру JSON при передаче запроса, тогда экранирование символов не нужно и все работает корректно.
11. user635667 16.03.21 06:12 Сейчас в теме
А можно при помощи этой штуки скачать все товары и ШК от них?
На сайте ЧЗ в разделе Табак в разделе Коды маркировки есть столбик Товар. Я бы экспортировал в Эксельку, но там постранично, а как пропарсить я не знаю.
Прикрепленные файлы:
12. opus70 74 10.04.21 11:27 Сейчас в теме
(11) присоединяюсь к вопросу тоже хочу получит все что за мной числится для сверок но не могу придумать как это сделать
13. warlomak 21.04.21 08:26 Сейчас в теме
(11) можно, методом /api/v4/facade/identifytools/listV2
15. ratinc 22.04.21 22:08 Сейчас в теме
(13)
/api/v4/facade/identifytools/listV2


Вы уверены что для товарной группы - табак, это работает?
Обувь и легкую промышленность показывает, а по сигаретам возвращает пустой результат.
Хотя.... не исключено, что я не верно сделал запрос
16. Aliaxandr 23.04.21 11:29 Сейчас в теме
На сайте честного знака: https://xn--80ajghhoc2aj1c8b.xn--p1ai/upload/%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5­+API+%D0%93%D0%98%D0%A1%D0%9C%D0%A2.pdf
есть инфа: URL: /api/v3/facade/cis/cis_list - устаревший URL, необходимо использовать URL:/api/v4/facade/cis/cis_list. В дальнейшем /api/v3/facade/cis/cis_list будет отключён. Похоже вчера, 22.04.2021, версию /api/v3/facade/cis/cis_list отключили/
17. Aliaxandr 23.04.21 12:24 Сейчас в теме
На сайте честного знака есть информация:
URL: /api/v3/facade/cis/cis_list - устаревший URL, необходимо использовать URL:/api/v4/facade/cis/cis_list.
В дальнейшем /api/v3/facade/cis/cis_list будет отключён.
18. warlomak 24.04.21 09:54 Сейчас в теме
(15) Проверил на табаке, действительно пустой ответ, на остальном работает.
19. warlomak 24.04.21 09:55 Сейчас в теме
(16) тоже заметил, что /api/v3/facade/cis/cis_list отключена...
22. vic-kex 22.06.21 11:26 Сейчас в теме
Появилась информация как по табаку получить список товаров?
23. vic-kex 22.06.21 11:28 Сейчас в теме
24. vic-kex 22.06.21 15:13 Сейчас в теме
/api/v3/product/search вот через это получилось
25. San4opa 28.07.21 00:19 Сейчас в теме
У меня почему-то не видит сертификатов в хранилище, хотя они установлены, подскажите плиз в чем может быть проблема.
26. пользователь 11.11.21 07:13
Сообщение было скрыто модератором.
...
27. пользователь 28.07.22 10:12
Сообщение было скрыто модератором.
...
28. masik777 10.08.22 11:20 Сейчас в теме
AI777 Александр, неужели так трудно ответить?
29. kodblack 12 05.12.22 16:39 Сейчас в теме
Добрый. В УТ 11.5

Ошибка при вызове конструктора (COMОбъект)
{ВнешняяОбработка.ГИСМТ.Форма.Форма.Форма(16)}:oStore = Новый COMОбъект("CAdESCOM.Store"); // Объект описывает хранилище сертификатов

по причине:
-2147221005(0x800401F3): Недопустимая строка с указанием класса
31. art7979 122 26.09.23 15:40 Сейчас в теме
(30) Спасибо! Многое перепробовал.
32. aleks.public 26.02.25 16:13 Сейчас в теме
Искал информацию, понял что надо дополнить)

Функция подписи строки средствами платформы:

// Подписывает строку и возвращает ее base64 представление
//
// Параметры:
//	ИспользуемаяЭЦП - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
//	СтрокаДляПодписи - Строка
//
// Возвращаемое значение:
//	Строка
//
Функция ПодписатьСтроку(ИспользуемаяЭЦП, СтрокаДляПодписи)
	
	СертификатКлючаЭлектроннойПодписиИШифрования = ИспользуемаяЭЦП;
	
	Если Не ЗначениеЗаполнено(СертификатКлючаЭлектроннойПодписиИШифрования) Тогда
		ТекстСообщения = НСтр("ru='Не укзана ЭЦП в настройках'");
		ВызватьИсключение ТекстСообщения;
	КонецЕсли;
	
	ИспользуемаяПрограмма = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СертификатКлючаЭлектроннойПодписиИШифрования, "Программа");
	
	ОписаниеПрограммы = ЭлектроннаяПодпись.НовоеОписаниеПрограммы(ИспользуемаяПрограмма.ИмяПрограммы, ИспользуемаяПрограмма.ТипПрограммы);
	ОписаниеПрограммы.Представление = ИспользуемаяПрограмма.Наименование;
	ОписаниеПрограммы.АлгоритмПодписи = ИспользуемаяПрограмма.АлгоритмПодписи;
	ОписаниеПрограммы.АлгоритмХеширования = ИспользуемаяПрограмма.АлгоритмХеширования;
	ОписаниеПрограммы.АлгоритмШифрования = ИспользуемаяПрограмма.АлгоритмШифрования;
	ОписаниеПрограммы.Вставить("Идентификатор");
	ОписаниеПрограммы.Вставить("Ссылка");
	
	ОписаниеОшибки = "";
	
	МенеджерКриптографии = ЭлектроннаяПодпись.МенеджерКриптографии("Подписание", Истина, ОписаниеОшибки, ОписаниеПрограммы);
	МенеджерКриптографии.ВключениеДанныхВПодпись = Истина;
	МенеджерКриптографии.ВключениеСертификатовВПодпись = РежимВключенияСертификатовКриптографии.ВключатьПолнуюЦепочку;
	
	ТипПодписи = ТипПодписиКриптографии.CAdESBES;
	
	Поток = Новый ПотокВПамяти;
	Запись = Новый ЗаписьТекста(Поток);
	Запись.Записать(СтрокаДляПодписи);
	Запись.Закрыть();
	ВходныеДанные = Поток.ЗакрытьИПолучитьДвоичныеДанные();
	
	СертификатКриптографииДляОсновногоКлюча = СертификатКриптографииДляОсновногоКлюча(ИспользуемаяЭЦП);
	ПодписанныеДвоичныеДанные = МенеджерКриптографии.Подписать(ВходныеДанные, СертификатКриптографииДляОсновногоКлюча, ТипПодписи);
	
	Результат = Base64Строка(ПодписанныеДвоичныеДанные);
	Возврат СтрЗаменить(СтрЗаменить(Результат, Символы.ПС, ""), Символы.ВК, "");
	
КонецФункции

// Параметры:
//	СертификатКлючаЭЦП - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
//
// ВозвращаемоеЗначение:
//   СертификатКриптографии - сертификат электронной подписи и шифрования.
//   Неопределено - сертификат не существует в хранилище.
//
Функция СертификатКриптографииДляОсновногоКлюча(СертификатКлючаЭЦП) Экспорт
	
	Отпечаток = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СертификатКлючаЭЦП, "Отпечаток");
	Возврат ЭлектроннаяПодпись.ПолучитьСертификатПоОтпечатку(Отпечаток, Истина);
	
КонецФункции
Показать


Опробовано на функции запроса токена авторизации (8.3.26.1540 + БСП 3.1.10.441)
Оставьте свое сообщение