Клиент API ГИС МТ (ИС МП) "Честный знак". Чтение данных и отправка документов. Работа на стороне сервера.

07.05.21

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

Обращаемся в личный кабинет системы "Честный знак", ГИС МТ (ИС МП) за информацией о маркировке, товарах, документах и т.д. используя предоставляемый API. Отправляем собственный исходящий документ. Разбираемся с электронной подписью на клиенте и на сервере.

Скачать файлы

Наименование Файл Версия Размер
Клиент ИС МП (демо)
.epf 12,00Kb
53
.epf 12,00Kb 53 Скачать
Клиент ИС МП (демо) 2 - с отправкой документа
.epf 12,48Kb
64
.epf 12,48Kb 64 Скачать

Этот материал является доработкой публикации: //infostart.ru/public/1276725/

 

ГИС МТ - Государственная информационная система мониторинга за оборотом товаров
ИС МП - Информационная система маркировки и прослеживаемости
В интерфейсе решений 1С в настройках мы можем видеть: "Интеграция с ИС МП (обувь, одежда, табак...)".
На титульном листе документа описания API, мы видим заголовок "Описание API ГИС МТ".

Обращение к API ГИС МП ничем бы не отличалось от обращения к любым другим API, если бы не необходимость использовать электронную подпись. В этом и заключается основная сложность реализации собственного клиента.

В пункте 5.1 описания API приводится реализация на встроенном языке 1С двух важных функций: ПодписатьТекст() и ПолучитьСертификатПоОтпечатку(). Странно, что пункт 5.1 описания API озаглавлен не иначе как "Пример получения токена...", однако, процедуры получения токена там нет. Поэтому предлагаю свою реализацию этой процедуры:

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

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

Реализация функций ПодписатьТекст() и ПолучитьСертификатПоОтпечатку() почти полностью взята из руководства:

Функция ПодписатьТекст(Сообщение, 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);
	
	// Объект CadesSignedData предоставляет свойства и методы для работы с усовершенствованной подписью.
	oSignedData = Новый COMОбъект("CAdESCOM.CadesSignedData");
	oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
	oSignedData.Content = Сообщение;
	EncodingType = 0;
	
	// Метод добавляет к сообщению усовершенствованную подпись.
	sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_TYPE, bDetached, EncodingType);
	
	Возврат sSignedMessage; // подписанное сообщение в формате Base64
	
КонецФункции

Функция ПолучитьСертификатПоОтпечатку(Отпечаток)
	
	Результат = Неопределено; // Найденный сертификат (Com-объект)
	
	CAPICOM_CURRENT_USER_STORE = 2; //2 - искать сертификат в ветке "Личное" хранилища.
	CAPICOM_MY_STORE = "My"; // указываем, что ветку "Личное" берем из хранилища текущего пользователя
	CAPICOM_STORE_OPEN_READ_ONLY = 0; // Открыть хранилище только на чтение
	
	oStore = Новый COMОбъект("CAdESCOM.Store"); // Объект описывает хранилище сертификатов 246
	
	// Открыть хранилище сертификатов.
	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Соединение(Сервер, 443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
	
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Authorization", "Bearer " + Токен);
	
	Парметры = "order=DESC&orderColumn=receivedAt";
	
	// Запрос получения списка загруженных документов. Пункт 2.1.7 описания API.
	Запрос = Новый HTTPЗапрос(БазовыйАдресСтенда + "/facade/doc/listV2?" + Парметры, Заголовки);
	Ответ = Соединение.ВызватьHTTPМетод("GET", Запрос);
	Ответ = СтруктураИзJSON(Ответ.ПолучитьТелоКакСтроку());
	
	СтруктураСтрокиРезультата = Новый Структура;
	СтруктураСтрокиРезультата.Вставить("number",       "Номер");
	СтруктураСтрокиРезультата.Вставить("docDate",      "Дата");
	СтруктураСтрокиРезультата.Вставить("receivedAt",   "Получен");
	СтруктураСтрокиРезультата.Вставить("externalId",   "ВнешнийID");
	СтруктураСтрокиРезультата.Вставить("senderName",   "Отправитель");
	СтруктураСтрокиРезультата.Вставить("receiverName", "Получатель");
	
	ТаблицаДокументов.Очистить();	
	Для каждого СтрокаРезультатов из Ответ.results Цикл
		НоваяСтрока = ТаблицаДокументов.Добавить();
		
		Для каждого КлючЗначение из СтруктураСтрокиРезультата Цикл
			ИмяПоля = КлючЗначение.Ключ;
			ИмяПоляНаФорме = КлючЗначение.Значение;
			Если СтрокаРезультатов.Свойство(ИмяПоля) Тогда
				НоваяСтрока[ИмяПоляНаФорме] = СтрокаРезультатов[ИмяПоля];
			КонецЕсли;
		КонецЦикла;		
	КонецЦикла;
	
КонецПроцедуры

А теперь остановимся на отправке документов. Сложность состоит в том, что одного только токена для отправки таких запросов уже недостаточно. Отправляемые документы нужно правильно подписать электронной подписью.

Рассмотрим на примере отправки документа "Отгрузка" в формате XML. Любые другие документы будут отправляться точно также, только со своими параметрами. Сформированный и готовый к отправке документ выглядит так:

<shipment action_id="10" version="5">
	<trade_participant_inn_sender>7714326233</trade_participant_inn_sender>
	<trade_participant_inn_receiver>7713463607</trade_participant_inn_receiver>
	<transfer_date>05.02.2021</transfer_date>
	<move_document_number>000</move_document_number>
	<move_document_date>05.02.2021</move_document_date>
	<turnover_type>SELLING</turnover_type>
	<to_not_participant>false</to_not_participant>
	<products_list>
		<product>
			<ki>010290001986851721Bbn&lt;'q/kFz:kO</ki>
		</product>
	</products_list>
</shipment>

Метод для отправки любых документов описан в в пункте 3.1 описания API. Это метод POST и для него надо сформировать тело запроса следующим образом:

ТелоЗапроса = Новый Структура;
ТелоЗапроса.Вставить("document_format", "XML");
ТелоЗапроса.Вставить("product_document", ТекстДокументаBase64);
ТелоЗапроса.Вставить("type", "LP_SHIP_GOODS_XML");
ТелоЗапроса.Вставить("signature", ПодписанныйТекст);

Параметр type это и есть тип документа "Отгрузка". Полное описание всех типов находится в справочнике "Типы документов". Параметр product_document это текст XML, зашифрованный функцией ЗашифроватьBase64(), которая описана выше. А параметр signature это результат, возвращенный функцией ПодписатьТекст(), которая также описана выше, только для документов третий параметр этой функции нужно указывать равным ИСТИНА.

Работа на стороне сервера

Добавлю пару слов о работе на стороне сервера. В приложенных обработках вы найдёте всю выше описанную реализацию на стороне клиента. Для полноценной автоматизации нужна логика, работающая в процессе сервера. Для этого нужно где-то в настройках указать используемый сертификат (так как выбрать его интерактивно на форме нет возможности). Для этого хорошо подходит справочник "Сертификаты ключей электронной подписи и шифрования" из БСП. Он есть во всех современных типовых конфигурациях.

При использовании справочника сертификатов из БСП есть один важный момент. Отпечаток сертификата в этом справочнике хранится не в том виде, в котором он нужен для функции ПодписатьТекст(). Перед вызовом ПодписатьТекст() нужно получить отпечаток в виде HEX-строки следующим образом:

ДанныеСертификата = Сертификат.ДанныеСертификата.Получить();
ск = Новый СертификатКриптографии(ДанныеСертификата);
Отпечаток = ПолучитьHexСтрокуИзДвоичныхДанных(ск.Отпечаток);

В этом коде "Сертификат" это ссылка на элемент справочника "Сертификаты ключей электронной подписи и шифрования".

 

Приложение

Я прилагаю две обработки. Первая была опубликована ещё до того, как я разобрался с документами. Вторая обработка уже включает отправку документа. Старался писать максимально кратко и понятно. Смотрите, пользуйтесь. Вопросы в комментариях приветствуются!

Всё тестировалось на платформе 8.3.18 в конфигурации Бухгалтерия предприятия 3.0.82.24.

Честный знак ИС МП ГИС МТ API Клиент Документ Передача Отправка Запись Обработка

См. также

Раздельный учет по гособоронзаказу (ГОЗ) - Подсистема для 1С:Бухгалтерии 3.0 ПРОФ и КОРП

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

Управляйте учетной политикой раздельного ведения затрат по контракту ГОЗ с подсистемой для 1С:Бухгалтерия. Отчеты по контрактам и контроль операций для исполнения в срок по 275-ФЗ. Минимальные требования: Версия платформы 1С: Предприятие 8.3 – 8.3.23 Версия конфигурации 1С: Бухгалтерия – 3.0.149.28 или выше.

28.08.2020    180832    1545    vvmanannikov    131    

810

Гособоронзаказ: учет и отчетность БП3.0 КОРП + ПРОФ + БИТ.ФИНАНС

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

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

30000 руб.

16.08.2019    87857    206    85    

125

ЕГАИС++. Опт, производство, импорт

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

Полнофункциональное расширение (ранее известное как Модуль 1С-ЕГАИС) для взаимодействия типовых конфигураций 1С и ЕГАИС, предоставляющее максимум возможностей по работе с УТМ. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

8970 руб.

15.12.2015    165949    678    362    

385

SALE! 45%

Обмен 1С с Честным Знаком для УТ11, УНФ, КА2, ERP, Розница: Расширение для работы с СУЗ, ГИС МТ, ЦРПТ

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

Полноценное интеграционное решение которое манипулирует сотнями задач по ведению учета в системе мониторинга честный знак, особенности: такие как полная поддержка учета карточек в национальном каталоге (модерация, редактирование, подписание, получение информации), получение кодов маркировок в станции управления заказами "СУЗ Облако", удобная отправка и получение "УПД" через систему "ЭДОЛайт" из документов реализации или корректировки, так же существует механизм приема через ЭДОЛайт, отправка и получения таких документов как перемаркировка , списание, отгрузка и еще более 40 типов документов в ГИСМТ которые описаны ниже, моментальное сопоставление и внедрение в типовую конфигурацию которое обеспечивает ракетную мега скорость ...

18000 9900 руб.

28.03.2023    9700    31    8    

34

Обмен с системой ЦРПТ (Универсальная конфигурация ХамелеонЦРПТ + маркировка табака, обуви, одежды, лекарств, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин)

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

Данная публикация создана для помощи разработчикам, интеграторам и другим заинтересованным лицам по настройке системы маркировки обуви, одежды, лекарств, табака, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин. Смело задавайте нам вопросы по работе с ЦРПТ, GS1, ЭДО, Национальным каталогом, мы накопили достаточно большую базу знаний по данным темам и готовы ответить на все Ваши вопросы.

104000 руб.

18.03.2019    110319    34    114    

178

SALE! 30%

Обмен с системами Казначейства: Электронный бюджет

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

Обработка для обмена платежными документами в формате xml для системы Федерального казначейства "Электронный бюджет" из конфигураций 1С. Поставляется в двух вариантах для БП 3.0 и КА 2.х/ERP 2.х

15000 10500 руб.

14.10.2020    58483    343    101    

272

Гособоронзаказ в 1С: УПП 1.3

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

Для 1С: УПП 1.3 предлагаем Вашему вниманию подсистему "Раздельный учет результатов финансово-хозяйственной деятельности организаций, выполняющих государственный оборонный заказ (раздельный учет ГОЗ)". Ключевые возможности подсистемы: - Автоматическое заполнение регламентированного отчета "Исполнение контрактов ГОЗ"; - Расшифровка показателей отчета об исполнении контрактов ГОЗ с детализацией до документов; - Контроль хозяйственных операций на соответствие требованиям Постановления Правительства № 47; - Автоматизированный ввод начальных данных по контрактам, заключенным ранее даты начала использования подсистемы.

90000 руб.

25.09.2020    28746    33    9    

36

Печать кассовых чеков на одну ККМ с нескольких рабочих мест для 1С:УТ11.х, КА2.х, Розница 2.х, УНФ, ERP 2.х, БП 3, БГУ2

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

Расширение конфигурации для УТ 11.4, 11.5, КА 2.4, 2.5, Розница 3.0, 2.3 и 2.2, УНФ 1.6, УНФ 3x, ERP 2.4, 2.5, БП 3, БГУ2 (Управляемые формы) позволяет выполнять печать кассовых чеков на одну ККМ 54-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

4000 руб.

27.08.2018    115971    978    564    

827
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. quazare 3586 26.10.20 14:40 Сейчас в теме
красиво написано - почему не используете МенеджерКриптографии?
14. ReactoR 27.04.21 13:46 Сейчас в теме
(1) А есть где-то инфа как с помощью объекта МенеджерКриптографии подписать с присоединенной подписью ?
15. elian 137 27.04.21 13:55 Сейчас в теме
2. elian 137 26.10.20 16:30 Сейчас в теме
хороший вопрос... хотелось быть ближе к руководству от разработчиков сервиса
3. quazare 3586 26.10.20 17:06 Сейчас в теме
тогда добавьте ссылки откуда можно скачать данные плагины и как установить
4. elian 137 26.10.20 17:26 Сейчас в теме
25. elian 137 27.10.21 20:51 Сейчас в теме
(3) эти "плагины" устанавливаются вместе с Крипто-ПРО, просто установите в систему Крипто-ПРО и всё
5. quazare 3586 26.10.20 17:30 Сейчас в теме
в любом случае - это полезная документация и полезный пример!
6. demon_infernal 40 27.10.20 14:08 Сейчас в теме
Вот бы то же самое, но через VipNet CSP, а не через криптопро
7. elian 137 27.10.20 17:56 Сейчас в теме
8. user828972 16.12.20 14:16 Сейчас в теме
В процедуре ПолучитьТокен используется Отпечаток. Откуда его взять?
9. elian 137 16.12.20 18:30 Сейчас в теме
(8) Посмотрите внимательнее в процедуре ПолучитьСертификатПоОтпечатку(). Там специально оставлен код, который отвечает на ваш вопрос. Ну или скачайте обработку целиком и там разберётесь - откуда его взять.
10. TerveRus 09.04.21 14:37 Сейчас в теме
Не очень понятно, этой обработкой можно загружать документы, точнее приемку товаров из ГИС МТ?
11. elian 137 09.04.21 14:55 Сейчас в теме
(10) Смотря что вы понимаете под словом "загружать". Эта обработка, просто образец рабочего кода. Можете взять её за основу и дописывать любую загрузку чего угодно, куда угодно. Для примера, эта обработка просто выводит информацию о документах в таблицу на своей форме.
12. progaoff 12.04.21 17:30 Сейчас в теме
на создании com объекта падает invalid class string. Понимаю что проблема с ком объектом, но не понимаю что происходит. компонента зарегистрирована. куда копать?
13. elian 137 13.04.21 09:02 Сейчас в теме
(12) я бы для начала посмотрел в реестр... действительно ли там есть такой ProgID?
16. ReactoR 28.04.21 13:07 Сейчас в теме
А пароль в коде как-то можно указать?
17. elian 137 28.04.21 22:41 Сейчас в теме
18. ReactoR 28.04.21 22:49 Сейчас в теме
(17) Пароль доступа к закрытому ключу сертификата
19. elian 137 28.04.21 22:59 Сейчас в теме
(18) не знаю, мне не пришлось решать такую задачу... пишу только о том, через что сам проходил
20. OlegK14 07.05.21 13:45 Сейчас в теме
(18)
Да можно.
oSigner.KeyPin = "Какой-то пароль";
21. CagoBHuK 32 19.08.21 14:50 Сейчас в теме
С текущей реализацией не работает. Ключ получает только по V3, список документов отправляет к V4, при этом данные не возвращаются, возвращается мусор. Если у кого-то есть свежее описание адресов для обращения, укажите, пожалуйста.
22. elian 137 04.09.21 20:04 Сейчас в теме
(21) Всё проверил. Всё работает в точности как опубликовано Пока никаких изменений не заметил.
23. CagoBHuK 32 06.09.21 12:12 Сейчас в теме
(22) Попробуйте в тестовой среде.
24. Einstein 27.10.21 18:08 Сейчас в теме
Перенес текст из статьи на 7.7.
При попытке подписи текста получаю сообщение -

Поле агрегатного объекта не обнаружено (SignCades)

Функция ПодписатьТекст(Сообщение, sThumbprint, bDetached)

......
.......
.........

// Объект CadesSignedData предоставляет свойства и методы для работы с усовершенствованной подписью.
oSignedData = СоздатьОбъект("CAdESCOM.CadesSignedData");
oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
oSignedData.Content = Сообщение;
EncodingType = 0;

// Метод добавляет к сообщению усовершенствованную подпись.
sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_TYPE, bDetached, EncodingType); //Поле агрегатного объекта не обнаружено (SignCades)

Возврат sSignedMessage; // подписанное сообщение в формате Base64

КонецФункции

Может, кто-то сможет подсказать, почему?
29. ЗС1 10.12.21 16:03 Сейчас в теме
(24)
Подскажите, получилось ли реализовать в 7.7 до конца?
31. Einstein 15.12.21 13:24 Сейчас в теме
(29) пробную реализацию контрагенту сделали через ЭДО ЛАйт, в личном кабинете ЧЗ контрагент входящие документы увидел с марками. Пока на этом остановились.
32. ЗС1 15.12.21 20:59 Сейчас в теме
(31)
Поделитесь, пожалуйста, если не сложно наработкой, чтобы не разбираться долго, как в 7ке запросную и крипто часть организовывать
26. ProkopyukIN 17 15.11.21 11:13 Сейчас в теме
с помощью обработки можно получить список табачной продукции на остатках?
или может кто знает обработку для этой цели?
user1692818; elian; +2 Ответить
27. elian 137 15.11.21 18:03 Сейчас в теме
(26) с помощью обработки можно получить опыт работы с честным знаком по апи, и пользуясь этим опытом написать свою какую-угодно обработку
28. user651124_dkozhevnikov 18.11.21 09:13 Сейчас в теме
Здравствуйте.
может кто-то в курсе, документация не дает ответа.
при вызове
curl 'https://markirovka.crpt.ru/api/v3/facade/doc/listV2?order=DESC&orderColumn=receivedAt' -H 'content-type: application/json' -H 'Authorization: Bearer <token>}'
получаю:
{"code":410,"description":"ru.crpt.common.exception.UnsupportedApiException: Устаревшее API 'GET /api/v3/facade/doc/listV2'

в коде обработки тот-же метод использован?

Спасибо.
30. ЗС1 10.12.21 16:07 Сейчас в теме
Подскажите, нет ли опыта выгрузки/загрузки документов в Честный Знак с помощью их ЭДО Лайт?
33. OlgaT_74 17.12.21 12:59 Сейчас в теме
34. tigrandis 340 20.12.21 21:12 Сейчас в теме
с табаком не работает, вообще работает только версия 3, 4 версия выдает ответ 404, а версия три корректно отрабатывает с обовью, с одеждой, но с табаком выдает пустой результат, но и ошибок нету(
35. Victor89 15.05.22 17:36 Сейчас в теме
Всем добрый день!

Использую данный алгоритм, токен получаю корректно, но документы не могу подписать (ошибка "Подпись не прошла проверку в crypto"). Кто сталкивался.

Вот пример, ПодписатьТекст(ЗашифроватьBase64(ФайлXML, "windows-1251"),Отпечаток,Истина), где ФайлXML - текстовое содержание файла XML в кодировке windows-1251.

Отпечаток получаю через:

oStore = Новый COMОбъект("CAdESCOM.Store");
перебор oStore.Certificates;

Отпечаток получают корректно, результат тот же, что и через:

ДанныеСертификата = Сертификат.ДанныеСертификата.Получить();
ск = Новый СертификатКриптографии(ДанныеСертификата);
Отпечаток = ПолучитьHexСтрокуИзДвоичныхДанных(ск.Отпечаток);


Работаю с табачкой. Кто сталкивался? Помогите, плиз. Буду благодарен
36. masik777 23.08.22 13:54 Сейчас в теме
У меня не заработала. При запуске на БП 3.0 (последней) вылазит окошко " Втавьте Носитель *** с Ид.." Хотя сертификат лежит в Контейнере. Если не трудно - подскажите, пожалуйста, куда копать..
Оставьте свое сообщение