Автоматизация · 12 мин
Как настроить выгрузку из 1С в Битрикс
Пошаговая настройка выгрузки товаров и заказов из 1С в 1С-Битрикс: установка модуля обмена, настройка профилей, расписание, проверка результата и типичные ошибки.
Обмен данными между 1С и сайтом на «1С-Битрикс: Управление сайтом» решает две задачи: выгрузка каталога товаров с ценами и остатками на сайт и загрузка заказов с сайта в учётную систему. Без такой интеграции менеджерам приходится вручную переносить десятки позиций и заказов, что неизбежно приводит к рассинхрону остатков, продажам отсутствующих товаров и ошибкам в ценах.
Стандартный способ интеграции — обмен по протоколу CommerceML через встроенный механизм, который есть в типовых конфигурациях 1С (Управление торговлей, Комплексная автоматизация, ERP) и в модуле интернет-магазина Битрикса. Дополнительные плагины и доработки для базового сценария обычно не нужны.
Перед настройкой важно определить, какая система будет «мастером» по каждому типу данных. Практически всегда мастером по номенклатуре, ценам и остаткам выступает 1С, а по заказам — сайт. Смешанные схемы, где товары редактируют и там, и там, почти гарантированно приводят к конфликтам и потере данных при очередном обмене.
Проверьте готовность 1С и сайта перед настройкой
Интеграция требует, чтобы обе стороны соответствовали минимальным условиям. На стороне 1С нужна типовая конфигурация с поддержкой обмена с сайтами: Управление торговлей 11, Комплексная автоматизация 2, ERP 2 или УНФ. В старых конфигурациях (например, УТ 10.3) обмен тоже есть, но работает через устаревшую обработку, и её лучше рассматривать как временное решение.
На стороне Битрикса должны быть установлены модули «Интернет-магазин» (sale), «Торговый каталог» (catalog) и «Интеграция с 1С» в составе коробочной версии. Проверьте наличие страницы обмена: откройте в браузере адрес https://ваш-сайт/bitrix/admin/1c_exchange.php — если страница отвечает запросом авторизации, а не ошибкой 404, точка обмена доступна.
Отдельно проверьте серверные ограничения. Выгрузка каталога в несколько тысяч товаров формирует XML-файлы значительного объёма, и при жёстких лимитах PHP (max_execution_time, memory_limit, лимиты на размер POST-запроса у веб-сервера) обмен будет обрываться. На виртуальном хостинге с жёсткими лимитами большие каталоги часто выгружаются только по частям в режиме «по изменениям».
Что проверить до начала настройки
УТ 11, КА 2, ERP 2, УНФ — есть узел «Обмен с сайтами»
Самописная или сильно доработанная конфигурация без типового обмена
URL 1c_exchange.php отвечает запросом авторизации
Ошибка 404 или 500 — модуль не установлен или есть проблемы сервера
Лимиты времени и памяти позволяют обрабатывать большие файлы
Обмен обрывается по таймауту на больших каталогах
Сайт работает по защищённому протоколу
Обмен по открытому HTTP — логин и пароль передаются в открытом виде
Создайте пользователя для обмена в Битриксе
Обмен выполняется от имени конкретного пользователя сайта, и использовать для этого учётную запись администратора — плохая практика. Создайте отдельного пользователя, например «1c_exchange», и включите его в группу с правами на выполнение обмена с 1С. В типовой поставке такая группа обычно уже есть либо создаётся при настройке модуля интернет-магазина.
Пользователю нужны права на импорт каталога и обмен заказами, но не нужны права на управление структурой сайта, пользователями и настройками модулей. Принцип минимальных прав здесь критичен: логин и пароль хранятся в настройках обмена в 1С и передаются при каждой сессии.
Пароль задайте сложный и уникальный — он не должен совпадать с паролями других учётных записей. Если пароль скомпрометирован, достаточно сменить его в двух местах (в Битриксе и в настройках обмена в 1С), не затрагивая остальную инфраструктуру.
Настройте узел обмена с сайтом в 1С
В типовых конфигурациях узел обмена создаётся в разделе интеграции: в УТ 11 это «Администрирование → CRM и продажи → Обмен с сайтами», в ERP и КА — аналогичный раздел настроек интеграции. Создайте новый узел обмена и заполните основные параметры.
Ключевые поля настройки: адрес сайта (полный URL до скрипта обмена, включая /bitrix/admin/1c_exchange.php), имя пользователя и пароль, созданные на предыдущем шаге. После заполнения нажмите «Проверить соединение» — 1С выполнит тестовый запрос и сообщит, прошла ли авторизация. Ошибка на этом этапе почти всегда означает неверный URL, неверный пароль или блокировку запроса на стороне сервера (файрвол, модуль безопасности).
Далее настройте состав выгрузки. В типовом обмене настраиваются отборы по номенклатуре (какие товары выгружать), типы цен (какой тип цен уходит на сайт как базовая цена), склады для расчёта остатков и соответствие единиц измерения. Отборы лучше задавать явно: выгрузка всей номенклатуры, включая услуги, архивные позиции и дубли, засоряет каталог сайта и замедляет обмен.
- 1Откройте раздел обмена с сайтами в настройках интеграции 1С
- 2Создайте новый узел обмена и задайте понятное имя
- 3Укажите URL точки обмена, логин и пароль пользователя сайта
- 4Нажмите «Проверить соединение» и устраните ошибки доступа
- 5Настройте отборы номенклатуры, типы цен и склады для остатков
- 6Сохраните узел и выполните первую полную выгрузку вручную
Выполните первую полную выгрузку каталога
Первый обмен всегда выполняйте вручную и в режиме полной выгрузки. 1С сформирует файлы CommerceML (каталог товаров, цены, остатки, при необходимости — свойства и картинки), передаст их на сайт порциями, а Битрикс выполнит импорт. В зависимости от размера каталога процесс может занять от нескольких минут до нескольких часов.
Перед первой выгрузкой решите вопрос со структурой инфоблока. В настройках модуля интеграции на стороне Битрикса указывается, в какой инфоблок загружается каталог. Если на сайте уже есть вручную заведённые товары, полная выгрузка из 1С может создать дубли: сопоставление идёт по внешнему коду (XML_ID), а у вручную созданных товаров он отсутствует или отличается. Чистый каталог на сайте — самый безопасный старт.
После завершения обмена проверьте результат на сайте: откройте каталог, сравните количество товаров, цены и остатки с данными 1С на нескольких контрольных позициях. Проверьте, что картинки загрузились и отображаются, а структура разделов соответствует иерархии из 1С.
Настройте обмен заказами и остатками
После того как каталог выгружается корректно, включите обмен заказами. В настройках узла обмена в 1С указывается, какие заказы загружать с сайта (обычно — со статусом «принят, ожидается оплата» и аналогичными), в какой документ 1С они превращаются и как определяется контрагент. Для новых покупателей с сайта в 1С создаются новые контрагенты — заранее решите, как менеджеры будут обрабатывать возможные дубли клиентов.
Обратная связь по заказам тоже настраивается в этом же узле: 1С передаёт на сайт изменения статусов (оплачен, отгружен, отменён), и покупатель видит актуальное состояние заказа в личном кабинете. Для этого на стороне Битрикса должны быть настроены соответствия статусов заказа статусам из 1С.
Выгрузку остатков и цен после первичной синхронизации переведите в режим «выгружать только изменения». Полная выгрузка всего каталога при каждом обмене создаёт лишнюю нагрузку и на 1С, и на сервер сайта. Режим изменений передаёт только те позиции, по которым что-то поменялось с прошлой сессии обмена.
Наиболее стабильная схема на практике: каталог и остатки выгружаются по расписанию несколько раз в день в режиме изменений, а заказы загружаются чаще — например, каждые 15–30 минут, чтобы менеджеры быстро видели новые обращения. Полную выгрузку каталога имеет смысл запускать только после массовых изменений структуры номенклатуры.
Настройте автоматический обмен по расписанию
Ручной запуск обмена подходит для отладки, но рабочий режим — автоматический. В 1С настраивается регламентное задание, связанное с узлом обмена: укажите расписание (например, каждые 30 минут в рабочее время) и убедитесь, что в базе включено выполнение регламентных заданий. В файловой базе, открытой только у одного пользователя, регламентные задания могут не выполняться — это частая причина «обмен сам не работает».
Для клиент-серверной базы убедитесь, что задание выполняется под пользователем с достаточными правами и что в журнале регистрации нет ошибок его выполнения. Полезно настроить мониторинг: если обмен не выполнялся дольше заданного интервала, ответственный сотрудник должен получить сигнал — иначе о рассинхроне остатков вы узнаете от покупателей.
На стороне сайта проверьте, что импорт не конфликтует с другими процессами: например, с агентами Битрикса, выполняющими переиндексацию или генерацию кэша. Выполнение обмена в часы минимальной нагрузки снижает риск таймаутов и замедления сайта для посетителей.
Контролируйте результат и устраняйте типичные сбои
Работающий обмен нужно регулярно проверять, а не считать настроенным раз и навсегда. Основные контрольные точки: актуальность остатков на сайте (сравните несколько позиций с 1С), поступление новых заказов в 1С, корректность статусов заказов на сайте и отсутствие ошибок в журналах обмена с обеих сторон.
На стороне 1С ошибки обмена видны в журнале регистрации и в сообщениях узла обмена. На стороне Битрикса — в логах модуля интеграции и в ответах скрипта обмена. Типичные сбои: обрыв сессии по таймауту при больших файлах, ошибки авторизации после смены пароля, дубли товаров после ручного редактирования каталога на сайте и расхождение цен из-за выгрузки не того типа цен.
Если типового обмена не хватает — например, нужна выгрузка в несколько инфоблоков, нестандартные свойства или обмен с несколькими сайтами — существуют сторонние модули обмена и доработки на уровне кастомизации CommerceML. Это уже задача для разработчика: правки обмена без понимания формата могут сломать синхронизацию целиком.
Как выбрать действие при сбое
Что важно запомнить
Обмен настраивается через типовой узел обмена с сайтом в 1С и точку 1c_exchange.php в Битриксе. Ключевые условия стабильной работы: отдельный пользователь с минимальными правами, HTTPS, явные отборы номенклатуры, первая полная выгрузка на чистый каталог, затем режим изменений по расписанию и регулярный контроль журналов обеих систем.
Частые вопросы
Можно ли настроить обмен, если 1С работает на локальном компьютере без постоянного сервера?
Да, сам обмен инициируется со стороны 1С, поэтому сайту не нужен доступ к вашей базе — достаточно, чтобы с компьютера с 1С был доступ в интернет. Проблема только в автоматизации: регламентные задания файловой базы выполняются, пока запущен сеанс 1С. Для полноценного автообмена базу лучше разместить на сервере или выделить постоянно работающий сеанс.
Что произойдёт с товарами на сайте, если в 1С пометить номенклатуру на удаление?
По умолчанию типовой обмен не удаляет товары с сайта автоматически — помеченные на удаление позиции обычно просто выпадают из отборов выгрузки и перестают обновляться. Удаление или деактивация таких товаров на сайте выполняется либо настройками обмена, либо вручную. Это сделано намеренно, чтобы случайная пометка в 1С не обнулила каталог.
Почему после выгрузки у части товаров пустые остатки, хотя в 1С они есть?
Чаще всего остатки считаются не по тому складу: в настройках обмена указывается, с каких складов выгружать доступное количество. Проверьте также, что товар попадает в отбор выгрузки и что в 1С по нему проведены документы, формирующие остаток. Реже причина — несоответствие единиц измерения между 1С и сайтом.
Как перенести на сайт картинки товаров?
Типовой обмен поддерживает выгрузку изображений, хранящихся в присоединённых файлах номенклатуры 1С. Убедитесь, что картинки действительно прикреплены к товарам, а в настройках выгрузки не отключена передача файлов. Имейте в виду: первая выгрузка с изображениями существенно дольше и тяжелее, чем выгрузка только текстовых данных.
Можно ли выгружать из одной 1С на два разных сайта?
Да, для каждого сайта создаётся отдельный узел обмена со своими настройками, отборами и расписанием. Важно следить, чтобы отборы и типы цен для разных сайтов не противоречили друг другу, и учитывать суммарную нагрузку: два параллельных обмена могут заметно нагружать базу.
Чем отличается обмен в реальном времени от обмена по расписанию?
Обмен в реальном времени инициирует передачу данных сразу при изменении объектов в 1С, без ожидания расписания. Это ускоряет обновление остатков и цен, но создаёт постоянную фоновую нагрузку и требует более аккуратной настройки сервера. Для большинства магазинов достаточно расписания с интервалом 15–60 минут.