Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
08 фев 2026, 02:26

Проблемfа с шифрование записи JSON в Base64 для отправки в теле запроса на стороний сервис

Автор damir-it, Вчера в 10:35

0 Пользователей и 2 гостей просматривают эту тему.

damir-it

Добрый день всем
Никак не могу победить проблему с шифрование записи JSON для отправки в теле запроса на стороний сервис , выдает ошибку Несоответствие типов , хотя в json для записи передается простая структура с типами строка, число , массив строк. Вот код:

&НаКлиенте
Процедура Агрегировать(Команда)
    ТокенДоступа = XtraceAPI.ПодключениеКСервисуАсл();
    Данные = Новый Массив; 
    ИдентификаторМОД = 9393;
    СписокФайлов = Новый Массив;
   ПутьФайлов = КаталогКодовДляАгрегации + "\";
   СписокФайлов = НайтиФайлы(ПутьФайлов,"*.csv");
   ФайлКиту = Новый ТекстовыйДокумент;
    ФайлКиту.Прочитать(ФайлНомеровУпаковок);     
   ИндексКиту = 1;
   Для Индекс = 0 по СписокФайлов.Количество()-1 Цикл
   МассивUnits = Новый Массив;   
   МассивВложенныхКодов = Новый Массив;
   ПрочитанныйФайл = Новый ТекстовыйДокумент;
   ПутьФайла =  СписокФайлов[Индекс].ПолноеИмя;
    ПрочитанныйФайл.Прочитать(ПутьФайла);
   Для ИндексФайла = 0 По ПрочитанныйФайл.КоличествоСтрок() Цикл
       Стр = ПрочитанныйФайл.ПолучитьСтроку(ИндексФайла);     
      Если СтрНайти(Стр, Символ(34)) > 0 Тогда   
         Стр = СтрЗаменить(Стр,Символ(34),"\"+Символ(34));
      КонецЕсли;   
      МассивВложенныхКодов.Добавить(Стр);
   КонецЦикла;    
   КодКИТУ = ФайлКиту.ПолучитьСтроку(ИндексКиту); 
   ИндексКиту = ИндексКиту + 1;
   СтруктураКодов = Новый Структура();
   СтруктураКодов.Вставить("codes",МассивВложенныхКодов); 
   СтруктураКодов.Вставить("unitSerialNumber",КодКИТУ); 
   СтруктураКодов.Вставить("aggregationUnitCapacity",ЕмкостьУпаковки);
   СтруктураКодов.Вставить("aggregationItemsCount",КоличествоВложенныхУпаковок);
   ДатаАгрегации = Формат(ДатаАгрегирования,"ДФ=yyyy-MM-dd")+"T"+Прав(Формат(ДатаАгрегирования,"ДЛФ=DT"),8)+"Z";       
   МассивUnits.Добавить(СтруктураКодов);
   СтруктураДанных = Новый Структура("aggregationUnits",МассивUnits);     
   КонецЦикла;
    СтруктураДанных.Вставить("documentDate",ДатаАгрегации);
   СтруктураДанных.Вставить("businessPlaceId",ИдентификаторМОД); 
   JSONДанные = ЗаписатьВJSON(СтруктураДанных);
   СтрокаBase64 = СтруктураBase64(JSONДанные);
   
КонецПроцедуры       


&НаКлиенте
Функция СтруктураBase64(СтруктураДанных)
   Поток = Новый ПотокВПамяти;
   Запись = Новый ЗаписьДанных(Поток, КодировкаТекста.UTF8);
   Запись.ЗаписатьСимволы(СтруктураДанных);
   Запись.Закрыть();
   ДвоичныеДанные = Поток.ЗакрытьИПолучитьДвоичныеДанные();   
   СтрокаBase64 = Base64Строка(ДвоичныеДанные); 
Возврат СтрокаBase64;
КонецФункции

раньше никогда не приходилось сталкиватся с шифрованием и тд. подскажите пожалуйста что не так в этом коде?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск