JSON (JavaScript Object Notation) это текстовый формат обмена данными, широко используемый в веб-приложениях. По сравнению с XML он является более лаконичным и занимает меньше места. Кроме этого все браузеры имеют встроенные средства для работы с JSON.
Необходимость работы с этим форматом на уровне платформы обусловлена не только тем, что это «модный современный» формат, который прикладные решения 1С:Предприятия сами по себе могут использовать для интеграции со сторонними приложениями. Другая причина заключается ещё и в том, что JSON активно используется в HTTP интерфейсах. А в 1С:Предприятии как раз есть такие механизмы, в которых хочется использовать этот формат. Это REST интерфейс приложения, автоматически генерируемый платформой, и HTTP-сервисы, которые вы можете создавать самостоятельно. (источник: http://v8.1c.ru/o7/201410json/index.htm).
Простой код отправки данных выглядит так:
//здесь выполняем запрос, в котором есть данные о нашых товарах (код товара (sku),
//Наименование товара(name), цена(price) и остаток(qty))
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
//Создали запись ЗаписьJSON
ЗаписьJSON = Новый ЗаписьJSON;
//Задаем параметры без переноса строк, можно и с переносом, как кому нравится
тПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, " ", Истина);
ЗаписьJSON.УстановитьСтроку(тПараметрыJSON);
МассивДанныхJSON = Новый Массив;
СтруктураДанныхJSON = Новый Структура;
//Выбираем данные из запроса и записываем в массив "МассивДанныхJSON"
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Каждая запись товара у нас отдельная структура...
тДанные = Новый Структура;
тДанные.Вставить("sku", ВыборкаДетальныеЗаписи.sku);
тДанные.Вставить("name", ВыборкаДетальныеЗаписи.name);
тДанные.Вставить("price", ВыборкаДетальныеЗаписи.price);
тДанные.Вставить("qty", ВыборкаДетальныеЗаписи.qty);
//Добавляем структуру с информацией о товаре в наш массив "МассивДанныхJSON"
МассивДанныхJSON.Добавить(тДанные);
КонецЦикла;
// вставляем наш массив в ещеодну структуру
СтруктураДанныхJSON.Вставить("test", МассивДанныхJSON);
ЗаписатьJSON(ЗаписьJSON, СтруктураДанныхJSON);
//Здесь нам платформа переделала нашу сложную структуру в строку данных в формате JSON
СтрокаJS = ЗаписьJSON.Закрыть();
//В этот файл для примера наш сайт сформирует ответ после отправки на него данных методом POST
ФайлОтвета = КаталогВременныхФайлов()+ "answer.txt";
//здесь надо указать путь к сайту
HTTPСоединение = Новый HTTPСоединение("mysite.com/download.php");
//создаем запрос данных методом POST
запросPOST = Новый HTTPЗапрос("POST");
//это обязательный заголовок тела запроса
запросPOST.Заголовки.Вставить("Content-type", "application/x-www-form-urlencoded");
//Здесь задаем текст нашей отформатированной строки + задаем формат сроки
запросPOST.УстановитьТелоИзСтроки("mData="+СтрокаJS,"windows-1251",ИспользованиеByteOrderMark.НеИспользовать);
Попытка
//Отправляем для обрааботки на наш сервер
HTTPСоединение.ОтправитьДляОбработки(запросPOST, ФайлОтвета);
Исключение
#Если клиент Тогда
Сообщить(ОписаниеОшибки());
#КонецЕсли
КонецПопытки;
Ни одного комментария, ни в самом коде, не после. Ну да мы же программисты можем сами открыть СП и разобраться, что ты написал и почему. Но как бы смысл тогда в статье, если все равно надо лезть в СП?
Зачем сохранять ответ от сервера в файле? Не надо захламлять сервер временными файлами. У него и без Вас полно мусора от самой системы.
(1)Извините, исправил
(2)это пример, можно и без этого
(2) Как вариант, результат сохраняют в файл для того, чтобы затем его последовательно прочитать (чтоб память пожалеть) или переслать/сохранить. Первый случай особенно полезен, если ответ мегадлинный(большой), или вообще состоит из нескольких частей, которые затем можно «склеить».
(5) А есть системы с маленьким жестким диском для сервера приложений, но большим объемом памяти.
А в данном примере не показано удаление этого файла после обработки результата.
//создаем запрос данных методом POST
запросPOST = Новый HTTPЗапрос(«POST»);
хорошо бы пометить, что здесь вместо «POST» должен быть адрес ресурса.
Новый HTTPЗапрос(АдресРесурса,Заголовки)
если поставить точку останова тут, то ЗаписьJSON.Закрыть() будет строкой, а СтрокаJS Неопределенно
И если дальше шагнуть, то то и то станет Неопределенно
1С:Предприятие 8.3 (8.3.13.1513)
(8)
попробуй убрать строку
если имеется