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

Публикация № 1506206 30.08.21

Интеграция - WEB-интеграция

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

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


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

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

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

 

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

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

 

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

 

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

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

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

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

 

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

 

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

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

 

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

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

 

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

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

 
 Ввод в оборот 

 

 
 Свойство документа "Честного знака" по идентификатору

Можно узнать информацию любого вида документа системы "Честный знак" (Ввод в оборот, списание, агрегирование и т.д.) За исключением информации об "Отчете о нанесении".

 
 Текущий баланс в системе "Честный знак"

 

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

Наименование Файл Версия Размер
КомпонентаXMLDSig

. 5,66Mb
155
. 5,66Mb 155 Скачать бесплатно

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. quazare 2999 30.08.21 20:07 Сейчас в теме
а есть ли механизм запроса остатков?
LediStile; +1 Ответить
4. user5300 892 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 892 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. kucar_ip 80 23.12.21 12:28 Сейчас в теме
(1) Добрый день здесь можно получить остатки
https://infostart.ru/public/1575112/
2. fenixnow 257 31.08.21 08:06 Сейчас в теме
Вы токен получаете не для СУЗа, а для ГИСМ.
Посмотрите в пункт 10.3.2.2 документации СУЗ Облако.
Для СУЗа токен короткий и не является JWT
3. user5300 892 31.08.21 08:44 Сейчас в теме
(2) Согласен, Токен для СУЗа получается короткий и время действия не разобрать, а вот Токен ГИС МТ можно разобрать, тем же механизмом
5. quazare 2999 31.08.21 09:41 Сейчас в теме
Что за токен суза? Зачем он нужен? Всегда работали напрямую с токенами гис
6. user5300 892 31.08.21 09:49 Сейчас в теме
(5) Коды маркировок где вы получаете ? Только в СУЗе , как и подача отчета о нанесении
8. quazare 2999 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 892 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 892 10.09.21 10:14 Сейчас в теме
(13) самый первый пункт )
"Получение сертификата и подписания строки"
15. user5300 892 10.09.21 10:15 Сейчас в теме
(13) Функция называется "ПодписатьСертификатомСтроку()"
16. CD_SVEN 10.09.21 12:43 Сейчас в теме
(15)Подскажите может вы сталкивались, мне необходимо написать метод по "формированию наборов" для товаров легкой промышленности,я пытаюсь переделать вашу процедуру "Ввод в оборот". возвращается ошибка "405 Not allowed"
17. user5300 892 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 892 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 892 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 892 10.09.21 10:12 Сейчас в теме
(11) Здравствуйте. Первый пункт: "Получение сертификата и подписания строки" - там описана функция
24. CD_SVEN 13.09.21 08:16 Сейчас в теме
(22) доброе утро. Появился вопрос, я смог отправить запрос на создание документа "Формирование набора", документ создался на на сайте ЧЗ вышла ошибка
01: Не заполнено поле "Код" в документе "Формирование наборов".

с чем может быть связана эта ошибка?
Прикрепленные файлы:
25. user5300 892 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 892 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 892 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 892 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 892 21.09.21 11:51 Сейчас в теме
(33)
как то не правильно подписывает данные

Что значит не правильно?
На данный момент именно этот механизм используется в типовых конфигурациях, в том числе и у меня
35. CD_SVEN 21.09.21 12:11 Сейчас в теме
(34)
33: Проверка электронной подписи не пройдена.
в ЛЧ ЧЗ в документе такая ошибка, сертификат используется один и тот же
36. user5300 892 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 892 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 892 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 892 05.11.21 08:03 Сейчас в теме
(42) Рекомендуется в Хранилище значений
44. diar01 43 23.11.21 11:18 Сейчас в теме
Подскажите, пожалуйста, в
Функция ПодписатьСертификатомСтроку(ВыбранныйСертификат, СтрокаДляПодписи, Открепл)
что здесь СтрокаДляПодписи ?
45. user5300 892 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 892 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 892 21.01.22 16:41 Сейчас в теме
(50) Что именно не получается?
Процедура "Отправка отчета о нанесении" (Выше в статье) всё еще работает ...

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

