Непредвиденный символ при чтении json 1с ошибка как исправить
Перейти к содержимому

Непредвиденный символ при чтении json 1с ошибка как исправить

Программирование 1С 8.х для начинающих

  • Вы здесь:  
  • ЕРП. Ошибка "Непредвиденный символ при чтении JSON" при сохранении контрагента

Конфигурация

ЕРП. Ошибка "Непредвиденный символ при чтении JSON" при сохранении контрагента

  •  Печать 
  • E-mail

Для устранения ошибки «Непредвиденный символ при чтении JSON»

1С ЕРП. Ошибка при сохранении контрагента

Необходимо обновить следующие колонки в Табличной части «Контактная информация»:

Значение и ЗначенияПолей, для этого нужно перебрать ошибочные строки и применить для колонок следующий код

1С 8.3 : Обмен данными с сайтом используя формат JSON в 1С

Формат JSON в 1С до версии 8.3.6 не реализован, но нижет я приведу примеры функций которые можно использовать для полноценной работы JSON в 1С предыдущий версий.

JSON (JavaScript Object Notation) это текстовый формат обмена данными, широко используемый в веб-приложениях. По сравнению с XML он является более лаконичным и занимает меньше места. Кроме этого все браузеры имеют встроенные средства для работы с JSON.

Необходимость работы с этим форматом на уровне платформы обусловлена не только тем, что это «модный современный» формат, который прикладные решения 1С:Предприятия сами по себе могут использовать для интеграции со сторонними приложениями. Другая причина заключается ещё и в том, что JSON активно используется в HTTP интерфейсах. А в 1С:Предприятии как раз есть такие механизмы, в которых хочется использовать этот формат. Это REST интерфейс приложения, автоматически генерируемый платформой, и HTTP-сервисы, которые вы можете создавать самостоятельно.

В платформе с версии 8.3.6:

Потоковое чтение и запись JSON:

Объекты потоковой работы — это общие объекты ЧтениеJSON и ЗаписьJSON. Они последовательно читают JSON из файла или строки, или последовательно записывают JSON в файл или строку. Таким образом, чтение и запись JSON происходят без формирования всего документа в памяти.

В качестве иллюстрации потокового чтения JSON можно привести следующий пример:

Результат такой записи:

Сериализация примитивных типов и коллекций в JSON

Вторая группа средств работы с JSON хороша тем, что избавляет вас от рутинной работы по чтению/записи каждого отдельного значения или свойства. При чтении документы JSON отображаются в фиксированный набор типов платформы: Строка, Число, Булево, Неопределено, Массив, ФиксированныйМассив, Структура, ФиксированнаяСтруктура, Соответствие, Дата. Соответственно, в обратную сторону, композиция объектов этих типов позволяет сформировать в памяти и быстро записать в файл структуру JSON. Таким образом, чтение и запись небольшого объема JSON заранее известной структуры можно производить немногими строчками кода.

Основное назначение этих средств мы видим в обмене информацией с внешними системами, чтении конфигурационных файлов в формате JSON.

Сериализацию вы можете выполнять с помощью методов глобального контекста ПрочитатьJSON() и ЗаписатьJSON(). Они работают в связке с объектами ЧтениеJSON и ЗаписьJSON.

В качестве примера десериализации JSON можно рассмотреть чтение массива из двух объектов:

Подробнее вы можете посмотреть здесь

В платформе с версии 8.3.7:

Полностью автоматизировали работу с JSON и реализовали в платформе третью группу средств. Они позволяют сериализовать в JSON прикладные типы 1С:Предприятия: ссылки, объекты, наборы записей и вообще любые типы, для которых поддерживается XDTO сериализация. Конечно же, мы обеспечили и обратную операцию — десериализацию. Зачем это нужно!?

Прежде всего, и в основном, XDTO сериализацию в JSON мы рекомендуем использовать при обмене данными между двумя прикладными решениями 1С:Предприятия. По сравнению с XML формат JSON более компактный, сериализация/десериализация в/из JSON выполняется быстрее. Кроме этого мы предприняли дополнительные меры для того, чтобы сократить объём передаваемых данных.

Кроме обмена между приложениями 1С:Предприятия этот механизм можно использовать и для обмена с внешними системами, готовыми принимать типы данных 1С:Предприятия. Например, XDTO сериализацию в JSON можно использовать для организации собственного HTTP интерфейса прикладного решения. Сервис на платформе 1С:Предприятия будет формировать ответ в памяти в виде строки JSON. А затем передавать её при помощи объекта HTTPСервисОтвет. Реализованный нами механизм сериализации полностью соответствует стандарту JSON. Поэтому внешняя система не должна испытывать каких-либо трудностей с десериализацией.

Использование XDTO сериализации в JSON для других задач видится нам маловероятным. Потому что если внешняя система не готова работать с прикладными типами 1С:Предприятия, то зачем их ей передавать? А если предполагается обмениваться только примитивными типами и коллекциями, то для этой задачи хорошо подходят методы ПрочитатьJSON() и ЗаписатьJSON(). Подробнее здесь

