Автоматизация · 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 — почти всегда правильный ответ: типовой обмен. Ручной файловый импорт имеет смысл как временная мера или для старых самописных конфигураций.
Сравнение способов выгрузки
Подходит для УТ 11, КА 2, ERP. Не требует кода, поддерживает расписание и выгрузку только изменений. Ограничение — логика ценообразования должна укладываться в типовые механизмы.
Подходит для конфигураций без модуля обмена. Требует ручного контроля формата и не даёт интерактивности. Ошибки в структуре файла приводят к частичной загрузке.
Для нестандартных сценариев: несколько валют, персональные цены, сложные скидки. Требует разработки и сопровождения, ошибки в коде могут испортить данные каталога.
Подготовка: что проверить в 1С и в Битриксе до обмена
В 1С убедитесь, что цены номенклатуры реально установлены: откройте «Цены номенклатуры» (или историю цен) и проверьте, что нужный тип цен заполнен и действует на текущую дату. Частая ситуация: обмен отрабатывает без ошибок, но цены на сайте не появляются, потому что в 1С они просто не заданы или установлены будущей датой.
На стороне Битрикса проверьте, что создан соответствующий тип цен (Настройки → Торговый каталог → Типы цен), например BASE (базовая цена). Запомните его символьный код — он понадобится при сопоставлении. Также убедитесь, что у группы «Все пользователи» (или нужной группы покупателей) есть право видеть этот тип цены, иначе цена выгрузится, но не отобразится на витрине.
Отдельно проверьте технические условия: сайт должен быть доступен по HTTPS или HTTP с машины, где работает 1С; пользователь, под которым выполняется обмен, должен иметь права на обмен с сайтом (обычно это отдельный пользователь с правами на импорт каталога).
Настройка обмена с сайтом в 1С
В 1С:Управление торговлей 11 перейдите в раздел «Администрирование» → «CRM и продажи» (или «Настройки интеграции») → «Обмен с сайтом». Создайте новый узел обмена. На вкладке основных настроек укажите адрес сайта вида https://ваш-сайт/bitrix/admin/1c_exchange.php, логин и пароль пользователя Битрикса с правами на обмен.
Нажмите «Проверить соединение» — 1С должна получить ответ от сайта. Если проверка не проходит, причины обычно такие: неверный URL, блокировка со стороны хостинга или файрвола, неверные учётные данные, либо отключена интеграция с 1С в настройках Битрикса.
На вкладке «Выгрузка товаров» настройте отбор номенклатуры (если нужно выгружать не весь каталог) и укажите, какие данные передавать. Для цен критична настройка таблицы типов цен: в списке «Типы цен» отметьте нужные типы и в колонке соответствия укажите идентификатор, под которым цена уйдёт на сайт. В типовом модуле это поле часто называется «Тип цены на сайте» или задаётся через XML-идентификатор.
- 1Откройте Администрирование → Обмен с сайтом и создайте новый узел
- 2Укажите URL обмена, логин и пароль пользователя Битрикса
- 3Нажмите «Проверить соединение» и устраните ошибки связи
- 4На вкладке выгрузки товаров задайте отбор номенклатуры
- 5В таблице типов цен выберите нужный тип и задайте ему идентификатор для сайта
- 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
Отображается актуальная цена
Цена скрыта или старая — проверяйте права группы на тип цены и сбросьте кеш
Статус «Выполнено», ошибок нет
Ошибки загрузки товаров — смотрите текст ошибки и XML-файл обмена
Типичные ошибки и как их исправить
Самая массовая проблема — «цены не выгружаются» при успешном обмене. Причины: тип цен не выбран в настройках узла; цены в 1С не установлены или установлены будущей датой; в отбор попали товары без цен. Вторая по частоте — цены уходят в «не тот» тип цены на сайте из-за несовпадения XML_ID. Третья — обрыв обмена по тайм-ауту на больших файлах: лечится уменьшением размера части в настройках интеграции и увеличением лимитов PHP на хостинге.
Отдельный класс проблем — дубли товаров после обмена, когда цены привязываются к новым элементам вместо существующих. Это признак сбитой синхронизации по внешнему коду: такое происходит после восстановления сайта из копии или ручного создания товаров. Решение — привести внешние коды в соответствие или выполнить полную повторную синхронизацию на тестовой копии.
Частые вопросы
Можно ли выгружать несколько типов цен (розница, опт, партнёрская)?
Да. В настройках узла обмена отметьте все нужные типы цен и задайте каждому уникальный идентификатор. На стороне Битрикса каждому типу назначаются свои группы пользователей, поэтому оптовики будут видеть оптовую цену, а розничные покупатели — базовую.
Как выгрузить цены в валюте, отличной от валюты сайта?
Либо храните в 1С тип цен уже пересчитанным в валюту сайта, либо выгружайте цену с указанием валюты — Битрикс при импорте способен конвертировать по курсу, если валюта создана на сайте. Первый вариант надёжнее и предсказуемее.
Почему обмен проходит, но цены на сайте старые?
Чаще всего включён режим выгрузки только изменений, а изменения цен не зарегистрировались в плане обмена (например, цены загрузили обработкой, минуя регистрацию). Выполните полный обмен вручную — если цены обновились, проблема в регистрации изменений.
Можно ли выгружать цены без товаров и остатков?
Типовой обмен передаёт цены в составе пакета предложений, привязанного к товарам, поэтому полностью «отдельно цены» не выгружаются — но можно настроить обмен так, чтобы каталог передавался редко, а цены и остатки — часто. Для этого в модуле обмена предусмотрен раздельный режим выгрузки.
Что делать, если конфигурация 1С старая и модуля обмена нет?
Используйте выгрузку в CSV или XML через обработку и импорт в Битрикс штатным механизмом импорта (Магазин → Импорт данных). Либо рассмотрите установку отдельного модуля обмена от 1С-Битрикс, который поддерживает ряд старших конфигураций.
Что важно запомнить
Выгрузка цен из 1С в Битрикс делается типовым обменом CommerceML: настраивается узел обмена с правильным типом цен, на сайте включается приём и проверяется сопоставление типов цен по XML_ID. Перед первым обменом сделайте резервные копии, после — проверьте цены в админке, на витрине и в журнале обмена. Большинство проблем связано с несопоставленными типами цен, правами доступа и незарегистрированными изменениями.