Автоматизация · 13 мин
Что такое парсинг в 1С и как его применять на практике
Парсинг в 1С: что это, зачем нужен разбор XML, JSON, CSV и сайтов, какие механизмы платформы использовать и как избежать ошибок при загрузке данных.
Парсинг в контексте 1С — это автоматический разбор структурированных или полуструктурированных данных с целью извлечь из них нужные значения и загрузить в информационную базу. Источником может быть файл обмена (XML, JSON, CSV, Excel), ответ веб-сервиса, электронное письмо с вложением или страница сайта поставщика. Результатом парсинга становятся заполненные справочники, документы и регистры без ручного ввода.
Термин пришёл из общей практики программирования: parsing — синтаксический анализ текста по заданным правилам. В 1С парсинг почти всегда связан с интеграционными задачами: обмен с банком, загрузка прайсов контрагентов, получение курсов валют, обработка электронных документов, выгрузки из маркетплейсов и CRM.
Важно различать парсинг и обычный импорт. Импорт предполагает, что данные уже подготовлены в понятном программе формате, а парсинг — что структуру источника нужно сначала проанализировать: найти нужные узлы, сопоставить поля, преобразовать типы, обработать ошибки формата. Поэтому парсинг сложнее и требует продуманной обработки исключительных ситуаций.
Какие задачи решает парсинг в 1С
На практике парсинг встречается в любом сценарии, где 1С получает данные извне. Типовые примеры: загрузка банковской выписки из клиент-банка, приём электронных накладных и счетов-фактур от операторов ЭДО, импорт каталога товаров с ценами от поставщика, получение остатков со склада маркетплейса, разбор заявок с сайта.
Отдельный класс задач — парсинг сайтов (веб-скрапинг): когда поставщик не даёт файл, а данные есть только на страницах каталога. Технически это возможно через HTTPЗапрос и разбор HTML, но такой подход хрупок: любая смена вёрстки сайта ломает обработку. Кроме того, массовый сбор данных с чужих сайтов может нарушать условия использования ресурса и законодательство о персональных данных — перед запуском такого сценария стоит оценить правовые риски.
Также парсинг применяют внутри самой экосистемы 1С: разбор файлов выгрузки из другой базы, обработка ответов расширений, чтение логов и журналов регистрации для анализа ошибок.
Определите формат файла: XML, JSON, CSV, XLSX — от этого зависит механизм чтения
Уточните формат ответа (обычно JSON) и способ авторизации
Оцените риски веб-скрапинга и поищите официальный способ выгрузки
Проверьте, не решается ли задача типовым планом обмена без самописного парсера
Основные форматы данных и механизмы платформы
Платформа 1С:Предприятие содержит встроенные объекты для чтения популярных форматов, и в большинстве случаев сторонние библиотеки не нужны. Выбор механизма зависит от формата источника и объёма данных.
| Формат | Объект платформы | Типовой сценарий |
|---|---|---|
| XML | ЧтениеXML, XDTO-пакеты | ЭДО, обмены, выгрузки конфигураций |
| JSON | ЧтениеJSON | Ответы API, веб-сервисы, маркетплейсы |
| CSV / TXT | ЧтениеТекста, построчный разбор | Прайсы, банковские выписки |
| XLSX | ТабличныйДокумент.Прочитать() | Файлы Excel от контрагентов |
| HTML | HTTPЗапрос + разбор строк | Веб-скрапинг (крайняя мера) |
Для XML большого объёма используют потоковое чтение через ЧтениеXML — оно не загружает весь файл в память, а идёт по узлам последовательно. Это критично при разборе файлов в сотни мегабайт: попытка построить полную модель документа в памяти может привести к аварийному завершению сеанса.
Для обмена между типовыми конфигурациями платформа предлагает формат EnterpriseData на базе XDTO: структура документа описана схемой, и парсинг сводится к штатному чтению объекта XDTO без ручного разбора узлов.
Как устроен типовой процесс парсинга
Независимо от источника схема обработки повторяется: получить данные, проверить формат, разобрать структуру, сопоставить поля с объектами базы, записать результат и зафиксировать ошибки. Пропуск любого шага — типовая причина того, что загрузка «вроде отработала», но данных в базе нет или они искажены.
- 1Получите образец файла и изучите его структуру: кодировку, разделители, вложенность узлов
- 2Выберите механизм чтения: ЧтениеXML, ЧтениеJSON, ЧтениеТекста или ТабличныйДокумент
- 3Напишите цикл разбора с извлечением полей и проверкой обязательных значений
- 4Настройте поиск существующих объектов (по коду, ИНН, артикулу), чтобы не создавать дубли
- 5Записывайте данные в транзакции с обработкой исключений
- 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.2026» легко прочитать как 2 января, если источник использует американский формат. Всегда проверяйте формат на реальном образце и делайте явное преобразование с обработкой ошибки.
Ещё одна проблема — производительность при записи. Запись каждого элемента справочника отдельной транзакцией в цикле на десятки тысяч позиций занимает неоправданно много времени и нагружает СУБД. Группируйте запись в разумные порции и отключайте лишние проверки там, где это допустимо логикой.
Что выбрать: своя обработка, типовые механизмы или внешние компоненты
Сравнение подходов
Подходит для обмена между типовыми конфигурациями; не требует кода, но ограничен стандартным составом данных
Гибкость под любой формат; требует разработки, тестирования и поддержки при смене формата источника
Быстрый старт для Excel и CSV без программирования; сложные сценарии с API и XML могут не покрываться
Нестандартные форматы и высокая скорость; усложняют обновление платформы и переносимость решения
Правило выбора простое: если задача решается типовым механизмом конфигурации — используйте его, прежде чем писать свой парсер. Самописная обработка оправдана, когда формат источника нестандартный, меняется редко и требования к сопоставлению данных специфичны для вашего учёта.
Как выбрать действие
Как проверить результат парсинга
Признак корректной загрузки — не отсутствие сообщений об ошибках, а совпадение контрольных итогов. Сравните количество строк в источнике и число обработанных записей, суммы по документам, количество новых элементов справочника. Расхождение даже на одну строку — повод найти причину до запуска обработки в штатном режиме.
Как проверить результат
Совпадает с числом строк/узлов источника с учётом отклонённых
Часть строк потеряна без записи в журнале
Итоги по суммам и количеству сходятся с файлом
Расхождения в суммах — ошибка преобразования чисел
Новые элементы создаются только при реальном отсутствии
Появляются дубли с похожими наименованиями
Текст читаем, даты соответствуют источнику
Кракозябры, даты смещены на месяц/день
Сохраняйте исходные файлы загрузок хотя бы несколько месяцев. Когда через время обнаружится расхождение в учёте, исходник позволит восстановить, что именно пришло от поставщика, и отделить ошибку парсинга от ошибки источника.
Частые вопросы о парсинге в 1С
Чем парсинг отличается от обмена данными между базами 1С?
Обмен между базами обычно использует стандартные форматы и планы обмена, где структура данных известна заранее и контролируется платформой. Парсинг подразумевает разбор внешней, не контролируемой вами структуры: файла поставщика, ответа чужого API, страницы сайта. На практике граница условна — внутри типового обмена тоже работает разбор XML.
Можно ли парсить данные в 1С без программирования?
Для простых случаев — да. Во многих конфигурациях есть встроенные загрузки из Excel и CSV, а для банковских выписок и ЭДО обмены работают штатно. Но как только формат нестандартный или нужен разбор API, без кода на встроенном языке не обойтись.
Что делать, если поставщик регулярно меняет структуру файла?
Делайте обработку устойчивой: ищите колонки по заголовкам, а не по номерам, проверяйте наличие обязательных полей до начала записи и выводите понятное сообщение при несовпадении структуры. Договоритесь с поставщиком о фиксированном формате или запросите доступ к API, если он есть.
Законно ли парсить сайты поставщиков и конкурентов?
Однозначного ответа нет: всё зависит от условий использования сайта, объёма запросов и характера данных. Сбор общедоступных цен для внутреннего анализа и массовое копирование чужого каталога — разные ситуации. Персональные данные собирать без оснований нельзя. Безопаснее запросить официальный файл выгрузки или доступ к API.
Почему большой XML-файл «вешает» сеанс 1С?
Скорее всего, файл целиком загружается в память — например, строится полная объектная модель документа. Перейдите на потоковое чтение через ЧтениеXML: обрабатывайте узлы последовательно и записывайте данные порциями. Это резко снижает потребление памяти.
Как организовать регулярный автоматический парсинг?
Оформите обработку как процедуру в общем модуле и вызовите её из регламентного задания с нужным расписанием. Добавьте журналирование каждого запуска, уведомление об ошибках (например, запись в регистр или письмо ответственному) и защиту от одновременного запуска двух экземпляров задания.
Что важно запомнить
Парсинг в 1С — это разбор внешних данных и загрузка их в базу. Платформа даёт встроенные инструменты для XML, JSON, текста и HTTP; типовые обмены решают стандартные задачи без кода. Ключ к надёжной загрузке — поиск объектов по устойчивым ключам, транзакции, журнал ошибок и обязательная проверка на копии базы со сверкой контрольных итогов.