fix(bitra-patch): ПараметрыЗаписиJSON только 1 параметр (8.3.14); Дата 1С сериализуется в НормализоватьДляJSON как ISO-строка

This commit is contained in:
Roman Chesnokov
2026-05-15 19:30:55 +05:00
parent 21e4b9d2bf
commit f74cc2ebff
@@ -22,9 +22,10 @@
Функция СформироватьОтветJSON(Знач Данные, Знач Код = 200) Экспорт
ЗаписьJSON = Новый ЗаписьJSON;
// ФорматДатыJSON.ISO — иначе платформа падает на 1С-Дате с "Значение недопустимых типов".
// ПереносСтрокJSON.Авто работает на 8.3.14.
ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, "", Истина, ФорматДатыJSON.ISO);
// Минимальный конструктор для совместимости с 8.3.14.
// Дата 1С обрабатывается в НормализоватьДляJSON ниже (преобразуется в ISO-строку),
// поэтому ФорматДатыJSON в параметрах не нужен.
ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто);
ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
// ЗаписатьJSON не умеет сериализовать произвольные 1С-типы (ссылки, перечисления, ХранилищеЗначения и т.п.).
@@ -70,8 +71,15 @@
Результат.Добавить(НормализоватьДляJSON(Элемент));
КонецЦикла;
Возврат Результат;
ИначеЕсли Тип = Тип("Строка") ИЛИ Тип = Тип("Число") ИЛИ Тип = Тип("Булево") ИЛИ Тип = Тип("Дата") Тогда
ИначеЕсли Тип = Тип("Строка") ИЛИ Тип = Тип("Число") ИЛИ Тип = Тип("Булево") Тогда
Возврат Значение;
ИначеЕсли Тип = Тип("Дата") Тогда
// Платформа в ПараметрыЗаписиJSON 8.3.14 не умеет сериализовать Дату 1С —
// преобразуем в ISO-строку явно.
Если НЕ ЗначениеЗаполнено(Значение) Тогда
Возврат "";
КонецЕсли;
Возврат Формат(Значение, "ДФ=yyyy-MM-ddTHH:mm:ss");
Иначе
// Ссылки, перечисления, ХранилищеЗначения, прочие объекты 1С → строкой
Попытка