новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
R.Samir
Приватное сообщение
Новый заказчик

Работа с JSON

11.01.1988(36 лет)
27 января 2021 в 17:06:08 (3 года 42 недели 5 дней 16 часов назад)
Текст задания
Есть Код написанный мною на платформе 8.3.10 Нужно этот же код Если это возможно "Костылями" написать на платформе 8.1 (Платформу апгрейдать не вариант)


Функция ПечатьЧека(Сервер, Ссылка, Порт, Товары, СуммаНаличнойОплаты, СуммаБезналичнойОплаты) Экспорт
HTTP = Новый HTTPСоединение(Сервер, Порт, Неопределено, Неопределено, Неопределено, Ложь);
ФайлТелаЗапроса = ПолучитьИмяВременногоФайла();

Запись = Новый ЗаписьJSON;
Запись.ПроверятьСтруктуру = Истина;
Запись.ОткрытьФайл(ФайлТелаЗапроса);
Запись.ЗаписатьНачалоОбъекта();
Запись.ЗаписатьИмяСвойства("data");
Запись.ЗаписатьНачалоОбъекта();
Если Не ПустаяСтрока(СуммаНаличнойОплаты) Тогда
Запись.ЗаписатьИмяСвойства("cashPayment");
Запись.ЗаписатьЗначение(СуммаНаличнойОплаты);
Иначе
Запись.ЗаписатьИмяСвойства("cashPayment");
Запись.ЗаписатьЗначение("0");
КонецЕсли;
Запись.ЗаписатьИмяСвойства("clientName");
Запись.ЗаписатьЗначение("Mushteri");
Запись.ЗаписатьИмяСвойства("discount");
Запись.ЗаписатьЗначение("0");


Запись.ЗаписатьИмяСвойства("items");
items = Новый Массив;

Для каждого СтрокаТабличнойчасти Из Товары Цикл
ТоварыПроданные = Новый Структура("name,code,quantity,salePrice,purchasePrice,vatType");
ТоварыПроданные.name = Строка(СтрокаТабличнойчасти.Номенклатура);
ТоварыПроданные.code = Строка(СтрокаТабличнойчасти.Номенклатура.Код);
ТоварыПроданные.quantity = СтрЗаменить(Формат(СтрокаТабличнойчасти.Количество, "ЧГ=0"), ",", ".");
ТоварыПроданные.salePrice = СтрЗаменить(Формат(СтрокаТабличнойчасти.Сумма / СтрокаТабличнойчасти.Количество, "ЧДЦ=4; ЧГ=0"), ",", ".");
ТоварыПроданные.purchasePrice = "0";
ТоварыПроданные.vatType = "2";
items.Добавить(ТоварыПроданные);
КонецЦикла;
ЗаписатьJSON(Запись, items);
Если Не ПустаяСтрока(СуммаБезналичнойОплаты) Тогда
Запись.ЗаписатьИмяСвойства("cardPayment");
Запись.ЗаписатьЗначение(СуммаБезналичнойОплаты);
Иначе
Запись.ЗаписатьИмяСвойства("cardPayment");
Запись.ЗаписатьЗначение("0");
КонецЕсли;
Запись.ЗаписатьИмяСвойства("depositPayment");
Запись.ЗаписатьЗначение("0");
Кассир = СокрЛП(Ссылка.Кассир.ФИО);
Запись.ЗаписатьИмяСвойства("cashier");
Запись.ЗаписатьЗначение(Кассир);
Запись.ЗаписатьИмяСвойства("currency");
Запись.ЗаписатьЗначение("AZN");
Запись.ЗаписатьКонецОбъекта();
Запись.ЗаписатьИмяСвойства("operation");
Запись.ЗаписатьЗначение("sale");
Запись.ЗаписатьКонецОбъекта();
Запись.Закрыть();

ФайлРезультата = ПолучитьИмяВременногоФайла();
ЗаголовокHTTP = Новый Соответствие;
ЗаголовокHTTP.Вставить("Content-Type", "application/json; charset=utf-8");

HTTP.ОтправитьДляОбработки(ФайлТелаЗапроса, , ФайлРезультата, ЗаголовокHTTP);

ТекстовыйФайлОтвет = Новый ТекстовыйДокумент;
ТекстовыйФайлОтвет.Прочитать(ФайлРезультата, КодировкаТекста.UTF8);
СтрокаОтветСервера = ТекстовыйФайлОтвет.ПолучитьТекст();


ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(СтрокаОтветСервера);
ЭлектронныйЧекJson = ПрочитатьJSON(ЧтениеJSON, Ложь);

НомерЧека = ЭлектронныйЧекJson.data.document_id;

ЧтениеJSON.Закрыть();

Возврат НомерЧека;

КонецФункции
0
Отклики (7)