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

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

Как выгрузить цены из 1С в Битрикс

Как выгрузить цены из 1С в Битрикс: типовой обмен, настройка типов цен, выгрузка через CommerceML, проверка результата и решение типичных ошибок обмена.

Выгрузка цен из 1С в Битрикс — стандартная задача при интеграции учётной системы с интернет-магазином. В большинстве случаев она решается штатным модулем обмена с сайтом, который передаёт данные по протоколу CommerceML: 1С формирует XML-файлы с товарами и ценами, а Битрикс принимает их через специальный URL и обновляет каталог.

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

Ниже разобраны основные способы выгрузки, настройка типового обмена, проверка результата и типичные ошибки. Материал ориентирован на связку 1С:Управление торговлей / 1С:Комплексная автоматизация / 1С:ERP с 1С-Битрикс: Управление сайтом (редакции, где есть интернет-магазин).

Какие способы выгрузки цен существуют

Существует три практических подхода. Первый — типовой обмен с сайтом через CommerceML: подходит большинству магазинов, не требует программирования и поддерживается обоими вендорами. Второй — выгрузка через файл (CSV/XML) с последующим импортом в Битрикс вручную или по расписанию; это вариант для нестандартных конфигураций 1С без модуля обмена. Третий — обмен через REST API Битрикса с доработкой на стороне 1С или через промежуточный сервис; он оправдан, когда нужна нестандартная логика ценообразования, которую типовой обмен не покрывает.

Выбор зависит от конфигурации 1С и требований к актуальности. Если у вас УТ 11, КА 2 или ERP — почти всегда правильный ответ: типовой обмен. Ручной файловый импорт имеет смысл как временная мера или для старых самописных конфигураций.

Сравнение способов выгрузки

Типовой обмен CommerceML

Подходит для УТ 11, КА 2, ERP. Не требует кода, поддерживает расписание и выгрузку только изменений. Ограничение — логика ценообразования должна укладываться в типовые механизмы.

Импорт файла CSV/XML

Подходит для конфигураций без модуля обмена. Требует ручного контроля формата и не даёт интерактивности. Ошибки в структуре файла приводят к частичной загрузке.

Обмен через REST API

Для нестандартных сценариев: несколько валют, персональные цены, сложные скидки. Требует разработки и сопровождения, ошибки в коде могут испортить данные каталога.

Подготовка: что проверить в 1С и в Битриксе до обмена

В 1С убедитесь, что цены номенклатуры реально установлены: откройте «Цены номенклатуры» (или историю цен) и проверьте, что нужный тип цен заполнен и действует на текущую дату. Частая ситуация: обмен отрабатывает без ошибок, но цены на сайте не появляются, потому что в 1С они просто не заданы или установлены будущей датой.

На стороне Битрикса проверьте, что создан соответствующий тип цен (Настройки → Торговый каталог → Типы цен), например BASE (базовая цена). Запомните его символьный код — он понадобится при сопоставлении. Также убедитесь, что у группы «Все пользователи» (или нужной группы покупателей) есть право видеть этот тип цены, иначе цена выгрузится, но не отобразится на витрине.

Отдельно проверьте технические условия: сайт должен быть доступен по HTTPS или HTTP с машины, где работает 1С; пользователь, под которым выполняется обмен, должен иметь права на обмен с сайтом (обычно это отдельный пользователь с правами на импорт каталога).

Настройка обмена с сайтом в 1С

В 1С:Управление торговлей 11 перейдите в раздел «Администрирование» → «CRM и продажи» (или «Настройки интеграции») → «Обмен с сайтом». Создайте новый узел обмена. На вкладке основных настроек укажите адрес сайта вида https://ваш-сайт/bitrix/admin/1c_exchange.php, логин и пароль пользователя Битрикса с правами на обмен.

Нажмите «Проверить соединение» — 1С должна получить ответ от сайта. Если проверка не проходит, причины обычно такие: неверный URL, блокировка со стороны хостинга или файрвола, неверные учётные данные, либо отключена интеграция с 1С в настройках Битрикса.

На вкладке «Выгрузка товаров» настройте отбор номенклатуры (если нужно выгружать не весь каталог) и укажите, какие данные передавать. Для цен критична настройка таблицы типов цен: в списке «Типы цен» отметьте нужные типы и в колонке соответствия укажите идентификатор, под которым цена уйдёт на сайт. В типовом модуле это поле часто называется «Тип цены на сайте» или задаётся через XML-идентификатор.

Порядок настройки узла обмена в 1С
  1. 1
    Откройте Администрирование → Обмен с сайтом и создайте новый узел
  2. 2
    Укажите URL обмена, логин и пароль пользователя Битрикса
  3. 3
    Нажмите «Проверить соединение» и устраните ошибки связи
  4. 4
    На вкладке выгрузки товаров задайте отбор номенклатуры
  5. 5
    В таблице типов цен выберите нужный тип и задайте ему идентификатор для сайта
  6. 6
    Сохраните узел и выполните обмен вручную кнопкой «Выполнить обмен»

Настройка приёма данных на стороне Битрикса

В административной части Битрикса откройте Настройки → Интеграция с 1С (в разделе магазина). Включите обмен, при необходимости ограничьте доступ по IP. Обратите внимание на параметры импорта: размер части файла, время шага, использование транзакций. Для больших каталогов оставьте пошаговую загрузку — она защищает от тайм-аутов PHP.

Сопоставление типов цен происходит по идентификатору из XML-файла. В типовом сценарии Битрикс при импорте создаёт типы цен автоматически, если их нет, либо сопоставляет по XML ID. Проверьте после первой выгрузки: Товары → Торговый каталог → Типы цен — у выгруженного типа должен быть внешний код (XML_ID), совпадающий с идентификатором из 1С.

Если на сайте уже существует тип цены BASE и вы хотите, чтобы цены из 1С попадали именно в него, убедитесь, что у этого типа прописан правильный XML_ID. Иначе Битрикс создаст новый тип цены, и на витрине останется старая, не обновляемая цена.

Запуск обмена и режим выгрузки только изменений

Первый обмен всегда выполняйте вручную и в полном режиме: в узле обмена нажмите «Выполнить обмен». Полная выгрузка может занять заметное время при большом каталоге — это нормально. После успешного завершения настройте регламент: в 1С для узла обмена можно задать расписание (например, каждые 15–30 минут), и обмен будет выполняться фоновым заданием.

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

Если цены меняются часто, а каталог большой, разумный компромисс — частый обмен в режиме изменений (каждые 15–30 минут) плюс полный обмен ночью. Так витрина остаётся актуальной, а пиковая нагрузка на сайт смещена на нерабочее время.
ПЗ
Практическое замечание

Проверка результата выгрузки

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

Если цена в админке есть, а на витрине нет — почти всегда дело в правах на тип цены или в кеше. Сбросьте кеш Битрикса и проверьте права группы на просмотр типа цены. Если цены нет и в админке — смотрите XML-файл обмена (1С может сохранять его во временный каталог) и журнал ошибок.

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

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

Цена в карточке товара в админке
Норма

Заполнена, совпадает с 1С, указан нужный тип цены

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

Пусто или ушла в другой тип цены — проверяйте сопоставление XML_ID

Цена на витрине для гостя
Норма

Отображается актуальная цена

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

Цена скрыта или старая — проверяйте права группы на тип цены и сбросьте кеш

Журнал обмена в 1С
Норма

Статус «Выполнено», ошибок нет

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

Ошибки загрузки товаров — смотрите текст ошибки и XML-файл обмена

Типичные ошибки и как их исправить

Самая массовая проблема — «цены не выгружаются» при успешном обмене. Причины: тип цен не выбран в настройках узла; цены в 1С не установлены или установлены будущей датой; в отбор попали товары без цен. Вторая по частоте — цены уходят в «не тот» тип цены на сайте из-за несовпадения XML_ID. Третья — обрыв обмена по тайм-ауту на больших файлах: лечится уменьшением размера части в настройках интеграции и увеличением лимитов PHP на хостинге.

Отдельный класс проблем — дубли товаров после обмена, когда цены привязываются к новым элементам вместо существующих. Это признак сбитой синхронизации по внешнему коду: такое происходит после восстановления сайта из копии или ручного создания товаров. Решение — привести внешние коды в соответствие или выполнить полную повторную синхронизацию на тестовой копии.

Типичные ошибки
01
Не выбран тип цен в настройках узла обмена — обмен проходит успешно, но файл цен пуст
02
Несовпадение XML_ID типа цены — Битрикс создаёт новый тип цены, а витрина показывает старый
03
Нет прав на просмотр типа цены у группы посетителей — цена есть в админке, но невидима на сайте
04
Обмен большим файлом без разбивки — обрыв по тайм-ауту и частично обновлённый каталог
05
Эксперименты с настройками сразу на рабочем сайте — риск обнулить цены или создать дубли товаров

Частые вопросы

Можно ли выгружать несколько типов цен (розница, опт, партнёрская)?

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

Как выгрузить цены в валюте, отличной от валюты сайта?

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

Почему обмен проходит, но цены на сайте старые?

Чаще всего включён режим выгрузки только изменений, а изменения цен не зарегистрировались в плане обмена (например, цены загрузили обработкой, минуя регистрацию). Выполните полный обмен вручную — если цены обновились, проблема в регистрации изменений.

Можно ли выгружать цены без товаров и остатков?

Типовой обмен передаёт цены в составе пакета предложений, привязанного к товарам, поэтому полностью «отдельно цены» не выгружаются — но можно настроить обмен так, чтобы каталог передавался редко, а цены и остатки — часто. Для этого в модуле обмена предусмотрен раздельный режим выгрузки.

Что делать, если конфигурация 1С старая и модуля обмена нет?

Используйте выгрузку в CSV или XML через обработку и импорт в Битрикс штатным механизмом импорта (Магазин → Импорт данных). Либо рассмотрите установку отдельного модуля обмена от 1С-Битрикс, который поддерживает ряд старших конфигураций.

Итог

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

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