diff --git a/bitra-patch/CommonModules/bfd_IntegrationAPIHelpers/Module.bsl b/bitra-patch/CommonModules/bfd_IntegrationAPIHelpers/Module.bsl index 44c3b67..9489c78 100644 --- a/bitra-patch/CommonModules/bfd_IntegrationAPIHelpers/Module.bsl +++ b/bitra-patch/CommonModules/bfd_IntegrationAPIHelpers/Module.bsl @@ -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С → строкой Попытка