Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

ERR_1C_JSON_PARSE_FAILED 1С:Предприятие и СУБД

Ошибка парсинга документа JSON в 1С:Предприятие 8.3 — Решение

Обновлено: 25.08.2026 · Официальная документация ↗
  • Исключение: Ошибка парсинга документа JSON / Недопустимый символ при чтении JSON.
  • Сбой интеграции с внешними REST API и микросервисами.
  • Неправильный формат дат (ISO 8601 vs 1C Date Format).
  • Наличие висячих запятых (trailing commas) или одинарных кавычек вместо двойных.

1. Проверка синтаксиса JSON через безопасный блок

Спецификация RFC 8259 требует строгого использования двойных кавычек " для ключей и строковых значений, а также запрещает завершающие запятые перед закрывающими скобками } или ].

// Безопасный парсинг входящего JSON
Чтение = Новый ЧтениеJSON;
Попытка
    Чтение.УстановитьСтроку(ВходящаяСтрокаJSON);
    // Чтение в структуру или соответствие
    Результат = ПрочитатьJSON(Чтение, Истина);
Исключение
    ВызватьИсключение "Невалидный JSON: " + ОписаниеОшибки();
Фиксировать
    Чтение.Закрыть();
КонецПопытки;

2. Настройка восстановления формата дат (ISO 8601)

По умолчанию 1С ожидает даты в кастомном представлении. Для стандартных дат REST API используйте ФорматДатыJSON.ISO:

// Десериализация дат формата ISO8601 (2026-03-31T12:00:00Z)
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(ВходящийJSON);

Настройки = Новый НастройкиСериализацииJSON;
Настройки.ФорматДаты = ФорматДатыJSON.ISO;

Данные = ПрочитатьJSON(Чтение, Ложь, , , , Настройки);

3. Предобработка поврежденных строк перед разбором

// Удаление висячих запятых регулярным выражением перед парсингом
СтрокаJSON = СтрЗаменить(СтрокаJSON, ",}", "}");
СтрокаJSON = СтрЗаменить(СтрокаJSON, ",]", "]");
💡 Практика специалистов: Если ключи JSON приходят из сторонних API с недопустимыми для идентификаторов 1С символами (пробелы, спецсимволы, цифра в начале), всегда используйте второй параметр ПрочитатьJSON(..., Ложь) для парсинга в объект 'Соответствие'.

Частые вопросы (FAQ)

Почему 1С парсит JSON в Соответствие вместо Структуры?

Если второй параметр метода ПрочитатьJSON() установлен в Ложь, создается Соответствие. Если Истина — Структура. Если в JSON есть ключи с дефисами (например, 'user-id'), Структура вызовет ошибку, так как имя свойства 1С не может содержать дефис.

Как сериализовать ТаблицуЗначений в JSON?

Сконвертируйте ТаблицуЗначений в Массив Структур строк, либо используйте сериализатор XDTO / ЗаписатьJSON() с кастомной функцией преобразования.

Что делать с числами большой точности (Int64), которые округляются в 1С?

Используйте свойство ЧтениеJSON.Прочитать() в потоковом режиме, считывая длинные числовые ID как строковые токены.

Как обработать значения null в JSON документе?

Значение null из JSON в платформе 1С автоматически преобразуется в тип Null (равно значению Null).

Полезные материалы
Рекомендуем