@Dizzy221
PHP Программист

Как записать json файл в ПрисоединенныеФайлы?

Как сформировать JSON файл и поместить его в ЗаказКлиентаПрисоединенныеФайлы?
  • Вопрос задан
  • 420 просмотров
Пригласить эксперта
Ответы на вопрос 2
fosihas
@fosihas
Автоматизации учета на 1С.
https://wonderland.v8.1c.ru/blog/sredstva-raboty-s...
я так отправлял, файлы. как дополнение


#Если не ВебКлиент Тогда
	ИмяКаталога = КаталогВременныхФайлов(); 
	//
	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Запрос);
Ответ написан
Комментировать
@Dementor
программист, архитектор, аналитик
Вопрос философский...

>>Как сформировать JSON файл...
JSON на последних версиях платформы можно формировать с помощью стандартной функции ЗаписатьJSON(). В более старых версиях нужно добавлять свою библиотеку.

>>Как сформировать JSON файл
Вариантов много. Можно с помощью объекта ЗаписьJSON, можно загнять текст в объект ТекстовыйДокумент, можно сформировать и выполнить команду системы по выводу нужного текста с направлением стандартного потока вывода в нужный файл. Есть и другие варианты....

>>поместить его в ЗаказКлиентаПрисоединенныеФайлы
Судя по названию объекта это конфигурация на основе БСП. Значит кроме элементы ЗаказКлиентаПрисоединенныеФайлы там дожен быть еще регистр сведений, в котором в разрезе этого элемента хранятся данные. Данные могут хранится в реквизите хранилища значений (сразу в базе) или в виде ссылки на внешнее хранилище. Вам нужно проанализировать метод хранения файлов в вашей системе.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы