Взаимодействие с api Честный знак (Молочная продукция)

10.09.21

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

Обзор основных примеров взаимодействия с Честным знаком по api для нетиповых конфигураций.

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

Наименование Файл Версия Размер
КомпонентаXMLDSig
. 5,66Mb
237
. 5,66Mb 237 Скачать бесплатно

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


1. Сертификаты.

На компьютере должен быть установлен криптопровайдеров (В примере будет рассмотрен Crypto Pro), для работы с сертификатами из 1С. 

 
 Получение сертификата и подписания строки

 

В новых конфигурациях, для подписания документов используется компонента XMLDSig. Ниже пример взаимодействия.

 
 Подписание строки (2 вариант) с помощью компоненты "КомпонентаXMLDSig"

 

P.S. В новых версиях 1С имеется возможность взаимодействия с сертификатами с помощью "Менеджера Криптографии" и "Сертификата Криптографии". Но информацию по их применению я так и не нашел... (Как подписывать, как прикреплять подпись, как прикрепить Открепленную подпись и т.д.). У кого получилось взаимодействовать с типовым механизмом - просьба отписаться в коммментах.

 

2. Api "Честный знак"

Для получения новых кодов маркировки и для подачи отчета о нанесении, необходимо подключение к СУЗ (Станция управления заказами). Для подключения к СУЗ необходимо получить Токен. (Статический токен больше не поддерживается с 1.10.2021, динамический имеет ограниченное время действия -10 часов).
Для получения необходимо зайти в СУЗ - Устройства - Создать устройства.

Создаем новое устройство. 
Копируем строки "OMS ID" и "Идентификатор соединения". 
Подключаемся из 1С.
 

 
 Формирование нового динамического Токена и проверка доступности СУЗ

 

 
 Подача отчета о нанесении

 

Отчет об агрегации можно формировать в самой системе "Честного знака", и в системе СУЗ. Разницы нет. Документы появятся и там и там. Ниже идет пример отправки в СУЗ:

 
 Агрегирование

 

Получение Токена системы "Честный знак", немножко отличается (Не добавляется идентификатор соединения)
 

 
 Получение Токена "Честный знак"

 

Ввод в оборот.

Документ "Ввод в оборот" создается в системе "Честный знак".
Новый документ сформируется в системе и вернет уникальный идентификатор , даже если документ содержит ошибки, при этом он может не отображаться в списке документов "Честного знака"!
Информацию о созданном документе так же можно проверить с помощью 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    180781    1545    vvmanannikov    131    

810

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

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

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

30000 руб.

16.08.2019    87855    206    85    

125

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

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

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

8970 руб.

15.12.2015    165938    677    361    

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    9692    31    8    

33

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

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

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

104000 руб.

18.03.2019    110313    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    58482    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    115960    978    564    

827
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. quazare 3586 30.08.21 20:07 Сейчас в теме
а есть ли механизм запроса остатков?
LediStile; +1 Ответить
4. user5300 1000 31.08.21 09:14 Сейчас в теме
(1) Вообще, есть един механизм, но у меня возвращается пустой результат...
Возможно у вас получится:
Функция СостояниеКодовМаркировок(ТокенДоступа)
		
	ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Новый СертификатыУдостоверяющихЦентровОС());

	HTTPСоединение = Новый HTTPСоединение("markirovka.crpt.ru",443,,,,60,ЗащищенноеСоединение);

	
	ЗаголовокHTTP = Новый Соответствие();
	ЗаголовокHTTP.Вставить("Content-Type", "application/json; charset=UTF-8");
	ЗаголовокHTTP.Вставить("Accept", "application/json");
	ЗаголовокHTTP.Вставить("Accept-Charset", "utf-8");
	ЗаголовокHTTP.Вставить("Authorization",   "Bearer " + ТокенДоступа);
	
	
	URLЗапроса = "/api/v3/true-api/cises/listV2";                 
	
	HTTPЗапрос  = Новый HTTPЗапрос(URLЗапроса, ЗаголовокHTTP);
	
	ТелоЗапроса = Новый Структура;
	ТелоЗапроса.Вставить("cisStatus", "APPLIED");   //Статус КМ (EMITTED - Эмитирован. Выпущен; APPLIED - Эмитирован. Получен; INTRODUCED - В обороте; WRITTEN_OFF Списан)                       
	ТелоЗапроса.Вставить("pg","milk");              // Товарная группа
                         
       
	ЗаписьJSON = Новый ЗаписьJSON();
	
    ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, "");
    ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
    ЗаписатьJSON(ЗаписьJSON, ТелоЗапроса);
    
    ТекстJSON = ЗаписьJSON.Закрыть();
	
	HTTPЗапрос.УстановитьТелоИзСтроки(ТекстJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
	
	Ответ = HTTPСоединение.ВызватьHTTPМетод("GET",HTTPЗапрос);
	
	ИДДок = Ответ.ПолучитьТелоКакСтроку();

	Чтение = Новый ЧтениеJSON;
	Чтение.УстановитьСтроку(ИДДок);
	
	РезультатРазбора = ПрочитатьJSON(Чтение, ложь);

	
	Возврат РезультатРазбора;
	

	
КонецФункции
Показать


Возвращает список КМ с указанным статусом "Эмитирован выпущен"
7. user5300 1000 31.08.21 17:02 Сейчас в теме
(1) Вот рабочий пример, можно посмотреть список КМ с отбором (Например со статусом - Эмитирован.Выпущен)

&НаКлиенте
Функция СвойствоКМ(ТокенДоступа)
			
	ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Новый СертификатыУдостоверяющихЦентровОС());

	HTTPСоединение = Новый HTTPСоединение("markirovka.crpt.ru",443,,,,60,ЗащищенноеСоединение);

	ЗаголовокHTTP = Новый Соответствие();
	ЗаголовокHTTP.Вставить("Content-Type", "application/json; charset=UTF-8");
	ЗаголовокHTTP.Вставить("Accept", "application/json");
	ЗаголовокHTTP.Вставить("Accept-Charset", "utf-8");
	ЗаголовокHTTP.Вставить("Authorization",   "Bearer " + ТокенДоступа);
		
	ПараметрыURL = Новый Массив;         ///Отбор запроса
	ПараметрыURL.Добавить("pg=milk");                               ///Группа - молочная продукция
	ПараметрыURL.Добавить("cisStatus=EMITTED");               ///Статус - Эмитирован.Выпущен
	ПараметрыURL.Добавить("limit=20");                              ////Лимит списка - 20 
	
	
	///api/v3/true-api/cises/listV2?pg=milk&cisStatus=EMITTED&limit=999
	URLЗапроса = СтрШаблон("/api/v3/true-api/cises/listV2?%1",СтрСоединить(ПараметрыURL, "&"));
	
	HTTPЗапрос  = Новый HTTPЗапрос(URLЗапроса, ЗаголовокHTTP);
		
	Ответ = HTTPСоединение.Получить(HTTPЗапрос);
	
	ИДДок = Ответ.ПолучитьТелоКакСтроку();

	Чтение = Новый ЧтениеJSON;
	Чтение.УстановитьСтроку(ИДДок);
	
	РезультатРазбора = ПрочитатьJSON(Чтение, ложь);
		
	
	Возврат РезультатРазбора;
	
КонецФункции

Показать
48. bprogs 188 23.12.21 12:28 Сейчас в теме
(1) Добрый день здесь можно получить остатки
https://infostart.ru/public/1575112/
2. fenixnow 268 31.08.21 08:06 Сейчас в теме
Вы токен получаете не для СУЗа, а для ГИСМ.
Посмотрите в пункт 10.3.2.2 документации СУЗ Облако.
Для СУЗа токен короткий и не является JWT
3. user5300 1000 31.08.21 08:44 Сейчас в теме
(2) Согласен, Токен для СУЗа получается короткий и время действия не разобрать, а вот Токен ГИС МТ можно разобрать, тем же механизмом
5. quazare 3586 31.08.21 09:41 Сейчас в теме
Что за токен суза? Зачем он нужен? Всегда работали напрямую с токенами гис
6. user5300 1000 31.08.21 09:49 Сейчас в теме
(5) Коды маркировок где вы получаете ? Только в СУЗе , как и подача отчета о нанесении
8. quazare 3586 31.08.21 17:17 Сейчас в теме
9. MegasXXX 2 03.09.21 16:16 Сейчас в теме
Поставлю плюсик! Хорошая статья! Писал свою интеграцию на 8.2 с автоматическим получением отправкой.

"На компьютере должен быть установлен криптопровайдеров (В примере будет рассмотрен Crypto Pro)" - Кстати на сайте Крипто Про достаточно скачать компоненту.

"У кого получилось взаимодействовать с типовым механизмом - просьба отписаться в коммментах." - у меня не получилось, у меня платформа 8.2, и в самой документации с ЧЗ именно Ваш пример взаимодействия с криптографией.

Мен ещё очень сильно нравятся 2 дметода.
1) - Это информация по контрагенту - Зарегестрирован/Не зарегестрирован
2) - Информация по Коду маркировки: Состав агрегата(если агрегат), кому пренадлижит, в каком документе находится (если в пути)
user5300; +1 Ответить
10. user5300 1000 06.09.21 10:56 Сейчас в теме
(9)
Есть еще пример подписания документов с помощью компоненты "КомпонентаXMLDSig" (В последних бсп используется она), с ней немного проще, но результат такой же)

Информация по контрагенту пока неактуальна для молочки )) (До 01.09.2022) -За год еще много всего поменяется...

(7) Метод получения Информации по КМ, выложил в комментариях кстати тоже (В кратком варианте, так же можно получить более детальную информацию)
MegasXXX; +1 Ответить
13. CD_SVEN 10.09.21 10:12 Сейчас в теме
(10)Подскажите код подписания документа, который указан в вашем примере)
ПодписанныйДокумент = ПодписатьСертификатомДокумент(           ///Необходимо открепить подпись!
				ПолучитьСертификаты(2,СертификатCOM),ТекстXML64,ОткрепленнаяПодпись);
14. user5300 1000 10.09.21 10:14 Сейчас в теме
(13) самый первый пункт )
"Получение сертификата и подписания строки"
15. user5300 1000 10.09.21 10:15 Сейчас в теме
(13) Функция называется "ПодписатьСертификатомСтроку()"
16. CD_SVEN 10.09.21 12:43 Сейчас в теме
(15)Подскажите может вы сталкивались, мне необходимо написать метод по "формированию наборов" для товаров легкой промышленности,я пытаюсь переделать вашу процедуру "Ввод в оборот". возвращается ошибка "405 Not allowed"
17. user5300 1000 10.09.21 12:59 Сейчас в теме
(16)
405 Not allowed

А описание ошибки есть?
18. CD_SVEN 10.09.21 13:01 Сейчас в теме
(17)щас поправил адред сервера, появилась другая ошибка
{"error_message":"Метод с указанным URL не найден"}
19. CD_SVEN 10.09.21 13:02 Сейчас в теме
(17) вот строка URLЗапроса
URLЗапроса = "/api/v3/true-api/lk/documents/aggregation-set/create?pg=clothes";
20. user5300 1000 10.09.21 13:22 Сейчас в теме
(19) Вот, примерно так должно быть:


Функция П()
ИННОрганизации = "11";	
	ТокенДоступа = "";
	
	///Формирование основного текста
	ТелоЗапроса = Новый Структура;
    ТелоЗапроса.Вставить("participantId",		ИННОрганизации);           ///ИНН участника оборота товаров  
    ТелоЗапроса.Вставить("aggregationUnits", Новый Массив);
	
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(СтрутураФорматированнойТаблицы);
	
	МассивСтруктур = ПрочитатьJSON(ЧтениеJSON, ложь);
		
	Для каждого стр из АгрегированныеКоды Цикл	 ///Дерево значений (Код агрегации - коды маркировок)
			СтрокаТЧ = Новый Структура;
			СтрокаТЧ.Вставить("unitSerialNumber",				стр.КодАгрегации); 				///Код идентификации набора
			СтрокаТЧ.Вставить("aggregationType", 				"SETS_AGGREGATION");               	
			СтрокаТЧ.Вставить("sntins", 						Новый Массив); 
			Для каждого КМ из стр.строки цикл
				СтрокаТЧ.sntins.Добавить(КМ.КодМаркировки);
			КонецЦикла;
			
			ТелоЗапроса.products.Добавить(СтрокаТЧ);
    КонецЦикла;
    ЗаписьJSON = Новый ЗаписьJSON();
    ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, "");
    ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
    
    ЗаписатьJSON(ЗаписьJSON, ТелоЗапроса);
    
    ТекстJSON = ЗаписьJSON.Закрыть();
	
	ТекстXML64 = ЗашифроватьBase64(ТекстJSON, КодировкаТекста.UTF8);
	
	///Подпись текста
	ОткрепленнаяПодпись = Истина;

	ПодписанныйДокумент = ПодписатьДанные(Сертификат,ТекстJSON,ОткрепленнаяПодпись);		
	
	
	///Отправка текста
	ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Новый СертификатыУдостоверяющихЦентровОС());

	HTTPСоединение = Новый HTTPСоединение("markirovka.crpt.ru",443,,,,60,ЗащищенноеСоединение);
	
	ЗаголовокHTTP = Новый Соответствие();
	ЗаголовокHTTP.Вставить("Content-Type", "application/json; charset=UTF-8");
	ЗаголовокHTTP.Вставить("Accept", "application/json");
	ЗаголовокHTTP.Вставить("Accept-Charset", "utf-8");
	ЗаголовокHTTP.Вставить("Authorization",   "Bearer " + ТокенДоступа);
	
	URLЗапроса = "/api/v3/true-api/lk/documents/create?pg=clothes";

	
	HTTPЗапрос  = Новый HTTPЗапрос(URLЗапроса, ЗаголовокHTTP);
	
	ТелоЗапроса = Новый Структура;
	ТелоЗапроса.Вставить("document_format", "MANUAL");                           //Тип документа (для json указать MANUAL)
    ТелоЗапроса.Вставить("product_document",ТекстXML64);                         //Документ без подписи
    ТелоЗапроса.Вставить("signature",       ПодписанныйДокумент);                //Документ с подписью
	ТелоЗапроса.Вставить("type",  			"SETS_AGGREGATION");               // Формирование наборов JSON (MANUAL). json;    
    ТелоЗапроса.Вставить("product_group",  	"clothes");                             //Товарная группа - одежда
       
	ЗаписьJSON = Новый ЗаписьJSON();
	
    ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, "");
    ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
    ЗаписатьJSON(ЗаписьJSON, ТелоЗапроса);
    
    ТекстJSON = ЗаписьJSON.Закрыть();
	
	HTTPЗапрос.УстановитьТелоИзСтроки(ТекстJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
	
    Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
	
	ИДДок = Ответ.ПолучитьТелоКакСтроку();

	Возврат ИДДок;
КонецФункции
Показать
21. CD_SVEN 10.09.21 14:15 Сейчас в теме
(20)
ЧтениеJSON.УстановитьСтроку(СтрутураФорматированнойТаблицы);

можно небольшое уточнее что тут должно быть?
22. user5300 1000 10.09.21 14:17 Сейчас в теме
(21) аа, забыл..

СтрутураФорматированнойТаблицы - Это просто дерево значений в json (Для передачи с сервера на клиент)

 ЧтениеJSON = Новый ЧтениеJSON;
    ЧтениеJSON.УстановитьСтроку(СтрутураФорматированнойТаблицы);
    
    АгрегированныеКоды = ПрочитатьJSON(ЧтениеJSON, ложь);
        
    Для каждого стр из АгрегированныеКоды Цикл
23. CD_SVEN 10.09.21 15:49 Сейчас в теме
11. CD_SVEN 10.09.21 10:01 Сейчас в теме
Здравствуйте, подскажите функцию "ПодписатьСертификатомДокумент", в вашем мануале нет этой функции.
12. user5300 1000 10.09.21 10:12 Сейчас в теме
(11) Здравствуйте. Первый пункт: "Получение сертификата и подписания строки" - там описана функция
24. CD_SVEN 13.09.21 08:16 Сейчас в теме
(22) доброе утро. Появился вопрос, я смог отправить запрос на создание документа "Формирование набора", документ создался на на сайте ЧЗ вышла ошибка
01: Не заполнено поле "Код" в документе "Формирование наборов".

с чем может быть связана эта ошибка?
Прикрепленные файлы:
25. user5300 1000 13.09.21 08:27 Сейчас в теме
(24) Что за код ?

Код идентификации набора?

Код типа агрегации ?


https://static.crpt.tech/documents/True_API.pdf (стр. 92)
26. CD_SVEN 13.09.21 08:30 Сейчас в теме
(25) у вас есть какая нибудь функция которая преобразует коды моркировки для передачи, скажем так в нужный формат я в первые с эти столкнулся, я передал в ЧЗ код такой, какой хранит сама 1с то есть со скобками и тд.
27. user5300 1000 13.09.21 08:36 Сейчас в теме
(26) Ну по молочной продукции всё просто:

КодыМаркировок = РезультатРазбора.codes;
...
ПолныйКодМаркировки = новый ХранилищеЗначения(КодМаркировки);
СокращенныйКодМаркировки = Лев(КодМаркировки,24);
28. CD_SVEN 13.09.21 08:43 Сейчас в теме
(27)
(01)04602443086596(21)oby;lFH,sT;TB

вот мой код для легкой промышленности который хранится в 1с, подскажи пожалуйста как он должен выглядить в момент отправки если вот такой шаблон
01 + GTIN + 21 + SERIAL (13 chars) 

Заранее огромное спасибо)
29. user5300 1000 13.09.21 08:46 Сейчас в теме
(28)
01 + GTIN + 21
Вот это по идее (До спец символа GS). 24 символов должно получится
30. CD_SVEN 16.09.21 11:10 Сейчас в теме
(29) и снова здравствуйте, подскажите эта строка должна работать в веб клиенте? база размещена на веб сервер Апачи, я подключаюсь через тонкий клиент, в тонком клиенте данный запрос не видит сертификаты установленные на пк.
 comStore = Новый COMОбъект("CAdESCOM.Store");
31. user5300 1000 16.09.21 11:16 Сейчас в теме
(30) Здравствуйте. С данным вопросом я не смогу помочь...

Возможно, если криптопро установлен на сервере, необходимо получить сертификат со стороны сервера.

 ///Процедура НаКлиенте.

 comStore = Новый COMОбъект("CAdESCOM.Store");	
 comStore.Open(
        2, // StoreLocation - CAPICOM_CURRENT_USER_STORE.   ///Вам нужен CAPICOM_LOCAL_MACHINE_STORE   (Не помню точно какой параметр..)
        "MY", // StoreName
        0); // OpenMode - CAPICOM_STORE_OPEN_READ_ONLY.
32. CD_SVEN 16.09.21 11:45 Сейчас в теме
(31) крипто-про стоит и на сервере и на моей машине
33. CD_SVEN 21.09.21 09:40 Сейчас в теме
(31)
 comStore = Новый COMОбъект("CAdESCOM.Store");    
 comStore.Open(
        2, // StoreLocation - CAPICOM_CURRENT_USER_STORE.   ///Вам нужен CAPICOM_LOCAL_MACHINE_STORE   (Не помню точно какой параметр..)
        "MY", // StoreName
        0); // OpenMode - CAPICOM_STORE_OPEN_READ_ONLY.

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

а эта функция как то не правильно подписывает данные для отправки, кто может помочь в данном вопросе
34. user5300 1000 21.09.21 11:51 Сейчас в теме
(33)
как то не правильно подписывает данные

Что значит не правильно?
На данный момент именно этот механизм используется в типовых конфигурациях, в том числе и у меня
35. CD_SVEN 21.09.21 12:11 Сейчас в теме
(34)
33: Проверка электронной подписи не пройдена.
в ЛЧ ЧЗ в документе такая ошибка, сертификат используется один и тот же
36. user5300 1000 21.09.21 12:15 Сейчас в теме
(35) Возможно там требуется открепленная подпись

 ПодписатьДанные(Данные,Откреп = Ложь) 


Вы отправляли с прикрепленной по умолчанию , скорее всего
37. CD_SVEN 21.09.21 12:17 Сейчас в теме
(36)
&НаСервере
Функция ПолучитьСертификатBase64Строку() Экспорт 

    ///Получим двоичные данные сертификата
  
    ДанныеСертификата = Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования.НайтиПоРеквизиту("Отпечаток","123456").ДанныеСертификата.Получить();    
    
    ///Зашифруем в Base64
    СтрокаBase64 = Base64Строка(ДанныеСертификата);
    
    Значение = СтрЗаменить(СтрокаBase64, Символы.ВК, "");
    Значение = СтрЗаменить(Значение, Символы.ПС, "");
    
    Возврат Значение ;

КонецФункции
Показать


Функция ПодписатьДанные(Данные,Откреп = Ложь)
 
   ///Получим внешнюю компоненту из общих макетов (КомпонентаXMLDSig)
   // ВнешняяКомпонента = КомпонентаПодписи();
    ВнешняяКомпонента = ОбщегоНазначения.ПодключитьКомпонентуИзМакета("XMLDSignAddIn",
		"Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Макет.КомпонентаXMLDSig");
	
    Если ВнешняяКомпонента = Неопределено Тогда
        возврат Неопределено;
    КонецЕсли;
    
    ///Получим отфарматированный сертификат (Двоичные данные, преобразованные в base64)
    СертификатКриптографииBase64 = ПолучитьСертификатBase64Строку();
    
    Если СертификатКриптографииBase64 = Неопределено Тогда
        возврат Неопределено;
    КонецЕсли;
    
    Попытка
        АтрибутSignatureValue = ВнешняяКомпонента.CMSSign(Данные,   ///Подписываемые данные
                СертификатКриптографииBase64,     ///Сертификат в Base64
                "",           ///Пароль сертификата
                0,            //тип подписи "CAdES-BES"
                Откреп,      //открепленная
                17);        //РежимВключенияСертификатовКриптографии.ВключатьПолнуюЦепочку 
    Исключение
        ВызватьИсключение НСтр("ru = 'Ошибка вызова метода CMSSign компоненты XMLDSig.'") + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
    КонецПопытки;
    
    ///Преобразуем подпись в Base64Строку
    Подпись = Base64Строка(АтрибутSignatureValue);
    Подпись = СтрЗаменить(Подпись, Символы.ПС, "");
    Подпись = СтрЗаменить(Подпись, Символы.ВК, "");
    
    Возврат Подпись;        ///Подписанные данные
    
КонецФункции
Показать
38. user5300 1000 21.09.21 12:25 Сейчас в теме
(37)


///Ввод в оборот
.....

 
    ТекстJSON = ЗаписьJSON.Закрыть();
	
	///ТекстXML64 = ЗашифроватьBase64(ТекстJSON, КодировкаТекста.UTF8);    ///Для 1 варианта текст преобразовывается
	
///Подпись текста
	ОткрепленнаяПодпись = Истина;
	//ПодписанныйДокумент = ПодписатьСертификатомДокумент(           ///Необходимо открепить подпись!   ///1 вариант
	//			ПолучитьСертификаты(2,СертификатCOM),ТекстXML64,ОткрепленнаяПодпись);

         ПодписанныйДокумент  = ПодписатьДанные(ТекстJSON ,ОткрепленнаяПодпись )                                     ///2 вариант

Показать
39. lsnr 06.10.21 10:40 Сейчас в теме
Попробовал выполнить Ваш код. Затык на :

