ТекстЗапроса передать через http-сервис get, обратно получить результат запроса

1. user-z99999 70 15.09.22 18:21 Сейчас в теме
(две базы 1с)

ТекстЗапроса передать через http-сервис get, обратно получить результат запроса.

Не получается ТекстЗапроса отправить, запаковываю его в JSON так

Функция ЗначениеВJSON(Значение)

	Запись = Новый ЗаписьJSON();
	Запись.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, "  ")); 
	СериализаторXDTO.ЗаписатьJSON(Запись, Значение);
	//ЗаписатьJSON(Запрос, Значение);
	Возврат Запись.Закрыть();

КонецФункции

Показать


С остальным кодом понятно. Нужна помощь, как запаковать его (в json), когда отправляю его через http сервис.
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
2. SlavaKron 15.09.22 18:25 Сейчас в теме +0.1 $m
(1) А зачем запаковывать текст запроса? Он же и так строка.
11. user1831019 15.09.22 19:47 Сейчас в теме +0.1 $m
(10) Варианты - не пытаться в результате запроса передавать ссылочные данные.
14. user-z99999 70 16.09.22 09:39 Сейчас в теме
(13)
Если только все ссылочные поля оборачивать ...
ВЫБРАТЬ ПЕРВЫЕ 2
ПРЕДСТАВЛЕНИЕ(Договор.Ссылка) КАК Ссылка,
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SlavaKron 15.09.22 18:25 Сейчас в теме +0.1 $m
(1) А зачем запаковывать текст запроса? Он же и так строка.
3. user-z99999 70 15.09.22 18:26 Сейчас в теме
(2)
А как его передавать как параметр (смотри картинку, прикрепил)?
4. SlavaKron 15.09.22 18:43 Сейчас в теме
(3) А так не работает?
ЗапросHTTP = Новый HTTPЗапрос(АдресСервиса + "?ТекстЗапроса=" + ТекстЗапроса, Заголовки);
5. user-z99999 70 15.09.22 18:48 Сейчас в теме
(4)
Так получилось:
	ТекстЗапроса1 = СтрЗаменить(ТекстЗапроса1, Символы.Таб, " ");
	ТекстЗапроса1 = СтрЗаменить(ТекстЗапроса1, Символы.ПС, " ");
	ТекстЗапроса1 = СтрЗаменить(ТекстЗапроса1, Символы.НПП, " ");

(что-то в этих строка может быть лишнее т.е. избыточное)
6. user-z99999 70 15.09.22 18:51 Сейчас в теме
Теперь ТаблицуЗначений (результат запроса) нужно вернуть через json как ответ.
7. user1831019 15.09.22 19:00 Сейчас в теме
8. user-z99999 70 15.09.22 19:26 Сейчас в теме
(7)
Вот так я запаковываю ТаблицуЗначений
Функция ЗначениеВJSON(Значение)

	Запись = Новый ЗаписьJSON();
	Запись.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, "  ")); 
	СериализаторXDTO.ЗаписатьJSON(Запись, Значение);
	Возврат Запись.Закрыть();

КонецФункции
Показать


А вот так пытаюсь её прочитать (по http я её получаю)
Функция JSONВЗначение(СтрокаJSON)	
	Чтение = Новый ЧтениеJSON();
	Чтение.УстановитьСтроку(СтрокаJSON);
	Возврат СериализаторXDTO.ПрочитатьJSON(Чтение, Тип("ТаблицаЗначений"));

КонецФункции  

Ошибка в строке ПрочитатьJSON
9. user1831019 15.09.22 19:34 Сейчас в теме +0.1 $m
(8) Давно ли JSON работает с таблицами значений?
10. user-z99999 70 15.09.22 19:46 Сейчас в теме
(9)
Так (ниже) работает.
тзВнутр = ЗначениеВСтрокуВнутр(тз);
тз = ЗначениеИзСтрокиВнутр(тзВнутр);


А какие ещё варианты передать результат запроса обратно?
11. user1831019 15.09.22 19:47 Сейчас в теме +0.1 $m
(10) Варианты - не пытаться в результате запроса передавать ссылочные данные.
12. RustamZz 15.09.22 20:53 Сейчас в теме
(10) Например через массив структур:
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, МассивОрганизаций);
		
СтрокаJSON = ЗаписьJSON.Закрыть();
Ответ.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.ANSI);
13. comptr 35 16.09.22 07:29 Сейчас в теме
(10) а внутри таблицы значений что? С помощью JSON можно передать только простые типы - строка, число, булево, дата. Ссылки не получится. Придётся свой аналог КД2/КД3 писать. Либо использовать КД2/КД3, а через http гонять файлы обмена.
14. user-z99999 70 16.09.22 09:39 Сейчас в теме
(13)
Если только все ссылочные поля оборачивать ...
ВЫБРАТЬ ПЕРВЫЕ 2
ПРЕДСТАВЛЕНИЕ(Договор.Ссылка) КАК Ссылка,
15. SlavaKron 16.09.22 10:20 Сейчас в теме
Еще такой вариант.
Отправка:
ХЗ = Новый ХранилищеЗначения(ЧтоУгодно, Новый СжатиеДанных(9));
ЗапросHTTP.УстановитьТелоИзСтроки(XMLСтрока(ХЗ));
Получение:
ХЗ = XMLЗначение(Тип("ХранилищеЗначения"), ЗапросHTTP.ПолучитьТелоКакСтроку());
ЧтоУгодно = ХЗ.Получить();
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот