Отправить JSON из табличной части

1. rav1107 25.04.19 07:12 Сейчас в теме
Здравствуйте всем, я хотел бы отправить данные на сайт из документа "Заказ", а в документе есть табличная часть, в одной табличной части документа может быть несколько строк, так вот когда я отправляю данные, то при преобразовании в JSON попадает только первая строка табличной части, как можно сделать так, чтобы каждую строку отправлять по отдельности как новый? помогите пожалуйста.
вот код:


мЗаказ = Заказ.ПолучитьОбъект();
		
	мДата = новый Структура;		
	для каждого Анализы из мЗаказ.МедицинскиеУслуги цикл
		
		мДата.Вставить("data", мЗаказ.Ответственный.Наименование);
        //Данные из табличной части
		мДата.Вставить("analys_code",Анализы.Номенклатура.Артикул);
	КонецЦикла;	
		
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();	
	ЗаписатьJSON(ЗаписьJSON, мДата);	
	СтрокаДляОтвета = ЗаписьJSON.Закрыть();
	
   Заголовки = Новый Соответствие;
   Заголовки.Вставить("Content-type", "application/json" );

	Соединение = Новый HTTPСоединение("АДРЕС САЙТА",,,,,,);
	
	
	Запрос = Новый HTTPЗапрос("/TODO",Заголовки);
	Запрос.УстановитьТелоИзСтроки(СтрокаДляОтвета,"CESU-8");	
	Соединение.ОтправитьДляОбработки(Запрос);	
	
	Результат = Соединение.Получить(Запрос);
	КодСостояния = Результат.КодСостояния;
	Реквизит1 = Результат.ПолучитьТелоКакСтроку("CESU-8");
	ТекстJSON = СтрокаДляОтвета;

Показать
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 25.04.19 08:14 Сейчас в теме
(1) структура не может иметь несколько одинаковых ключей. Нужно данные элементов табличной части завернуть в массив.
мДата = новый Структура;        
мДата.Вставить("data", мЗаказ.Ответственный.Наименование);
мТЧ = Новый Массив;
для каждого Анализы из мЗаказ.МедицинскиеУслуги цикл
        //Данные из табличной части
    сТЧ = Новый Структура;
    сТЧ.Вставить("analys_code",Анализы.Номенклатура.Артикул);
    мТЧ.Добавить(сТЧ);
КонецЦикла;
мДата.Вставить("analyses", мТЧ);
Показать

Это конечно сайт ваш и его можно править. Иначе смотреть какие на сайте имена.
И данные лучше получать запросом, а то объектное обращение через 2 точки не лучший вариант.
3. rav1107 25.04.19 09:01 Сейчас в теме
(2) я бы хотел , для каждой строки табличной части создавался новый JSON c одинаковыми данными полей документа но с разными строками табличной части, так сделать возможно?
4. spacecraft 25.04.19 09:07 Сейчас в теме
(3) что значит отдельный JSON? Для каждого элемента ТЧ отправлять отдельный запрос с json?
6. rav1107 25.04.19 09:10 Сейчас в теме
(4)(3)т.е если в документе есть реквизит "Ответственный" и ТЧ "Анализы" внутри ТЧ есть 3 строки, вот это нужно отправить 3 раза, с одинаковым Ответственным но разными строками ТЧ.

Я это почему так хочу сделать, потому что при получении я должен получать 3 документа с тремя разными результатами.
9. rav1107 25.04.19 09:21 Сейчас в теме
(4)Это 1С медицина.
Алгоритм так работает, Есть документ "Заказ" и есть врач который пациенту назначает услугу для лаборатории, а при назначении врач может назначить несколько услуг, услуги будут в ТЧ документа и внутри документа есть несколько реквизитов, например "Ответственный", "Пациент" и т.п. При отправке будет это документ Заказ, а при получении это документ "МедицинскийДокумент", при получении каждый ТЧ, будет как отдельный "МедицинскийДокумент". И поэтому думаю отправлять каждый тч в отдельном JSON, вот только не понимаю как это реализовать
10. spacecraft 25.04.19 09:31 Сейчас в теме
(9) я бы рассматривал постобработку на самом сайте. Тогда меньше данных передавать.
Если не хотите обрабатывать на сайте и нужно именной передавать каждый элемент ТЧ отдельным json, тогда обходите ТЧ и внутри цикла делаете POST запрос.
Или предварительно получаете массив структур и обходя его передаете данные на сайт.
Но в этих случаях увеличивается время передачи.
11. rav1107 25.04.19 10:08 Сейчас в теме
12. rav1107 25.04.19 10:11 Сейчас в теме
(10)на сайте я ничего не смогу менять т.к. там другой разработчик
5. tvm 25.04.19 09:09 Сейчас в теме
(3) а смысл? правильнее все же всю тч сразу в массив
7. rav1107 25.04.19 09:12 Сейчас в теме
(5)потому что сайт будет получать как 3 разных документа, а при отправке мне он будет отправлять 3 документа и я должен записать в системе как 3 документа
8. tvm 25.04.19 09:16 Сейчас в теме
(7) тогда заполните Таблицузначений и потом
МассивСтруктур = ОбщегоНазначения.ТаблицаЗначенийВМассив(тз);	
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();
	ЗаписатьJSON(ЗаписьJSON, МассивСтруктур);
	Резт = ЗаписьJSON.Закрыть();


как-то так
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день