Метод объекта не обнаружен (SignCades)
ПодписанныеДанные = comSignedData.SignCades(

в Функция ПодписатьСертификатомСтроку(
40. lsnr 28.10.21 15:47 Сейчас в теме
В функции ОтправитьОтчетОНанесении() Вы оставили комментарий:
///P.S. Обычно таблицу с кодом маркировки хранят на сервере, для передачи таблицы лучше использовать ЗаписьJSON и ЧтениеJSON
///так как код маркировки содержит спец символ GS1, который будет выдавать ошибку при передаче.

Можно пояснить - как использовать ЗаписьJSON и ЧтениеJSON чтобы передать таблицу значений с сервера на клиент?
41. user5300 1000 29.10.21 09:21 Сейчас в теме
(40) Таблицу значений просто так нельзя передать )
Приведу свой пример передачи:
&НаКлиенте
//Ссылка на документ с таблицей кодов маркировок
Функция ПодготовитьДокументыДляПодачиВЧестныйЗнак(Ссылка,Сертификат,СрокГодности,Номенклатура) Экспорт
	
	Результат = новый Массив;
	
	МассивТаблицыJSON = ПодготовитьДокументыДляПодачиВЧестныйЗнакСЕРВЕР(Ссылка);
	
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(МассивТаблицыJSON);
	
	МассивТаблицыВыгрузки = ПрочитатьJSON(ЧтениеJSON, ложь);
	
	Для каждого стр из МассивТаблицыВыгрузки цикл		
			
		ОтветОтправки = ОтправитьОтчетОНанесении(СрокГодности,стр.КодМаркировки,КодМаркировки.ПолныйКодМаркировки,Номенклатура,Сертификат);
		Результат.Добавить(ОтветОтправки);
		
	КонецЦикла;
	 
	Возврат Результат;
	
КонецФункции

&НаСервере
Функция ПодготовитьДокументыДляПодачиВЧестныйЗнакСЕРВЕР(Ссылка) Экспорт
	
	Результат = новый Массив;	
	 
	Таблица = Ссылка.КодыМаркировок.Выгрузить();
	
	Для каждого стр из Таблица цикл					
		
		Результат.Добавить(новый Структура("КодМаркировки,ПолныйКодМаркировки",стр.КодМаркировки,стр.ПолныйКодМаркировки.Получить()));

	КонецЦикла;
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();  
	ЗаписатьJSON(ЗаписьJSON, Результат);            
	МассивТаблицыJSON = ЗаписьJSON.Закрыть();

	Возврат МассивТаблицыJSON;
	
КонецФункции

Показать


Коды маркировок хранятся в ХранилищеЗначений, и получить их можно на сервере, а потом передать на клиент. При передачи возникает ошибка из-за спец. символа gs1, поэтому конвертируется в JSON при передаче
42. lsnr 04.11.21 21:01 Сейчас в теме
А как, в каком виде лучше хранить полный код маркировки в 1с? В реквизите типа Строка или Хранилище значений?
43. user5300 1000 05.11.21 08:03 Сейчас в теме
(42) Рекомендуется в Хранилище значений
44. diar01 45 23.11.21 11:18 Сейчас в теме
Подскажите, пожалуйста, в
Функция ПодписатьСертификатомСтроку(ВыбранныйСертификат, СтрокаДляПодписи, Открепл)
что здесь СтрокаДляПодписи ?
45. user5300 1000 23.11.21 13:48 Сейчас в теме
(44)

СтрокаДляПодписи - это полученные данные из Честного знака, которые необходимо подписать и отправить повторно, но с подписью.
Пример(Описано в статье выше):

/// Сначала получаете данные которые необходимо подписать в дальнейшем
        ИдентификаторСоединения = "Ваш ИД";	
	Сервер = "markirovka.crpt.ru";	
	СертификатCOM = ПолучитьСертификаты();  ///Необходимо выбрать сертификат из списка 

	// Получение данных для получения токена
	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;   ///Содержит зашифрованные данные, необходимые для подписи

Показать

///Затем, эти же данные пописываете (В зашифрованном виде) и отправляете повторно
	// Подписание данных для получения токена
	ПодписанныеДанные = ПодписатьСертификатомСтроку(
				СертификатCOM,
				ЗашифроватьBase64(ДанныеДляПолученияТокена, КодировкаТекста.UTF8), /// Вот это
Ложь); 
46. lsnr 12.12.21 22:26 Сейчас в теме
Подскажите пожалуйста, при вводе в оборот, в ЧЗ должен отправляться полный код маркировки или обрезанный, без "крипто-хвоста"? Тот же самый вопрос и при формировании отчета о нанесении - нужен полный код или обрезанный? И в том, и в другом случае документы на ЧЗ создаются со статусом загрузки "Обработан с ошибками" - "03: Недопустимый формат значения" - при попытке отправить полный код маркировки.
47. user5300 1000 13.12.21 08:05 Сейчас в теме
(46) При вводе отправляется обрезанный код, без "крипто-хвоста"
При подаче отчета о нанесении - полный код
zyxell; lsnr; +2 Ответить
49. lsnr 31.12.21 08:14 Сейчас в теме
Добрый день. С Наступающим Вас! Подскажите пожалуйста - при подаче отчета о нанесении существует возможность подписывать документ о нанесении:
Если Сертификат <> Неопределено Тогда
ПодписанныйДокумент = ПодписатьСертификатомДокумент(
ПолучитьСертификаты(Истина,Истина,Сертификат),
ЗашифроватьBase64(ТекстJSON, КодировкаТекста.UTF8),Ложь);

ЗаголовокHTTP.Вставить("X-Signature", ПодписанныйДокумент);
КонецЕсли;
Но и в этом случае статус документа в ЛК остается "не подписан".. Почему?
Прикрепленные файлы:
50. Виль 23 21.01.22 16:35 Сейчас в теме
Крик души .... Голову сломал... Считываю марку - не могу отправить отчет о нанесении, Хотел запросить список о кодах - ерунду возвращает, но никак не список... Обязательно так надо всё усложнять???
51. user5300 1000 21.01.22 16:41 Сейчас в теме
(50) Что именно не получается?
Процедура "Отправка отчета о нанесении" (Выше в статье) всё еще работает ...

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

Что получаете в ответе ?
54. zyxell 05.03.22 14:25 Сейчас в теме
(47)
Добрый день!
Подскажите, пжл, такой момент.
1. Есть коды, которые сами заказываем из 1С, распечатываем, наклеиваем на продукцию, успешно отправляем отчет о нанесении, т.к. в РС ПулКодовМаркировкиСУЗ есть записи по этим кодам.
2. Есть упаковка с уже нанесенной маркой в типографии, при считывании получаем КМ "(01)04600712007234(21)5K_>,j". Где брать полный код маркировки, т.к. он требуется для передачи отчета о нанесении?
55. user5300 1000 08.03.22 08:04 Сейчас в теме
(54)
(01)04600712007234(21)5K_>,j
- Это и есть Полный код, вам надо его преобразовать... должно получится:
0104600712007234(СимволGS1)5K_>,j

24 или 25 символов:

а) первая группа идентифицируется идентификатором применения AI="01", состоит из 14 цифр и содержит код товара;

б) вторая группа идентифицируется идентификатором применения AI="21", состоит из 6 символов (цифр, строчных и прописных букв латинского алфавита, а также специальных символов) и содержит индивидуальный серийный номер упаковки молочной продукции и завершается символом-разделителем FNC1 (ASCII 29);

в) третья группа идентифицируется идентификатором применения AI="93", состоит из 4 символов (цифр, строчных и прописных букв латинского алфавита, а также специальных символов) и содержит код проверки.
56. zyxell 10.03.22 09:05 Сейчас в теме
(55)
Большое спасибо за ответ, очень помогли!
И отдельное спасибо за очень нужную статью!
user5300; +1 Ответить
73. harmless 27.11.23 06:56 Сейчас в теме
(55) Только ASCII 29 - это <GS1>, а <FNC1> - ASCII 232 (только его просто так не вставить, вроде как)
52. Виль 23 22.01.22 20:09 Сейчас в теме
{"success":false,"globalErrors":[{"error":"Неверный формат кодов маркировки 0104650128580227215RVS-E93WCKu: коды маркировки товара должны содержать полный код маркировки, включая код проверки","errorCode":7360}]}


Код маркировки в json переводил процедурой из УТ11 ШтрихкодированиеИСКлиентСервер.ШтрихкодВФорматеGS1("0104650128580227215RVS-E93WCKu");

Результат тот же
53. Виль 23 25.01.22 08:15 Сейчас в теме
Всё разобрался - GS вычищался.
Благодарю за статью. Очень нужная
zyxell; user5300; +2 Ответить
57. Razlagutt 22.04.22 13:36 Сейчас в теме
Здравствуйте!
1С:Предприятие 8.3 (8.3.20.1674)
Управление торговлей, редакция 11 (11.4.14.129)

У меня почему-то ОбъектКомпоненты.CMSSign падает с ошибкой "Ошибка вызова метода CMSSign компоненты ExtraCryptoAPI.
Ошибка криптографии : ( =1)."

Кто-нибудь сталкивался?
58. VachKirp 388 02.08.22 17:50 Сейчас в теме
(57) Добрый день,
Удалось найти способ исправления ?
59. Taisa07 09.09.22 23:35 Сейчас в теме
Добрый день!
С выбытием молочной продукции никто не сталкивался?
60. Rotmayer 08.11.22 03:09 Сейчас в теме
Всем привет!

Использую сервис честного знака для подписания строки сертификатом, токен создаётся корректный

Если же подписываю строку программно через 1С, то кол-во символов через сервис и через 1С код различается из-за этого генерируется неверный токен, пишет ошибку: Токен не действителен. Необходимо получить новый токен аутентификации

То есть ошибка где-то здесь:

&НаКлиенте
Функция ПодписатьСертификатомСтроку(ВыбранныйСертификат, СтрокаДляПодписи, Открепл)
	Попытка
		comStore = Новый COMОбъект("CAdESCOM.Store");
		comCPSigner = Новый COMОбъект("CAdESCOM.CPSigner"); // Аналог "CAPICOM.Signer".
		comSignedData = Новый COMОбъект("CAdESCOM.CadesSignedData");
	Исключение
		Сообщить("Не установлен КриптоПро!");
		Возврат Неопределено;
	КонецПопытки;
	
	СтрокаВBase64 = Истина;
	
	comStore.Open(
	2, // StoreLocation - CAPICOM_CURRENT_USER_STORE.
	"MY", // StoreName
	0); // OpenMode - CAPICOM_STORE_OPEN_READ_ONLY.
	comCertificates = comStore.Certificates;
	comStore.Close();
	comStore = Неопределено;
	
	comCPSigner.Certificate = ВыбранныйСертификат;
	
	Если СтрокаВBase64 Тогда // Очень важно!
		comSignedData.ContentEncoding = 1; // CADESCOM_BASE64_TO_BINARY
		//Иначе // Так и остаётся 0 - CADESCOM_ENCODE_BINARY
	КонецЕсли;
	
	comSignedData.Content = СтрокаДляПодписи;
	ПодписанныеДанные = comSignedData.SignCades(
	comCPSigner, // Signer
	1, // CadesType, CADESCOM_CADES_BES.
	Открепл, // bDetached - "флаг открепленной подписи (исходное сообщение не включается в итоговый CMS-контейнер)".
	); // EncodingType - по умолчанию CAPICOM_ENCODE_BASE64.
	
	comCPSigner = Неопределено;
	comSignedData = Неопределено;
	
	Возврат УбратьСимволы1013(ПодписанныеДанные);
	
КонецФункции
Показать


На выходе даёт различный результат по сравнению с сервисом честного знака
65. user763959 01.02.23 00:51 Сейчас в теме
(60) Добрый день

Как-то решили эту проблему, я с такой-же столкнулся.
67. Rotmayer 01.02.23 03:25 Сейчас в теме
(65)

Вот моя обработка, строго там код не судите, я пол года в 1ске :)

Там ещё сертификаты должны быть ПК установлены

пс. продублирую своё сообщение ниже

Здравствуйте, да, решил проблему, уже не помню как. Но все же через неделю мук получилось написать внешнюю обработку, которая ищет товар в честном знаке по gtin

Чуть позже скину обработку
Прикрепленные файлы:
ЧЕСТНЫЙ ЗНАК БУХ КОРП.epf
68. user763959 01.02.23 04:10 Сейчас в теме
61. edyardg 22 11.11.22 08:53 Сейчас в теме
Добрый день.

Подскажите, как из 1С можно запросить в честном знаке зарегистрировался клиент или нет?
62. user5300 1000 11.11.22 09:00 Сейчас в теме
(61) Сам пока не пробовал,
Метод на странице 788 (Раздел 9.1)

Возвращает текст ответа:


1. если участник оборота товаров не зарегистрирован в ЭДО Лайт, то возвращается текст
сообщения об ошибке: "Организация не зарегистрирована";
2. если участник оборота товаров зарегистрирован в ЭДО Лайт, но в качестве основного ЭДО
провайдера указан не ЭДО Лайт, то возвращается текст сообщения об ошибке: "УОТ
использует другого оператора ЭДО";
3. если участник оборота товаров зарегистрирован в ЭДО Лайт и в качестве основного ЭДО
провайдера указан ЭДО Лайт, то возвращается ID участник оборота товаров вместе с
префиксом "2LT-" формата "2LT-<ID участника обмена ЭДО Лайт>" (например: 2LT572279911).
Прикрепленные файлы:
True API (приоритетно к интеграции).pdf
63. edyardg 22 11.11.22 09:29 Сейчас в теме
Не все организации пользуются ЭДО Лайт, у честного знака на сайте hhttps://xn--80ajghhoc2aj1c8b.xn--p1ai/business/spisokuot/ вводишь инн и он показывает зарегистрирован в честном знаки или нет. По API как можно это сделать?
64. user5300 1000 11.11.22 09:33 Сейчас в теме
(63) Вы прочитали предыдущий коммент ? (Пункт 2.)
66. Rotmayer 01.02.23 01:18 Сейчас в теме
(65)
(32)
(65)

Здравствуйте, да, решил проблему, уже не помню как. Но все же через неделю мук получилось написать внешнюю обработку, которая ищет товар в честном знаке по gtin

Чуть позже скину обработку
69. avponitkin@yandex.ru 12.10.23 12:22 Сейчас в теме
На 12.10.23 Функция ПолучитьТокенЧестныйЗнак() выдает структуру с ключем mchdUser ( булево) и наименованием организации. Свойства Токен нет.
70. user5300 1000 12.10.23 13:09 Сейчас в теме
(69) Нет, функция полностью рабочая, (Работает на "живой" базе).
Проверяйте у себя, возможно что то неправильно задаете
71. parfumer34 16.10.23 15:44 Сейчас в теме
(69)
Была такая ошибка. Надо использовать методы True-api. Еще в августе оказывается было письмо от ЧЗ с текстом "За Вами была замечена активность по использованию методов API ГИС МТ (facade), которые будут отключены.
Уведомляем о необходимости заблаговременно выполнить переинтеграцию решений на использование методов True API."
72. user5300 1000 16.10.23 15:51 Сейчас в теме
(71) Методы меняются у ЭДО Лайта (Там нужно переподключить True-api) а у ЧЗ методы такие же (Те что в статье описано)
Оставьте свое сообщение