Администрирование · 13 мин
Версионность выгружаемых данных в обмене 1С и Битрикс: настройка и проверка
Что такое версионность выгружаемых данных при обмене 1С с Битрикс, зачем она нужна, как включить и проверить настройку. Практическая инструкция с типичными ошибками.
Версионность выгружаемых данных — это механизм, при котором каждая выгрузка из 1С на сайт под управлением 1С-Битрикс сопровождается номером версии. По этому номеру сайт и 1С понимают, какие данные уже переданы, какие изменились, и не пропущен ли какой-то пакет. Без версионности обмен работает «вслепую»: стороны не могут сверить, что получили актуальный и полный набор данных.
На практике версионность чаще всего встречается в двух местах: в протоколе CommerceML (выгрузка каталога, товаров, цен, остатков) и в обмене заказами. В модуле обмена с сайтом в 1С и в настройках интеграции на стороне Битрикс есть параметры, отвечающие за режим передачи изменений — полная выгрузка или выгрузка только изменений с момента последнего сеанса. Именно учёт версий позволяет режиму изменений работать корректно.
Проблемы с версионностью проявляются характерно: товары на сайте не обновляются, хотя в 1С цены изменены; заказы приходят с устаревшими статусами; после обмена часть позиций «затирается» старыми данными. Разобраться в настройке версионности — значит устранить целый класс таких сбоев.
Что такое версионность в контексте обмена 1С и Битрикс
Обмен между 1С и сайтом на Битрикс построен на передаче XML-файлов в формате CommerceML. Каждый сеанс обмена формирует один или несколько файлов: каталог товаров, предложения с ценами и остатками, документы заказов. Чтобы обе системы понимали, какая информация актуальна, пакеты снабжаются служебными признаками: датой формирования, идентификаторами объектов и признаками изменений.
Под версионностью в этой связке обычно понимают совокупность механизмов: регистрацию изменений в узле плана обмена в 1С (каждому изменённому объекту присваивается номер сообщения), передачу только зарегистрированных изменений и подтверждение приёма пакета сайтом. Пока сайт не подтвердил успешную загрузку, 1С считает изменения непереданными и отправит их повторно при следующем сеансе.
Важно отличать версионность пакетов от версионности самих объектов. В CommerceML у элементов есть поле «НомерВерсии», но Битрикс по умолчанию ориентируется прежде всего на идентификаторы (GUID) и факт получения файла. Полноценное сравнение версий объекта «что новее» в стандартном обмене ограничено — поэтому порядок сеансов обмена имеет значение.
Зачем нужна версионность и когда без неё не обойтись
Главный эффект версионности — резкое сокращение объёма передаваемых данных. Полная выгрузка каталога на десятки тысяч товаров может занимать десятки минут и создавать ощутимую нагрузку на сайт. Выгрузка только изменений передаёт несколько сотен объектов и завершается за секунды или минуты.
Вторая функция — защита от потери данных. Если сеанс обмена оборвался на середине (таймаут, перезапуск сервера, обрыв связи), нумерация сообщений позволяет 1С не потерять неподтверждённые изменения и дослать их в следующем сеансе. Без этого механизма часть правок цен или остатков просто «растворяется».
Проверьте, включён ли режим выгрузки только изменений в узле обмена
Проверьте состав плана обмена и журнал регистрации
Проверьте расписание обменов и очистку временных файлов на сайте
Версионность критична, если каталог большой, обмен запускается часто (каждые 5–30 минут), а цены и остатки меняются в течение дня. Для небольшого каталога, обновляемого раз в сутки, полная выгрузка тоже допустима — но и там режим изменений снижает нагрузку и риск таймаутов.
Где настраивается режим версионности в 1С
Основная точка настройки — узел обмена с сайтом. В типовых конфигурациях (Управление торговлей, Комплексная автоматизация, ERP) он находится в разделе администрирования интеграций: «Администрирование → Синхронизация данных → Обмен с сайтами» либо через список узлов плана обмена. В карточке узла задаётся режим выгрузки: полная или только изменения.
Ключевые параметры, влияющие на версионность:
- Режим «Выгружать только изменения» — включает передачу зарегистрированных в узле изменений с момента последнего подтверждённого сеанса.
- Состав плана обмена — какие типы объектов (номенклатура, цены, остатки, контрагенты, заказы) регистрируются к выгрузке. Если объект не входит в состав, его изменения не версионируются и не уйдут на сайт.
- Отборы на выгрузку — ограничивают перечень товаров и складов; объекты вне отбора не регистрируются.
- Расписание обмена — определяет частоту сеансов, а значит, и «глубину» накапливаемых изменений.
- 1Сделайте резервную копию базы 1С и убедитесь, что обмен с сайтом в целом работает в полном режиме.
- 2Откройте карточку узла обмена с сайтом в разделе синхронизации данных.
- 3Проверьте состав плана обмена: нужные типы объектов должны быть включены.
- 4Настройте отборы выгрузки (организация, склады, сегменты номенклатуры).
- 5Выполните одну полную выгрузку, чтобы стороны синхронизировались.
- 6Включите режим выгрузки только изменений и запустите контрольный сеанс.
- 7Измените тестовый товар в 1С, выполните обмен и убедитесь, что изменение появилось на сайте.
После включения режима изменений первая выгрузка обязательно должна быть полной: иначе сайт и 1С окажутся в рассинхронизированном состоянии, и часть товаров на сайте останется устаревшей без каких-либо ошибок в журнале.
Настройки на стороне Битрикс
На стороне сайта обмен обслуживает модуль интеграции с 1С (страница настроек интеграции в административном разделе). Здесь задаются параметры приёма файлов CommerceML: какие инфоблоки участвуют в обмене, что делать с элементами, отсутствующими в выгрузке, как обрабатывать деактивацию и удаление.
Для корректной работы версионности важны несколько моментов. Во-первых, действие над элементами, которых нет в файле импорта: если стоит «деактивировать» или «удалить», то при частичной выгрузке изменений сайт может ошибочно деактивировать товары, просто не вошедшие в пакет изменений. При режиме выгрузки только изменений этот параметр нужно выставлять осторожно — обычно «ничего не делать».
Во-вторых, время жизни и очистка временных файлов импорта. Если старые файлы выгрузки не удаляются и обмен запускается параллельно или с перехлёстом, возможна загрузка устаревшего пакета поверх нового — внешне это выглядит как «откат» данных. Стоит исключить одновременный запуск нескольких сеансов обмена и настроить регламентную очистку временных каталогов.
Как проверить, что версионность работает правильно
Проверка строится на контролируемом изменении. Выберите тестовый товар, измените в 1С одно поле (например, цену или остаток), выполните сеанс обмена и сверьте результат на сайте. Затем проверьте обратный сценарий: создайте заказ на сайте и убедитесь, что он загрузился в 1С, а его статус после обработки в 1С вернулся на сайт.
Полезно посмотреть внутрь самих файлов обмена. В настройках узла можно включить сохранение файлов выгрузки в каталог. Откройте XML и проверьте: в файле только изменённые объекты, у элементов заполнены идентификаторы, атрибуты «Статус» и пометки удаления соответствуют ожиданиям. Если в файле изменений оказался весь каталог — регистрация изменений не работает, и 1С фактически делает полную выгрузку.
Как проверить результат
В файле только изменённые объекты
Файл содержит весь каталог при включённом режиме изменений
Сеансы завершаются без ошибок, объёмы пакетов небольшие
Повторяющиеся ошибки приёма, таймауты, ретрансляции
Изменения появляются, остальные товары не затронуты
Товары деактивируются или цены откатываются
Номер отправленного сообщения растёт, принятое подтверждение фиксируется
Номер принятого сообщения не меняется — сайт не подтверждает приём
Дополнительный контроль — журнал обмена на стороне Битрикс и логи импорта. Ошибки вида «файл не найден», «ошибка распаковки» или превышение лимита времени указывают на инфраструктурные проблемы, которые мешают подтверждению пакетов и ломают версионность косвенно.
Типичные ошибки и ограничения
Самая частая ошибка — включение режима изменений без предварительной полной выгрузки. Вторая по частоте — очистка регистрации изменений вручную (например, через обработки «чистки» планов обмена) без понимания последствий: изменения, накопленные к выгрузке, будут потеряны, и сайт их никогда не получит.
Важное ограничение: стандартный обмен не сравнивает версии одного и того же объекта «кто новее». Если один и тот же товар правится и в 1С, и на сайте, победит та сторона, чья выгрузка выполнена последней. Поэтому источник истины по каждому типу данных должен быть зафиксирован: товары и цены — в 1С, заказы создаются на сайте, статусы заказов — в 1С.
Как выбрать действие
Полная выгрузка против выгрузки изменений
Оба режима имеют право на существование, и часто их комбинируют: днём работает выгрузка изменений, ночью — полная выгрузка для гарантированной сверки. Такой гибрид страхует от накопленных рассинхронизаций, которые версионность сама по себе не ловит (например, если объект удалили на сайте вручную).
| Критерий | Полная выгрузка | Выгрузка изменений |
|---|---|---|
| Объём данных | Весь каталог каждый раз | Только изменённые объекты |
| Нагрузка на сайт | Высокая, заметная при большом каталоге | Низкая |
| Устойчивость к рассинхронизации | Высокая — каждый раз приводит сайт к состоянию 1С | Зависит от подтверждения пакетов |
| Риск массовой деактивации | Низкий при корректных отборах | Зависит от настройки обработки отсутствующих элементов |
| Когда выбирать | Малый каталог, редкий обмен, восстановление после сбоев | Частый обмен, крупный каталог, динамичные цены и остатки |
Перед любыми экспериментами с режимом обмена зафиксируйте текущее состояние: выгрузите список активных товаров с сайта и сохраните файлы последней успешной выгрузки. Если настройка пойдёт не так, будет с чем сравнить и к чему откатиться.
FAQ
Где именно в 1С включается выгрузка только изменений?
В карточке узла обмена с сайтом: раздел администрирования синхронизации данных, далее список обменов с сайтами или узлов плана обмена. Точный путь зависит от конфигурации — в УТ, КА и ERP названия разделов немного различаются, но узел обмена с сайтом ищется по слову «сайт» в настройках синхронизации.
Почему при режиме изменений выгружается весь каталог?
Чаще всего регистрация изменений была сброшена или сеанс обмена завершился с ошибкой, и 1С не получила подтверждения приёма. Также полный объём выгружается, если изменились отборы узла или выполнялась принудительная полная выгрузка. Проверьте журнал обмена и номера сообщений узла.
Опасно ли очищать регистрацию изменений в узле обмена?
Да. Удаление регистрации означает, что накопленные, но ещё не переданные изменения будут потеряны — сайт их не получит никогда. Очистка оправдана только перед запланированной полной выгрузкой, которая приведёт сайт к актуальному состоянию.
Что делать, если товары на сайте деактивируются после обмена изменениями?
Остановите обмен и проверьте в настройках интеграции Битрикс параметр действия над элементами, отсутствующими в файле импорта. При частичных выгрузках он должен быть «ничего не делать». Затем выполните полную выгрузку, чтобы вернуть деактивированные товары.
Нужно ли настраивать версионность отдельно для заказов?
Для заказов действует похожая логика: 1С запрашивает у сайта изменения с момента последнего сеанса, а сайт отдаёт заказы по критериям даты и статуса. Отдельного переключателя версий обычно нет, но важно не менять задним числом параметры отбора заказов и следить, чтобы сеансы не пропускались надолго.
Как понять, что сайт подтвердил приём пакета?
В узле обмена 1С номер принятого сообщения должен увеличиваться после успешных сеансов. Если номер отправленного растёт, а принятого — нет, сайт не подтверждает загрузку: проверяйте ошибки импорта на стороне Битрикс, таймауты и права на запись временных каталогов.
Что важно запомнить
Версионность в обмене 1С и Битрикс — это учёт и нумерация пакетов изменений: она сокращает объём передачи и защищает от потери данных. Включайте выгрузку только изменений только после полной выгрузки, проверяйте параметр обработки отсутствующих элементов на сайте и контролируйте результат по журналам и тестовым изменениям.