Доброго времени суток. Практикуюсь с работой с запросами и записью результата в JSON. Появляется ошибка на строке записи в JSON: ЗаписатьJSON(Запись, СтруктураДанных);
Просмотрел код и не могу понять в чем ошибка. И через отладчик видно, что вроде все записано корректно. Глаз замылился уже. Ткните носом где я ошибся!
Выборка = Запрос.Выполнить().Выбрать();
СтруктураДанных = Новый Структура;
Товары = Новый Массив;
Пока Выборка.Следующий() Цикл
СтруктураТовара = Новый Структура("category_id, id, guid, name, quantity, price, creation_date, oem, brand_code, private_code, auto_brand");
ЗаполнитьЗначенияСвойств(СтруктураТовара, Выборка);
КоличествоЗаписейВТаблице = Выборка.count;
СтруктураЕдиницыИзмерения = Новый Структура;
СтруктураЕдиницыИзмерения.Вставить("packet_id", Выборка.packet_id);
СтруктураЕдиницыИзмерения.Вставить("packet_name", Выборка.packet_name);
СтруктураТовара.Вставить("packetData", СтруктураЕдиницыИзмерения);
СтруктураПроизводительСтрана = Новый Структура;
СтруктураПроизводительСтрана.Вставить("country_id", Выборка.country_id);
СтруктураПроизводительСтрана.Вставить("country_name", Выборка.country_name);
СтруктураТовара.Вставить("countryData", СтруктураПроизводительСтрана);
СтруктураСклад = Новый Структура;
СтруктураСклад.Вставить("stock", Выборка.stock);
СтруктураТовара.Вставить("stockData", СтруктураСклад);
Если НЕ Выборка.image.Пустая() Тогда
ДвоичныеДанные = РаботаСФайлами.ДвоичныеДанныеФайла(Выборка.image);
ДанныеBase64 = Base64Строка(ДвоичныеДанные);
ДанныеBase64 = СтрЗаменить(ДанныеBase64, Символы.ВК, "");
ДанныеBase64 = СтрЗаменить(ДанныеBase64, Символы.ПС, "");
КонецЕсли;
СтруктураТовара.Вставить("image", ДанныеBase64); //NULL если пусто
Товары.Добавить(СтруктураТовара);
КонецЦикла;
СтруктураДанных.Вставить("Items", Товары);
Запись = Новый ЗаписьJSON();
Запись.УстановитьСтроку();
ЗаписатьJSON(Запись, СтруктураДанных);
СтруктураJSON = Запись.Закрыть();
ПоказатьПросмотрел код и не могу понять в чем ошибка. И через отладчик видно, что вроде все записано корректно. Глаз замылился уже. Ткните носом где я ошибся!
По теме из базы знаний
- Пример переноса объекта 1С между информационными базами используя формат JSON
- Описание формата 1С JDTO (JSON data transfer object)
- Взаимодействие мобильного приложения 1С и центральной информационной базы с использованием http-сервиса
- Загрузка из файла JSON в документы Перенос данных сведений о доходах сотрудников
- HTTP сервис на 1С:Шина за 1 день
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
там и далее, какие типы данных?
СтруктураТовара = Новый Структура("category_id, id, guid, name, quantity, price, creation_date, oem, brand_code, private_code, auto_brand");
ЗаполнитьЗначенияСвойств(СтруктураТовара, Выборка);
ЗаполнитьЗначенияСвойств(СтруктураТовара, Выборка);
там и далее, какие типы данных?
В JSON могут быть записаны значения следующих типов:
Неопределено,
Булево,
Число,
Строка,
Дата (будет преобразована в строку),
Структура,
ФиксированнаяСтруктура,
Массив,
ФиксированныйМассив,
Соответствие,
ФиксированноеСоответствие.
Неопределено,
Булево,
Число,
Строка,
Дата (будет преобразована в строку),
Структура,
ФиксированнаяСтруктура,
Массив,
ФиксированныйМассив,
Соответствие,
ФиксированноеСоответствие.
(2) (3) (4) (5) Запись картинки не вызывало ошибку. В JSON действительно записывался null (если была пустая строка в результате запроса). И guid в строку преобразован. Вы не поверите, мужики, но у меня все работало пока я не добавил вот этот код:
После этого все сломалось. Я поэтому думаю может структура не правильно организована?
КоличествоЗаписейВТаблице = Выборка.count;
СтруктураЕдиницыИзмерения = Новый Структура;
СтруктураЕдиницыИзмерения.Вставить("packet_id", Выборка.packet_id);
СтруктураЕдиницыИзмерения.Вставить("packet_name", Выборка.packet_name);
СтруктураТовара.Вставить("packetData", СтруктураЕдиницыИзмерения);
СтруктураПроизводительСтрана = Новый Структура;
СтруктураПроизводительСтрана.Вставить("country_id", Выборка.country_id);
СтруктураПроизводительСтрана.Вставить("country_name", Выборка.country_name);
СтруктураТовара.Вставить("countryData", СтруктураПроизводительСтрана);
СтруктураСклад = Новый Структура;
СтруктураСклад.Вставить("stock", Выборка.stock);
СтруктураТовара.Вставить("stockData", СтруктураСклад);
ПоказатьПосле этого все сломалось. Я поэтому думаю может структура не правильно организована?
(6)
это уже в тексте формата json. 1С так Неопределено записывает. Но нельзя передавать для записи Null.
Значит ищите в каком месте появляется неподдерживаемое значение.
Возможно тут ссылка. Ссылки тоже не поддерживаются.
В JSON действительно записывался null
это уже в тексте формата json. 1С так Неопределено записывает. Но нельзя передавать для записи Null.
После этого все сломалось
Значит ищите в каком месте появляется неподдерживаемое значение.
СтруктураСклад.Вставить("stock", Выборка.stock);
Возможно тут ссылка. Ссылки тоже не поддерживаются.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот