К статье
Практический материал

Автоматизация · 13 мин

Что такое парсинг в 1С и как его применять на практике

Парсинг в 1С: что это, зачем нужен разбор XML, JSON, CSV и сайтов, какие механизмы платформы использовать и как избежать ошибок при загрузке данных.

Парсинг в контексте 1С — это автоматический разбор структурированных или полуструктурированных данных с целью извлечь из них нужные значения и загрузить в информационную базу. Источником может быть файл обмена (XML, JSON, CSV, Excel), ответ веб-сервиса, электронное письмо с вложением или страница сайта поставщика. Результатом парсинга становятся заполненные справочники, документы и регистры без ручного ввода.

Термин пришёл из общей практики программирования: parsing — синтаксический анализ текста по заданным правилам. В 1С парсинг почти всегда связан с интеграционными задачами: обмен с банком, загрузка прайсов контрагентов, получение курсов валют, обработка электронных документов, выгрузки из маркетплейсов и CRM.

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

Какие задачи решает парсинг в 1С

На практике парсинг встречается в любом сценарии, где 1С получает данные извне. Типовые примеры: загрузка банковской выписки из клиент-банка, приём электронных накладных и счетов-фактур от операторов ЭДО, импорт каталога товаров с ценами от поставщика, получение остатков со склада маркетплейса, разбор заявок с сайта.

Отдельный класс задач — парсинг сайтов (веб-скрапинг): когда поставщик не даёт файл, а данные есть только на страницах каталога. Технически это возможно через HTTPЗапрос и разбор HTML, но такой подход хрупок: любая смена вёрстки сайта ломает обработку. Кроме того, массовый сбор данных с чужих сайтов может нарушать условия использования ресурса и законодательство о персональных данных — перед запуском такого сценария стоит оценить правовые риски.

Также парсинг применяют внутри самой экосистемы 1С: разбор файлов выгрузки из другой базы, обработка ответов расширений, чтение логов и журналов регистрации для анализа ошибок.

Данные приходят файломПрайс, выписка, накладная

Определите формат файла: XML, JSON, CSV, XLSX — от этого зависит механизм чтения

Данные доступны по APIREST, HTTP-сервис

Уточните формат ответа (обычно JSON) и способ авторизации

Данные только на сайтеНет файла и API

Оцените риски веб-скрапинга и поищите официальный способ выгрузки

Обмен между базами 1СДве конфигурации

Проверьте, не решается ли задача типовым планом обмена без самописного парсера

Основные форматы данных и механизмы платформы

Платформа 1С:Предприятие содержит встроенные объекты для чтения популярных форматов, и в большинстве случаев сторонние библиотеки не нужны. Выбор механизма зависит от формата источника и объёма данных.

ФорматОбъект платформыТиповой сценарий
XMLЧтениеXML, XDTO-пакетыЭДО, обмены, выгрузки конфигураций
JSONЧтениеJSONОтветы API, веб-сервисы, маркетплейсы
CSV / TXTЧтениеТекста, построчный разборПрайсы, банковские выписки
XLSXТабличныйДокумент.Прочитать()Файлы Excel от контрагентов
HTMLHTTPЗапрос + разбор строкВеб-скрапинг (крайняя мера)

Для XML большого объёма используют потоковое чтение через ЧтениеXML — оно не загружает весь файл в память, а идёт по узлам последовательно. Это критично при разборе файлов в сотни мегабайт: попытка построить полную модель документа в памяти может привести к аварийному завершению сеанса.

Для обмена между типовыми конфигурациями платформа предлагает формат EnterpriseData на базе XDTO: структура документа описана схемой, и парсинг сводится к штатному чтению объекта XDTO без ручного разбора узлов.

Как устроен типовой процесс парсинга

Независимо от источника схема обработки повторяется: получить данные, проверить формат, разобрать структуру, сопоставить поля с объектами базы, записать результат и зафиксировать ошибки. Пропуск любого шага — типовая причина того, что загрузка «вроде отработала», но данных в базе нет или они искажены.

Порядок действий при парсинге файла
  1. 1
    Получите образец файла и изучите его структуру: кодировку, разделители, вложенность узлов
  2. 2
    Выберите механизм чтения: ЧтениеXML, ЧтениеJSON, ЧтениеТекста или ТабличныйДокумент
  3. 3
    Напишите цикл разбора с извлечением полей и проверкой обязательных значений
  4. 4
    Настройте поиск существующих объектов (по коду, ИНН, артикулу), чтобы не создавать дубли
  5. 5
    Записывайте данные в транзакции с обработкой исключений
  6. 6
    Протестируйте на копии базы и сверьте контрольные итоги с источником

Ключевой момент — сопоставление полей. Название товара у поставщика почти никогда не совпадает с наименованием в вашей базе, поэтому нужны правила поиска: по артикулу, штрихкоду, ИНН контрагента. Если однозначного ключа нет, новые элементы создают в отдельной папке справочника, чтобы затем разобрать их вручную.

Обязательно ведите журнал загрузки: сколько строк прочитано, сколько записано, сколько отклонено и по какой причине. Без такого протокола найти причину расхождений через неделю после загрузки практически невозможно.

Пример разбора JSON

Ответы веб-сервисов чаще всего приходят в JSON. Встроенный язык позволяет прочитать их в структуру или соответствие несколькими строками кода:

Чтение = Новый ЧтениеJSON;

Чтение.УстановитьСтроку(ТелоОтвета);

Данные = ПрочитатьJSON(Чтение, Истина);

Чтение.Закрыть();

Для Каждого СтрокаТовара Из Данные["items"] Цикл

// поиск и запись номенклатуры

КонецЦикла;

Параметр Истина у ПрочитатьJSON возвращает соответствие вместо структуры — это удобно, когда имена полей содержат символы, недопустимые для ключей структуры, или когда заранее неизвестен состав полей.

Парсинг XML и обмены через XDTO

XML — основной формат обмена в мире 1С: электронные документы, выгрузки из конфигураций, файлы CommerceML от сайтов. Простые файлы разбирают потоковым чтением через ЧтениеXML с проверкой типа узла и имени элемента.

Когда у файла есть формальная схема (XSD), правильнее использовать фабрику XDTO: платформа сама контролирует типы и обязательность полей, а код сводится к чтению объекта и обращению к его свойствам. Это снижает количество ошибок разбора, но требует, чтобы схема была загружена в конфигурацию или создана программно.

Типовая ошибка при работе с XML — игнорирование пространств имён и кодировки. Файл в кодировке Windows-1251, прочитанный как UTF-8, даст нечитаемые строки, а узлы с префиксами пространств имён не найдутся при поиске по короткому имени. Перед разбором проверяйте декларацию XML в начале файла.

Получение данных по HTTP и парсинг ответов API

Для обращения к внешним сервисам используют объект HTTPСоединение и HTTPЗапрос: задают адрес ресурса, заголовки, при необходимости тело запроса, выполняют метод GET или POST и читают ответ. Далее ответ парсится как JSON или XML по описанным выше правилам.

Обязательные элементы устойчивой интеграции: таймаут соединения, проверка кода ответа (200 — успех, 4xx и 5xx — ошибки), обработка ситуации недоступности сервиса и повторные попытки с паузой. Без этого регламентное задание загрузки будет молча падать при любом сбое сети.

Данные авторизации (токены, логины, пароли) не хранят в коде обработки открытым текстом. Используйте безопасное хранилище или хотя бы отдельные константы с ограниченным доступом — утечка токена даёт постороннему доступ к данным ваших контрагентов и заказов.

Типовые ошибки и как их избежать

Типичные ошибки
01
Поиск объектов только по наименованию — приводит к дублям справочников при малейшем различии в написании
02
Чтение всего файла в память — большие XML вызывают нехватку памяти и падение сеанса
03
Отсутствие транзакции — при сбое в середине загрузки в базе остаётся частично записанный документ
04
Игнорирование кодировки и формата чисел — цены с запятой вместо точки превращаются в ноль или текст
05
Отсутствие журнала ошибок — невозможно понять, какие строки не загрузились и почему
06
Жёсткая привязка к номерам колонок Excel — поставщик добавил колонку, и все данные сместились

Особого внимания заслуживает преобразование типов. Числа, даты и булевы значения во внешних файлах — это строки, и их формат зависит от региональных настроек источника. Дату «01.02.2026» легко прочитать как 2 января, если источник использует американский формат. Всегда проверяйте формат на реальном образце и делайте явное преобразование с обработкой ошибки.

Ещё одна проблема — производительность при записи. Запись каждого элемента справочника отдельной транзакцией в цикле на десятки тысяч позиций занимает неоправданно много времени и нагружает СУБД. Группируйте запись в разумные порции и отключайте лишние проверки там, где это допустимо логикой.

Что выбрать: своя обработка, типовые механизмы или внешние компоненты

Сравнение подходов

Типовой обмен (планы обмена, EnterpriseData)

Подходит для обмена между типовыми конфигурациями; не требует кода, но ограничен стандартным составом данных

Собственная обработка на встроенном языке

Гибкость под любой формат; требует разработки, тестирования и поддержки при смене формата источника

Универсальные загрузчики (расширения, обработки)

Быстрый старт для Excel и CSV без программирования; сложные сценарии с API и XML могут не покрываться

Внешние компоненты и скрипты

Нестандартные форматы и высокая скорость; усложняют обновление платформы и переносимость решения

Правило выбора простое: если задача решается типовым механизмом конфигурации — используйте его, прежде чем писать свой парсер. Самописная обработка оправдана, когда формат источника нестандартный, меняется редко и требования к сопоставлению данных специфичны для вашего учёта.

Маршрут решения

Как выбрать действие

Источник — другая база 1С типовой конфигурацииНастройте типовой план обмена или EnterpriseData, свой парсер не нужен
Поставщик присылает Excel или CSV с постоянной структуройИспользуйте универсальную загрузку из табличного документа или простую обработку с ЧтениеТекста
Данные доступны через API в формате JSONПишите интеграцию на HTTPСоединение + ЧтениеJSON с журналом ошибок и таймаутами
Данные есть только на веб-страницеСначала запросите у владельца файл или API; скрапинг — последний вариант с оценкой правовых рисков

Как проверить результат парсинга

Признак корректной загрузки — не отсутствие сообщений об ошибках, а совпадение контрольных итогов. Сравните количество строк в источнике и число обработанных записей, суммы по документам, количество новых элементов справочника. Расхождение даже на одну строку — повод найти причину до запуска обработки в штатном режиме.

Контрольные точки

Как проверить результат

Количество записей
Норма

Совпадает с числом строк/узлов источника с учётом отклонённых

Тревожный признак

Часть строк потеряна без записи в журнале

Контрольные суммы
Норма

Итоги по суммам и количеству сходятся с файлом

Тревожный признак

Расхождения в суммах — ошибка преобразования чисел

Дубли справочников
Норма

Новые элементы создаются только при реальном отсутствии

Тревожный признак

Появляются дубли с похожими наименованиями

Кириллица и даты
Норма

Текст читаем, даты соответствуют источнику

Тревожный признак

Кракозябры, даты смещены на месяц/день

Сохраняйте исходные файлы загрузок хотя бы несколько месяцев. Когда через время обнаружится расхождение в учёте, исходник позволит восстановить, что именно пришло от поставщика, и отделить ошибку парсинга от ошибки источника.
ПЗ
Практическое замечание

Частые вопросы о парсинге в 1С

Чем парсинг отличается от обмена данными между базами 1С?

Обмен между базами обычно использует стандартные форматы и планы обмена, где структура данных известна заранее и контролируется платформой. Парсинг подразумевает разбор внешней, не контролируемой вами структуры: файла поставщика, ответа чужого API, страницы сайта. На практике граница условна — внутри типового обмена тоже работает разбор XML.

Можно ли парсить данные в 1С без программирования?

Для простых случаев — да. Во многих конфигурациях есть встроенные загрузки из Excel и CSV, а для банковских выписок и ЭДО обмены работают штатно. Но как только формат нестандартный или нужен разбор API, без кода на встроенном языке не обойтись.

Что делать, если поставщик регулярно меняет структуру файла?

Делайте обработку устойчивой: ищите колонки по заголовкам, а не по номерам, проверяйте наличие обязательных полей до начала записи и выводите понятное сообщение при несовпадении структуры. Договоритесь с поставщиком о фиксированном формате или запросите доступ к API, если он есть.

Законно ли парсить сайты поставщиков и конкурентов?

Однозначного ответа нет: всё зависит от условий использования сайта, объёма запросов и характера данных. Сбор общедоступных цен для внутреннего анализа и массовое копирование чужого каталога — разные ситуации. Персональные данные собирать без оснований нельзя. Безопаснее запросить официальный файл выгрузки или доступ к API.

Почему большой XML-файл «вешает» сеанс 1С?

Скорее всего, файл целиком загружается в память — например, строится полная объектная модель документа. Перейдите на потоковое чтение через ЧтениеXML: обрабатывайте узлы последовательно и записывайте данные порциями. Это резко снижает потребление памяти.

Как организовать регулярный автоматический парсинг?

Оформите обработку как процедуру в общем модуле и вызовите её из регламентного задания с нужным расписанием. Добавьте журналирование каждого запуска, уведомление об ошибках (например, запись в регистр или письмо ответственному) и защиту от одновременного запуска двух экземпляров задания.

Итог

Что важно запомнить

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