Что получаете в ответе ?
54. zyxell 05.03.22 14:25 Сейчас в теме
(47)
Добрый день!
Подскажите, пжл, такой момент.
1. Есть коды, которые сами заказываем из 1С, распечатываем, наклеиваем на продукцию, успешно отправляем отчет о нанесении, т.к. в РС ПулКодовМаркировкиСУЗ есть записи по этим кодам.
2. Есть упаковка с уже нанесенной маркой в типографии, при считывании получаем КМ "(01)04600712007234(21)5K_>,j". Где брать полный код маркировки, т.к. он требуется для передачи отчета о нанесении?
55. user5300 892 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 Ответить
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 351 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 892 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 892 11.11.22 09:33 Сейчас в теме
(63) Вы прочитали предыдущий коммент ? (Пункт 2.)
66. Rotmayer 01.02.23 01:18 Сейчас в теме
(65)
(32)
(65)

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

Чуть позже скину обработку
Оставьте свое сообщение

См. также

Реализация нестандартных (для 1С) интерфейсных решений в Web-клиенте

WEB-интеграция Идеи и тренды в разработке Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Онлайн-сервисы, построенные на 1С, могут использовать все многообразие веб-технологий. О том, как спроектировать, реализовать и красиво оформить интерфейс продукта 1С, в докладе на конференции Infostart Event 2021 Post-Apocalypse рассказал CTO компании WiseAdvice Олег Филиппов.

21.10.2022    6419    comol    15    

69

Система контроля ведения учета [БСП]

Универсальные функции Механизмы типовых конфигураций БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данном материале рассмотрим типовой алгоритм подсистемы контроля учета БСП в конфигурациях на примерах.

18.07.2022    4796    quazare    8    

97

Хитрости СКД. Часть 3

СКД Универсальные функции Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Столкнулся с тем, что мне приходится писать гору отчетов. Во многих приходится использовать повторяющиеся приемы. Решил написать шпаргалку, которая, надеюсь пригодится не только мне. В этой статье: Объединение ячеек в отчете только на определенном уровне иерархии, Постобработка итогов в табличном документе, Скрытие колонок в зависимости от количества месяцев в периоде.

28.05.2022    6288    milkers    11    

86

Базовые принципы работы с регламентными заданиями подсистем БСП

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В очередной публикации рассмотрим некоторые базовые приемы работы с регламентными заданиями в рамках библиотеки стандартных подсистем

22.05.2022    7503    quazare    24    

52

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

СПАРК помогает предотвратить мошенничество со стороны компаний и предпринимателей, благодаря актуальным сведениям о компаниях и системе выявления факторов риска.Сервис позволяет управлять налоговыми рисками и комплексно оценивать благонадежность контрагентов.

Модули общего назначения - готовые полезные функции и процедуры конфигураций на БСП

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

25.04.2022    9048    quazare    11    

127

Полезный код для программистов 1С (часть 3). Подготовка печатных форм + подсистема Управление печатью (БСП)

БСП (Библиотека стандартных подсистем) Универсальные функции Платформа 1С v8.3 Бесплатно (free)

Мы все любим 1С, не так ли? Вот дает 1С прекрасный механизм возможности модификации макетов печатных форм в БСП. А из всех рекомендаций это получение макета и заполнение параметров областей. И вы спросите: "А что не так... ты печатные формы накодить не можешь без указаний сверху?". Да вот в том то и дело, что я могу все. А вот пользователям от такого механизма пользы 0, если из всех доступных изменений остаются только шрифты, да текст произвольный накинуть. А ведь можно больше, надо только соблюдать несколько правил при подготовке печатных форм...

07.03.2022    8787    vandalsvq    0    

56

Конвертируем печатную форму pdf в картинку (jpg, gif, png и прочие) на сервере

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Была поставлена интересная задача конвертировать печатную форму в файл картинку. По условию задачи клиенту на почту нужно присылать только файл картинку (jpg, gif).

22.12.2021    5611    John_d    25    

46

Работа с 1С через протокол OData

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

В данной статье мы будем рассматривать работу с данными информационной базы через протокол OData (далее OData).

17.12.2021    29523    ProgrammingStore    26    

86

Подключение к HTTP-сервису с авторизацией посредством передачи клиентского SSL-сертификата

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

В статье хочу поделиться опытом настройки подключения 1С к стороннему HTTP-сервису, использующему авторизацию посредством передачи клиентского SSL-сертификата.

07.12.2021    10343    kholkin    12    

104

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Несколько простых приемов для удобной работы в конфигураторе

Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Простая и удобная среда разработки 1С:Предприятия позволяет практически любому человеку начать работать под капотом 1С - в конфигураторе. Время идет, новички становятся программистами, специалистами, а об удобных приемах работы узнают годами, по ходу своего карьерного пути. А здорово было бы, если бы все знали удобные приемы в начале своего пути? Эти несколько приемов будут полезны новичкам, так как они затрагивают ту область работы, с которой приходится сталкиваться в начале карьеры.

12.11.2021    12099    acces969    95    

138

Повышение производительности веб-сервисов. Переиспользование сеансов

WEB-интеграция HighLoad оптимизация Платформа 1С v8.3 Бесплатно (free)

Повышение производительности веб-сервисов. Переиспользование сеансов. Практическая реализация.

20.10.2021    4565    sorter1    3    

47

WEB/HTTP сервисы. Базовые отличия и применение на практике

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Рассказываем о WEB и HTTP сервисах, их практическом применении, о шишках, которые мы набили, и о выводах, которые сделали. Спойлер: тех, кто дочитает статью до конца, ждет бонус от автора.

04.10.2021    26791    Neti    23    

112

Быстрое чтение составных http сообщений multipart/form-data

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Алгоритм быстрого разбора составного http сообщения multipart/form-data.

26.09.2021    2970    cherkasovvitalik    4    

56

Обмен с HTTP сервисом файлами по формату multipart/form-data

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Потребовалось отправить картинку в теле запроса в HTTP сервис методом POST, куча реализаций, но есть маленькие нюансы, если хотя бы кому-то поможет, то уже это было не напрасно.

07.09.2021    10299    ix5s    25    

66

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Разработка гибридного web-приложения на 1С, возможности и ограничения

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Все чаще разработчики склоняются к использованию 1C в качестве бэкенда при разработке веб-приложений. Но благодаря встраиванию веб-клиента 1С в сайт можно получить еще больше готовой функциональности. О том, как реализовать гибридное приложение за счет связки 1С с другими веб-технологиями, рассказал разработчик компании Neti Эльдар Мингалиев.

06.09.2021    5025    Бэнни    12    

51

Встраивание форм 1С на страницы сайта

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В платформе 8.3.16 появилась возможность выводить на страницах сайта информацию из веб-клиента 1С так, что пользователь даже не заметит, что работает с платформой. Руководитель компании Айтон Михаил Пинягин на онлайн-митапе «Web-клиенты для 1С» рассказал о том, какие особенности нужно учесть при настройке встраиваемого веб-клиента, и какие возможности он дает.

27.08.2021    7852    mikepin    10    

62

Гарри Поттер и подкапотное пространство веб-клиента

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

При разработке сайтов, интегрированных с 1С через HTTP-сервисы, приходится бороться с кодировками, искать производительные интерфейсные решения и задумываться над безопасностью. В ходе онлайн-митапа «Web-клиенты для 1С» Юрий Лазаренко показал на практике, как работает магия самодельного веб-клиента и как решать проблемы, возникающие при интеграции.

20.08.2021    5510    TitanLuchs    19    

41

Умная маршрутизация: кейс интеграции с 1С (часть 1)

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Как мы решали проблемы с доставкой в нашем интернет-магазине, внедрили новый бизнес-процесс за 3 месяца и научились меньшим количеством машин привозить больше заказов клиентам.

18.08.2021    6428    greencactus    42    

61

Из Word в табличный документ

Универсальные функции Платформа 1С v8.3 Платформа 1C v8.2 Бесплатно (free)

Быстро и просто: текст, списки, таблицы. Готовый код

18.08.2021    4002    Yashazz    6    

61

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Префиксация объектов - полезный типовой функционал БСП

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

В данной публикации предлагаю рассмотреть основные типовые возможности библиотеки стандартных подсистем (БСП), касаемые префиксации объектов конфигураций.

21.06.2021    10204    quazare    4    

61

Настраиваем авторизацию пользователей 1С через Okta

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Чем больше в компании различных конфигураций и сервисов, тем актуальнее становится проблема единой системы авторизации single Sign-On. Его лидером практически безоговорочно считается Okta. Но на просторах интернета очень мало информации про интеграцию 1С с Okta через протокол OpenID Connect. Что ж, настало время восполнить недостающие пробелы и перевернуть эту печальную страницу в вашей истории

30.04.2021    6297    ripreal1    16    

40

Правила обмена больше не нужны

Внешние источники данных Обмен между базами 1C WEB-интеграция Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Бесплатно (free)

Есть несколько общепринятых подходов к написанию обмена между 1С-системами, каждый из которых упирается в длительное изучение технологии, мучительную отладку правил конвертации и написание большого количества сервисного кода, в котором потом тяжело разобраться. О принципах работы универсального фреймворка liteExchange, который реализует быстрые обмены между 1С и внешними системами, и берет на себя всю техническую обвязку по стандартному преобразованию данных, на INFOSTART MEETUP Saint Petersburg.Online рассказал Николай Крылов.

17.03.2021    18896    Nikola23    40    

79

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions

WEB-интеграция Облачные сервисы, хостинг Платформа 1С v8.3 Бесплатно (free)

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    12583    comol    32    

108

HTML редактор/editor (Wysiwyg) для WebKit 1С (CMS, B2B), альтернатива TinyMCE и стандартному ФорматированныйДокумент

WEB-интеграция Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

Suneditor - отличная замена HTML редактору TinyMCE (бесплатному), в публикации с открытым кодом подключим его в 1С с WebKit, скачать HTMLeditor обработку можно бесплатно.

28.12.2020    7051    SizovE    28    

49

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

Сохранение настроек

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Делюсь еще одним не самым очевидным способом хранения настроек в базах на БСП без доработки конфигурации. Весь код в статье.

22.11.2020    9120    ixijixi    8    

66

Отладка модуля ДиадокПро

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В обработке ДиадокПро все дополнительные модули встроены во внешние обработки, которые хранятся в макетах. Это усложняет процесс самостоятельной интеграции, так как теряется возможность попасть в них в режиме отладки. Но не всё так страшно, поэтому ниже инструкция)

30.10.2020    10533    Максим-777    36    

44

Обмен с сайтом посредством Post-запроса, json

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Задача - передавать на сайт объекты с наименованием и уникальным идентификатором (УИ), которые изменяются в 1С. Также нужно сохранять историю отправленных пакетов.

29.10.2020    8053    John_d    26    

80

Лайфхаки для разработчиков 1С. Часть 1

Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Россия Бесплатно (free)

Собрали 20 лайфхаков, которые используют наши программисты при работе с 1С. Формы, контрагенты, СКД, процедуры, глюки платформы и многое другое. В этой статье публикуем первую часть.

30.09.2020    9394    Neti    47    

68

Отладка http сервиса

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

При разработке http сервиса возникает ситуация, а как протестировать http сервис? Создали мы сервис, настроили шаблоны, передали, если нужно параметры, открываем браузер заполняем строку подключения и БАХ, ошибка. Что делать?

23.09.2020    12939    hpi    17    

39

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Загрузка или обновление файла на яндекс диске через rest-api

Файловый обмен (TXT, XML, DBF), FTP WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Коллеги, в данной публикации я хочу поделиться кодом, с помощью которого можно загрузить файл на яндекс диск или обновить существующий.

12.08.2020    7114    pavelpribytkin96    11    

68

Самый простой парсинг и обработка веб-страниц в 1С

WEB-интеграция Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим самый простой парсинг веб-страниц средствами платформы 1С и еще некоторые полезные приемы работы с веб-страницами.

07.08.2020    23615    Infostart    30    

145

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

Загрузка или обновление файла на гугл диске

Файловый обмен (TXT, XML, DBF), FTP WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Коллеги, в данной публикации я хочу поделиться кодом, с помощью которого можно загрузить файл на гугл диск или обновить существующий.

06.08.2020    5134    pavelpribytkin96    9    

48

Полезные встроенные функции для работы с печатными формами и не только на УТ 11.4 и БП 3.0 (сравнение)

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

В данном обзоре приведу примеры встроенных используемых функций для работы с печатными формами на примерах конфигураций Управление торговлей 11.4 и Бухгалтерия 3.0.

10.07.2020    14225    quazare    7    

79

Ограничение доступа к HTTP публикациям 1С сервера используя NGINX

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В статье опишу вариант ограничения доступа к HTTP публикациям 1С сервера используя NGINX.

02.07.2020    14021    malikov_pro    14    

87

Диадок. Подключаемый модуль. Отладка

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Небольшой пример, как работать с подключаемым модулем Диадок (для изменения УПД перед выгрузкой на сайт Диадок.). Отладка подключаемого модуля, если не смогли подключить стандартную отладку.

17.06.2020    28464    John_d    27    

61