![]() |
|
Работа с документами по API "Честный знак" | ☑ | ||
---|---|---|---|---|
0
Alexan1979
11.05.25
✎
11:53
|
Добрый день.
Конфигурация УТ 11.5 Аналогичная проблема как в теме Работа с документами по API "Честный знак" Пытаюсь вывести документ через ЧЗ Соединение = Новый HTTPСоединение("water.sandbox.crptech.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL); Заголовки = Новый Соответствие(); Заголовки.Вставить("Content-Type", "application/json"); Заголовки.Вставить("Accept", "application/json"); Заголовки.Вставить("Accept-Charset", "utf-8"); Заголовки.Вставить("Authorization", "Bearer " + Токен); //**//Отдельно для Воды и Напитков HTTPЗапрос = Новый HTTPЗапрос("/lk/documents/create?pg=water",Заголовки); ЗаписьДокумента = Новый ЗаписьJSON; //Отдельно документ ПараметрыЗаписиДокумента = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет,""); ЗаписьДокумента.УстановитьСтроку(ПараметрыЗаписиДокумента); ДокументВывода = Новый Структура; ОткрепленнаяПодпись = ""; ДанныеДляЗаполнения = ПолучитьДанныеДляЗаполнения(); ДокументВывода.Вставить("inn",данныеДляЗаполнения.ИННПродавца); ДокументВывода.Вставить("buyer_inn",ДанныеДляЗаполнения.ИННПокупателя); ДокументВывода.Вставить("action","OWN_USE"); ДатаВывода = Формат(ДанныеДляЗаполнения.ДатаВывода,"ДФ=""гггг-ММ-дд"""); ДокументВывода.Вставить("action_date",ДатаВывода); ДокументВывода.Вставить("document_type","OTHER"); ДокументВывода.Вставить("document_number",ДанныеДляЗаполнения.НомерДокумента); ДокументВывода.Вставить("document_date",ДатаВывода); ДокументВывода.Вставить("primary_document_custom_name","Реализация Товаров"); МассивМарок = Новый Массив; Для Каждого Марка из ДанныеДляЗаполнения.ШтрихкодыУпаковок цикл СтруктураМарки = Новый Структура; СтруктураМарки.Вставить("cis",Марка.ЗначениеШтрихкода); СтруктураМарки.Вставить("product_cost",Марка.ЦенаВыбытия); МассивМарок.Добавить(СтруктураМарки); КонецЦикла; ДокументВывода.Вставить("products",МассивМарок); ЗаписатьJSON(ЗаписьДокумента,ДокументВывода); ВыбытиеДокументJSON = ЗаписьДокумента.Закрыть(); ВременныйФайл = ПолучитьИмяВременногоФайла(); ЗаписьТекста = Новый ЗаписьТекста(ВременныйФайл,"CESU-8"); ЗаписьТекста.Записать(ВыбытиеДокументJSON); ЗаписьТекста.Закрыть(); ДД_Файла = Новый ДвоичныеДанные(ВременныйФайл); ВыбытиеДокументJSON_Base64 = Base64Строка(ДД_Файла); Попытка УдалитьФайлы(ВременныйФайл); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; ОткрепленнаяПодпись = ПодписатьТекст(ВыбытиеДокументJSON_Base64,Отпечаток,Истина); ЗаписьЗапросаВыбытие = Новый ЗаписьJSON; ЗаписьЗапросаВыбытие.УстановитьСтроку(); ВесьДокумент = Новый Структура; ВесьДокумент.Вставить("document_format","MANUAL"); ВесьДокумент.Вставить("product_document",ВыбытиеДокументJSON_Base64); ВесьДокумент.Вставить("type","LK_RECEIPT"); //Вывод из оборота ВесьДокумент.Вставить("signature",ОткрепленнаяПодпись); ЗаписатьJSON(ЗаписьЗапросаВыбытие,ВесьДокумент); ВыбытиеЗапросJSON = ЗаписьЗапросаВыбытие.Закрыть(); НоваяСтрокаТекст = """document_format"":""MANUAL"",""product_document"":"""+ВыбытиеДокументJSON_Base64+ """,""type"":""LK_RECEIPT"",""signature"":"""+ОткрепленнаяПодпись+""""; Текст = Новый текстовыйДокумент; Текст.ДобавитьСтроку(ВыбытиеЗапросJSON); ИмяФайла = "Z:\тест кодов.json"; Текст.Записать(ИмяФайла,,); HTTPЗапрос.УстановитьТелоИзСтроки(ВыбытиеЗапросJSON,КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); Ответ = Соединение.ОтправитьДляОбработки(HTTPЗапрос); ОтветСтр = Ответ.ПолучитьТелоКакСтроку(); В ответе: <html>
<head><title>405 Not Allowed</title></head> <body> <center><h1>405 Not Allowed</h1></center> <hr><center>nginx</center> </body> </html> |
|||
1
ptiz
12.05.25
✎
09:45
|
(0)
1) из Base64 надо удалять переносы строк Base64 = Base64Строка(ДвоичныеДанные); Base64 = СтрЗаменить(Base64, Символы.ПС, ""); Base64 = СтрЗаменить(Base64, Символы.ВК, ""); 2) Проверить, допустим ли вообще этот такой документ для этой товарной группы. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |