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

Чтобы настроить обмен 1С с сайтом, нужно сделать три вещи. На сайте задать логин и пароль обмена и скопировать адрес. В 1С создать узел обмена с типом сайта «1С-Битрикс» (протокол CommerceML) и вписать туда этот адрес, логин и пароль. После первой выгрузки выбрать, какой тип цен 1С считать розничной ценой сайта. Дальше 1С сама приходит на сайт: привозит товары, цены и остатки и забирает заказы.
Коротко:
- Обмен работает по стандартному протоколу CommerceML — его понимают 1С:Управление торговлей, УНФ, Комплексная автоматизация, ERP, типовая обработка «Обмен с сайтом» и МойСклад.
- Инициатор всегда 1С: сайт ничего не «тянет» сам, он отвечает на запросы 1С.
- Цены и остатки всегда приходят из 1С, а описания и фото, которые вы переписали на сайте, можно защитить от перезаписи.
- Заказы уходят в 1С с покупателем, составом и доставкой, обратно приходят статусы и оплата.
- Больше половины проблем — это заголовок авторизации на хостинге и лимит времени PHP. Оба лечатся за пять минут.
Что умеет обмен 1С с сайтом по CommerceML
CommerceML — это формат XML-файлов и порядок запросов, о котором когда-то договорились 1С и 1С-Битрикс. Поэтому в настройках 1С сайт почти всегда называется «1С-Битрикс», даже если у вас другая CMS. В интернет-магазине 100300 CMS обмен с 1С входит в модуль «Интернет-магазин», отдельно его покупать не нужно.
| Что | Направление | Что получается на сайте |
|---|---|---|
| Группы товаров | 1С → сайт | Категории каталога, узнаются по Ид группы: переименование в 1С переименует категорию, а не создаст новую |
| Номенклатура | 1С → сайт | Товары: название, артикул, штрихкод, описание, картинки, вес |
| Свойства | 1С → сайт | Характеристики для фильтра; «Производитель», «Бренд», «Марка» становятся брендом |
| Характеристики товара | 1С → сайт | Варианты (цвет, размер) у одного товара |
| Цены | 1С → сайт | Розничная цена, зачёркнутая цена, цены для групп покупателей (опт) |
| Остатки | 1С → сайт | Остаток варианта — сумма по выбранным складам |
| Заказы | сайт → 1С | Документ «Заказ товара» с контрагентом, строками и доставкой |
| Статусы и оплата | 1С → сайт | Статус заказа и отметка об оплате |
Повторная выгрузка тех же файлов ничего не меняет: сайт сравнивает пришедшее с тем, что уже есть, и записывает только изменившееся. Большие файлы обрабатываются частями — сайт отвечает 1С «progress», и 1С спрашивает снова, пока загрузка не закончится.
Как настроить обмен 1С с сайтом: шаги на сайте
Со стороны сайта работы минут на десять. Нужны права администратора магазина.
- Логин и пароль обмена. «Настройки магазина» → «Выгрузки и 1С». Придумайте отдельный логин и пароль — не от админки. Пароль хранится только в виде хеша. Пока пароль не задан, обмен выключен.
- Адрес обмена. «Магазин» → «Импорт и экспорт» → вкладка «Обмен с 1С». Скопируйте «Адрес сайта для обмена» — он вида
https://ваш-сайт.ru/shop/1c/exchange. Адрес/bitrix/admin/1c_exchange.phpтоже работает: некоторые конфигурации 1С подставляют его сами. - Проверка. Там же нажмите «Проверить». Сайт проверит логин и пароль, папку для файлов, лимиты PHP, доступность адреса, передачу заголовка авторизации веб-сервером, cron и время последнего обмена. Красная строка — это то, что нужно исправить до настройки 1С.
- Новые товары. На той же вкладке выберите, как появляются новые товары из 1С: сразу опубликованными или черновиками. Для первого запуска удобнее черновики — посмотрите, как всё выглядит, и опубликуйте разом.
- Cron — по желанию. Большие выгрузки доходят до конца и без него: фоновые задания продвигаются после запросов к сайту. С cron (одна строка в планировщике хостинга) быстрее и не зависит от посещаемости.

Настройка в 1С: узел обмена с сайтом
Названия пунктов меню отличаются от конфигурации к конфигурации. Вот где искать:
- УТ 11, КА, ERP: «НСИ и администрирование» → «Интеграция с другими программами» → «Обмен с сайтами»;
- УНФ: «Настройки» → «Интеграция» → «Обмен с сайтом»;
- старые конфигурации: обработка «Обмен с WEB-сайтом».
- Создайте новый узел обмена. Тип сайта — «1С-Битрикс» (или другой сайт с протоколом CommerceML).
- Вставьте адрес обмена, логин и пароль с сайта.
- Отметьте, что выгружать: товары (с картинками), цены, остатки. Для заказов включите «Загружать заказы с сайта».
- Архив (zip) не включайте — он не нужен, сайт сам сообщает 1С, что принимает файлы без архива.
- Нажмите «Проверить подключение» — 1С должна ответить «успешно».
- Запустите первую полную выгрузку. Она самая долгая — идут все товары и картинки; сколько займёт, зависит от размера каталога, фото и хостинга. Следующие обмены передают только изменения и проходят быстрее.
Результат видно сразу в двух местах: в таблице «Последние обмены» на вкладке «Обмен с 1С» (каждый запрос 1С и ответ сайта) и в «Истории» (задания с пометкой «1С», отчётом и файлом ошибок).
Типы цен 1С и склады
В 1С обычно несколько типов цен: «Розничная», «Оптовая», «Закупочная», иногда «Дилерская». После первой выгрузки они появятся на вкладке «Обмен с 1С», и вы решаете, какой из них что значит на сайте.
- Розничная цена. По умолчанию выбирается тип, в названии которого есть «Розн…», иначе первый. Проверьте, что выбран нужный: если сайт показывает закупочные цены, причина почти всегда здесь.
- Старая (зачёркнутая) цена. Можно указать отдельный тип цен — тогда на сайте появится скидка «было — стало».
- Цены групп покупателей. Тип «Оптовая» можно связать с группой покупателей «Оптовики» — они увидят свою цену после входа. Если тип цен в 1С называется так же, как группа на сайте, связь подхватится сама.
Склады из 1С попадают в «Сопоставление». Для каждого склада выберите: «В общий остаток» (по умолчанию), «Не учитывать» или конкретный склад модуля «Города», если у вас магазины в разных городах. Остаток на сайте — сумма выбранных складов, отрицательный остаток превращается в ноль. Типы цен можно так же связать с ценовыми зонами городов: «Розница Юг» — цена для зоны «Юг».
Ограничение, о котором лучше знать заранее: валюта цен не пересчитывается. Если в 1С цены в долларах, сделайте отдельный рублёвый тип цен для сайта.
Загрузка заказов с сайта в 1С
Когда 1С приходит за заказами, сайт отдаёт все заказы, изменённые после последнего подтверждённого обмена, — по 500 за раз, остальные уйдут в следующий. В каждом заказе:
- номер, дата и сумма;
- контрагент — физлицо или организация с ИНН и КПП, адрес, e-mail, телефон;
- строки заказа — если товар пришёл из 1С, строка ссылается на её же номенклатуру;
- доставка отдельной строкой-услугой, скидки;
- реквизиты: метод оплаты, «Заказ оплачен», «Отменён», статус заказа, способ и адрес доставки, трек-номер.
Обратно 1С присылает статусы и оплату. Чтобы статусы понимались одинаково, в настройках вкладки есть «Статусы заказов»: слева статус сайта, справа — как он называется в 1С. Отметка оплаты в 1С записывает неоплаченный остаток как оплату переводом — один раз. Покупателю письмо при этом не уходит, а выполненный или отменённый заказ из 1С не открывается заново: это решает менеджер.
Чего обмен пока не делает: если в 1С поменяли состав заказа (убрали позицию, поменяли количество), на сайт это не вернётся — приходят только статус и оплата. Это ограничение самого CommerceML у большинства CMS, но знать о нём стоит.
Защита правок на сайте
Типичная боль: SEO-специалист переписал описания ста товаров, а ночная выгрузка из 1С вернула старые. В разделе «Как 1С обновляет сайт» для каждой части товара выбирается своё правило.
| Часть товара | По умолчанию | Можно поставить |
|---|---|---|
| Название | Всегда из 1С | Только если пусто / Не трогать |
| Описание | Только если пусто | Всегда из 1С / Не трогать |
| Фото | Только если пусто | Всегда из 1С / Не трогать |
| Характеристики | Всегда из 1С | Только если пусто / Не трогать |
| Категории | Всегда из 1С | Только если пусто / Не трогать |
| Бренд | Всегда из 1С | Только если пусто / Не трогать |
| Цены, остатки, варианты, пометка удаления | Всегда из 1С — это и есть смысл обмена | |
«Только если пусто» — самый полезный режим: новый товар получит описание из 1С, а описание, которое вы уже переписали на сайте, не затрётся. SEO-заголовки и стикеры каталог 1С не трогает вообще.
Отдельно настраивается, кто ведёт категории. «Ведёт 1С» — группы становятся категориями и следуют за переименованием и переносом. «Ведёт сайт» — структура каталога ваша, а группы 1С раскладываются по категориям только по сопоставлению. Группу со служебными позициями (тара, упаковка, услуги) можно пометить «Не загружать» — её товары и подгруппы на сайт не попадут.
Что с товарами, удалёнными в 1С
Если товар убрали из 1С или пометили на удаление, сайт должен об этом узнать. Пометка удаления приходит в выгрузке и переводит товар в черновик. С товарами, которые просто исчезли из выгрузки, сложнее — их видно только при полной выгрузке, а не при выгрузке «только изменения».
После полной выгрузки сайт сравнивает, какие товары из 1С были в файлах, и с пропавшими поступает по настройке «Удалённое в 1С»: «В черновик» (по умолчанию), «Остаток 0», «В корзину» или ничего. Товар, снятый так, публикуется снова, если вернётся в выгрузку. Товары, которые вы сняли вручную, сайт сам не публикует.
Есть предохранитель: если пропадает больше 30 % товаров разом, сайт ничего не снимает и присылает уведомление. Так ошибка в фильтре выгрузки 1С не опустошит витрину за одну ночь.
Обмен 1С с сайтом не выгружает: типичные ошибки
| Симптом | Причина | Что сделать |
|---|---|---|
| 1С пишет «Неверный логин или пароль», хотя они верны | Веб-сервер не передаёт PHP заголовок авторизации | Кнопка «Проверить» это покажет. Apache: строка RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] в .htaccess; nginx + PHP-FPM: fastcgi_param HTTP_AUTHORIZATION $http_authorization; |
| Обмен зависает на «progress» или падает по таймауту | Хостинг обрывает долгие запросы | Увеличьте max_execution_time или уменьшите «Время на один запрос 1С» на вкладке (по умолчанию 20 секунд) |
| После нескольких попыток 1С вообще не пускают | 10 неверных паролей с одного адреса за 15 минут — временная блокировка | Исправьте пароль в узле обмена и подождите 15 минут |
| Товары пришли, цен нет или они закупочные | Не выбран розничный тип цен или цены не отмечены в узле | Выберите тип цен на вкладке «Обмен с 1С», проверьте галочку «цены» в 1С |
| Остатки везде ноль | Склад в «Не учитывать» или остатки не выгружаются | Проверьте «Сопоставление» складов и настройку узла обмена |
| Товары есть, но на сайте их не видно | Новые товары приходят черновиками | Опубликуйте их или смените «Новые товары из 1С» |
| Загрузили import.xml вручную через «Импорт» — ошибка | CommerceML принимается только по протоколу обмена | Запустите обмен из 1С; мастер импорта узнаёт такой файл и подскажет |
| Заказы не появляются в 1С | В узле не включена загрузка заказов, или заказы уже были переданы | Включите «Загружать заказы с сайта»; сайт отдаёт заказы, изменённые после последнего успешного обмена |
| Удалённые в 1С товары висят на сайте | Выгрузка «только изменения» или сработал порог 30 % | Сделайте полную выгрузку; посмотрите уведомление и итог уборки в «Последних обменах» |
Если что-то сломалось ночью, вы узнаете об этом утром: уведомление «Обмен с 1С» приходит на почту и в Telegram, когда загрузка упала, когда удалённое не снято из-за порога и когда 1С не выгружала каталог дольше заданного числа часов.
Итог: обмен с 1С без программиста
Настройка обмена 1С с сайтом — это вечер работы, а не проект на месяц: логин и пароль на сайте, узел обмена в 1С, выбор типа цен и складов, правила защиты описаний. Программист 1С понадобится, только если у вас сильно доработанная конфигурация с нестандартной выгрузкой.
Если 1С для вашего ассортимента — слишком тяжёлый инструмент, посмотрите на интеграцию МойСклад с сайтом или на импорт товаров из Excel: для каталога в пару сотен позиций его часто хватает. Переезжаете с 1С-Битрикс и хотите сохранить обмен — прочитайте, как перенести магазин с Битрикса: узел обмена в 1С достаточно перенастроить на новый адрес. Сравнение движков с поддержкой CommerceML — на странице CMS с обменом 1С, подробности каждого поля — в справке «Импорт товаров и обмен с 1С». Не хотите разбираться сами — настроим магазин и обмен за вас.
Посмотреть вкладку «Обмен с 1С» вживую можно без регистрации: откройте демо-админку и зайдите в «Магазин → Импорт и экспорт».


