S
S
Sergey Kiryanov2020-05-27 19:13:23
1C-Enterprise
Sergey Kiryanov, 2020-05-27 19:13:23

How to write json file to AttachedFiles?

How to generate a JSON file and place it in Customer Order Attached Files?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
K
Konstantin, 2020-05-27
@fosihas

https://wonderland.v8.1c.ru/blog/sredstva-raboty-s...
I sent files like this. as an addition

#Если не ВебКлиент Тогда
  ИмяКаталога = КаталогВременныхФайлов(); 
  //
  Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", ""); 
  ИмяФайлаОтправки = КаталогВременныхФайлов() + "post.txt"; 
  
  КодироватьФайл = Ложь; 
  
  //Определяем массив для процедуры ОбъединитьФайлы 
  МассивФайловДляОбъединения = Новый Массив; 
  Для Каждого СтрокаПараметров Из СписокФайл Цикл 
    ИмяФайлаДляЗагрузки =  СтрокаПараметров.Значение;
    ИмяФайла = СтрЗаменить(ИмяФайлаДляЗагрузки,ИмяКаталога,"");
    
    ФайлОтправкиНачало = Новый ЗаписьТекста(ИмяФайлаОтправкиНачало, КодировкаТекста.ANSI, Символы.ПС, Ложь); 
    //Определяем раздел двоичных данных 
    ФайлОтправкиНачало.ЗаписатьСтроку("--" + Boundary); 
    ФайлОтправкиНачало.ЗаписатьСтроку("Content-Disposition: form-data; name=""datafile""; filename="""+Строка(ИмяФайла)+"""");
    ФайлОтправкиНачало.ЗаписатьСтроку("Content-Type: application/x-octet-stream"); 
    ФайлОтправкиНачало.ЗаписатьСтроку(""); 
    ФайлОтправкиНачало.Закрыть(); 
    
    МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиНачало); 
    

    ИмяФайлаДляЗагрузкиВременный = ПолучитьИмяВременногоФайла("txt"); 
    
    КопироватьФайл(ИмяФайлаДляЗагрузки, ИмяФайлаДляЗагрузкиВременный); 
    МассивФайловДляОбъединения.Добавить(ИмяФайлаДляЗагрузкиВременный); 
    
    //Формируем конечный фрагмент файла POST-запроса 

      ИмяФайлаОтправкиКонец = ПолучитьИмяВременногоФайла("txt"); 

    ФайлОтправкиКонец = Новый ЗаписьТекста(ИмяФайлаОтправкиКонец, КодировкаТекста.ANSI, Символы.ПС, Ложь); 
    
    //Завершение раздела двоичных данных 
    ФайлОтправкиКонец.ЗаписатьСтроку(""); 
    ФайлОтправкиКонец.ЗаписатьСтроку("--" + Boundary); 
    
    
    ФайлОтправкиКонец.ЗаписатьСтроку("--" + Boundary + "--"); 
    
    
    ФайлОтправкиКонец.Закрыть(); 
    
    МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиКонец); 
  КонецЦикла;
  
  Если МассивФайловДляОбъединения.Количество() Тогда
  
  ОбъединитьФайлы(МассивФайловДляОбъединения, ИмяФайлаОтправки); 
  

  Сервер = СайтОтправки;
  Ресурс = СайтРесурс; //"audit/api/plugin";
  //Ресурс = "?utm_campaign=1с_reports";
  
  ТипСоединения = Новый ЗащищенноеСоединениеOpenSSL(Неопределено,Неопределено);	
  
  HTTPConnect = Новый HTTPСоединение(Сервер,,,,,5,ТипСоединения);
  HTTPЗапрос  = Новый HTTPЗапрос(Ресурс);
  
  //HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
  HTTPЗапрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + Boundary); 
  HTTPЗапрос.Заголовки.Вставить("Authorization", "Bearer "+ СокрЛП(ЭтотОбъект.Майл));
  //Укажем длину POST-запроса Content-Length 
  ФайлОтправки = Новый Файл(ИмяФайлаОтправки); 
  РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер()); 
  HTTPЗапрос.Заголовки.Вставить("Content-Length", РазмерФайлаОтправки);
  
  
  HTTPЗапрос.УстановитьИмяФайлаТела(ИмяФайлаОтправки);
  Попытка
    ОтветСервера = HTTPConnect.ОтправитьДляОбработки(HTTPЗапрос);

D
Dmitry Kinash, 2020-05-29
@Dementor

Philosophical question...
>>How to generate a JSON file...
JSON on the latest versions of the platform can be generated using the standard WriteJSON() function. In older versions, you need to add your own library.
>>How to generate a JSON file
There are many options. You can use the WriteJSON object, you can bend the text into a TextDocument object, you can generate and execute a system command to output the desired text with the direction of the standard output stream to the desired file. There are other options....
>>put it in the Customer's OrderAttachedFiles
Judging by the name of the object, this is a BSP-based configuration. This means that in addition to the elements Client Order Attached Files, there must also be a register of information in which data is stored in the context of this element. The data can be stored in a value storage attribute (immediately in the database) or as a link to an external storage. You need to analyze how files are stored on your system.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question