Средства работы с JSON (JavaScript Object Notation)
Средства платформы 1С: предприятие 8.3 для работы с JSON
JavaScript Object Notation – это текстовый формат обмена данными, широко используемый в веб-приложениях.
Ко мне обратился клиент с просьбой исправить ошибку в обработке выгрузки товаров на сайт http://spb.tiu.ru / в формате JSON. Ошибка началась проявляться после того, как клиент обновил платформу 1С: предприятие 8.3 до сборки 8.3.9.2033, выпущенной в декабре 2016 года. После нажатия кнопки «Выгрузить товары» возникает следующая ошибка исполнения:
{ВнешняяОбработка.ОбменССайтом_УТ.МодульОбъекта(81)}: Ошибка при вызове метода контекста (Создать): Ошибка инициализации модуля: ВнешняяОбработка.ОбменССайтомКабинет.МодульОбъекта: {ВнешняяОбработка.ОбменССайтомКабинет.МодульОбъекта(528,9)}: Процедура или функция с указанным именем уже определена (ПрочитатьJSON).
Я стал проверять программный код модуля обработки ОбменССайтомКабинет .epf на платформе 8.3.9.2033 и действительно выдает синтаксические ошибки:
Процедура или функция с указанным именем уже определена (ПрочитатьJSON)
Процедура или функция с указанным именем уже определена (ЗаписатьJSON)
Можно было найти обновленную версию обработки для платформы 8.3.9. Но я решил переименовать эти функции ПрочитатьJSON() и ЗаписатьJSON() в модуле обработки , так как эти функции существуют в глобальном контексте платформы 1С: предприятие 8.3. Оказывается, что средства работы с JSON реализовано в версии 8.3.6.1977 от 29.04.2015 и выше.
Более подробно о средстве работы с JSON можно прочитать http://v8.1c.ru/o7/201410json/
Основные особенности формата JSON
- По сравнению с XML он является более лаконичным и занимает меньше места
- Все браузеры имеют встроенные средства для работы с JSON.
- Это «модный современный» формат, который прикладные решения 1С:Предприятия сами по себе могут использовать для интеграции со сторонними приложениями.
- JSON активно используется в HTTP интерфейсах. А в 1С:Предприятии как раз есть такие механизмы, в которых хочется использовать этот формат. Это REST интерфейс приложения, автоматически генерируемый платформой, и HTTP-сервисы, которые программисты могут создавать самостоятельно.
JSON используется в следующих сценариях
- Интеграция с внешними системами через их HTTP интерфейсы: Google Calendar, Salesforce.com, REST интерфейс 1С:Предприятия, SharePoint и т.д.
- Организация собственного HTTP интерфейса прикладного решения.
- Обмен файлами JSON с внешними системами. Формирование конфигурационных, надстроечных файлов. Использование их в процедурах обмена данными, например, с интернет-магазинами.
- Использование файлов JSON для обмена данными между разными приложениями 1С:Предприятия.
Потоковое чтение и запись JSON
Начиная с платформы 8.3.6.1977 от 29.04.2015, реализованы низкоуровневые средства потоковой записи и чтения – это общие объекты ЧтениеJSON и ЗаписьJSON. Они последовательно читают JSON из файла или строки, или последовательно записывают JSON в файл или строку. Таким образом, чтение и запись JSON происходят без формирования всего документа в памяти.