ДО платформы версии 8.3.6, т.е. 8.3.5 и ниже:

На HelpF уже есть статья где описан пример: Работа с форматом JSON в 1С но не приведены функции, вот они:

Ошибка при запуске парсера по списку

При запуске парсера "загрузить по списку" появляется такая ошибка.

Загрузка по ссылке работает.

Цитата
Артем А написал:
УТ 11.4.8.84
Цитата
Артем А написал:
так же товар спарсил по ссылке, но поиск соответствия не работает. пробовал ставить разные настройки соответствия (от 0 до 100)

у вас скорее всего какой очень старый релиз платформы в котором нет некоторых функций.
отправлено обновление

у вас скорее всего какой очень старый релиз платформы в котором нет некоторых функций.
отправлено обновление

Ошибка ушла, но сначала думал что просто товар не находит.
Товар на маркете есть под москвой

1С:Предприятие 8.3 (8.3.13.1690)

вот что в логе пишется

Начало загрузки: 13.10.2020 14:24:06
ОТЛАДКА — API_ЗагрузитьДанные_ЗагрузитьИдентификаторыТоваров
Загрузка данных: 13.10.2020 14:24:06

—————————————————————————
Строка: 1
PARSERDATA_ИнформацияОМодели_Разобрать — <ВнешняяОбработка.APPLIX_RU_ПарсерЯндексМаркет_ЗМ.МодульОбъекта(60287)>: Значение не является значением объектного типа (name)
Ошибка API_СписокХарактеристикМодели — 01: <(1)>: Ошибка при вызове метода контекста (ПрочитатьJSON): Непредвиденный символ при чтении JSON
ТекстСтраницы —
<!doctype html>
<html lang="en">
<head>
<title>Not Found</title>
</head>
<body>
<h1>Not Found</h1><p>The requested resource was not found on this server.</p>
</body>
</html>

—————————————————————————
Строка: 2
PARSERDATA_ИнформацияОМодели_Разобрать — <ВнешняяОбработка.APPLIX_RU_ПарсерЯндексМаркет_ЗМ.МодульОбъекта(60287)>: Значение не является значением объектного типа (name)
Ошибка API_СписокХарактеристикМодели — 01: <(1)>: Ошибка при вызове метода контекста (ПрочитатьJSON): Непредвиденный символ при чтении JSON
ТекстСтраницы —
<!doctype html>
<html lang="en">
<head>
<title>Not Found</title>
</head>
<body>
<h1>Not Found</h1><p>The requested resource was not found on this server.</p>
</body>
</html>

—————————————————————————
Строка: 3
PARSERDATA_ИнформацияОМодели_Разобрать — <ВнешняяОбработка.APPLIX_RU_ПарсерЯндексМаркет_ЗМ.МодульОбъекта(60287)>: Значение не является значением объектного типа (name)
Ошибка API_СписокХарактеристикМодели — 01: <(1)>: Ошибка при вызове метода контекста (ПрочитатьJSON): Непредвиденный символ при чтении JSON
ТекстСтраницы —
<!doctype html>
<html lang="en">
<head>
<title>Not Found</title>
</head>
<body>
<h1>Not Found</h1><p>The requested resource was not found on this server.</p>
</body>
</html>

—————————————————————————
Строка: 4
PARSERDATA_ИнформацияОМодели_Разобрать — <ВнешняяОбработка.APPLIX_RU_ПарсерЯндексМаркет_ЗМ.МодульОбъекта(60287)>: Значение не является значением объектного типа (name)
Ошибка API_СписокХарактеристикМодели — 01: <(1)>: Ошибка при вызове метода контекста (ПрочитатьJSON): Непредвиденный символ при чтении JSON
ТекстСтраницы —
<!doctype html>
<html lang="en">
<head>
<title>Not Found</title>
</head>
<body>
<h1>Not Found</h1><p>The requested resource was not found on this server.</p>
</body>
</html>

Конец загрузки: 13.10.2020 14:24:09

Вот еще логи, другой товар грузил по списку

Начало загрузки: 13.10.2020 15:52:53
ОТЛАДКА — API_ЗагрузитьДанные_ЗагрузитьИдентификаторыТоваров
ОШИБКА ПАРСЕР_ЗаписатьJSON 01 — <ВнешняяОбработка.APPLIX_RU_ПарсерЯндексМаркет_ЗМ.МодульОбъекта(15541)>: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: <(1,1)>: Обращение к процедуре как к функции (ЗаписатьJSON)
ОШИБКА PARSERDATA_ОтправитьДанныеНаСервер — <ВнешняяОбработка.APPLIX_RU_ПарсерЯндексМаркет_ЗМ.МодульОбъекта(5804)>: Поле объекта не обнаружено (task_id)
Загрузка данных: 13.10.2020 15:52:53

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *