Интеграция 1С с сайтом это регулярный обмен товарами, ценами, остатками и заказами. Обычно его запускает сама 1С по протоколу CommerceML, а сайт принимает файлы. Типовой обмен у меня стоит от 20 000 ₽, сложный с вариациями и заказами от 45 000 ₽. Чаще всего обмен ломается на таймаутах и связях.
Интеграция 1С с сайтом это регулярный обмен товарами, ценами, остатками и заказами между учётной программой и магазином. Обычно она идёт по штатному протоколу: 1С сама подключается к сайту и передаёт файлы CommerceML, а сайт их разбирает. Типовой обмен у меня стоит от 20 000 ₽, сложный от 45 000 ₽.
Ниже объясняю, как это устроено, какие есть варианты и где обмен ломается. Примеры с проектов: Arctic Elite, L’TERRIAS, ViVaDa и мой собственный плагин обмена.
Как устроен обмен 1С с сайтом
Штатный протокол придумали «1С» и «1С-Битрикс», он открыт и описан. Инициатор всегда 1С: она сама приходит на адрес сайта, а сайт только отвечает. Данные идут файлами XML по стандарту CommerceML 2.
| Шаг | Запрос | Что происходит |
|---|---|---|
| Вход | mode=checkauth |
1С передаёт логин и пароль, сайт отвечает success и данными сессии |
| Подготовка | mode=init |
сайт сообщает, принимает ли zip и какой размер файла |
| Передача | mode=file |
1С отправляет файлы частями: товары в import.xml, цены и остатки в offers.xml |
| Обработка | mode=import |
сайт разбирает файл, отвечает progress, пока не закончит, затем success |
| Заказы | type=sale&mode=query |
1С забирает заказы файлом XML и подтверждает получение |
Слабое место у этой схемы одно: ответ сайта. Ответ failure или пустой ответ 1С считает неудачей. Если вместо success пришла страница ошибки сервера, товары могут лежать на сайте, а 1С сообщит, что обмен упал, и запустит его снова.
Что передаётся между 1С и сайтом
| Из 1С на сайт | С сайта в 1С |
|---|---|
| Товары, группы, свойства, картинки | Новые заказы |
| Характеристики: размер, цвет | Покупатели в заказах |
| Цены по типам, акционная цена | |
| Остатки | |
| Статусы заказов |
Главная связка здесь GUID, неизменный код товара в 1С. Сайт запоминает его и по нему находит товар при следующем обмене. Название и артикул могут поменяться, а GUID нет.
Что штатный обмен не передаёт
Штатный обмен закрывает товар и заказ. Всё, что вокруг, надо проверять отдельно.
Заказчик с УТ 11.5 хотел получить на сайт контрагентов и их торговые точки, цены у него зависели от конкретного клиента, а в заказе надо было считать паллеты по данным номенклатуры. Выгрузка принесла товарную сетку и атрибуты. Контрагентов в ней нет, их надо дорабатывать отдельно, обычно вместе с 1С-программистом. Поэтому первый вопрос к любому особому полю такой: отдаёт ли его 1С вообще.
Какие есть варианты интеграции 1С с сайтом
| Вариант | Когда подходит | Минус |
|---|---|---|
| Штатный обмен и готовый модуль | Битрикс, простой каталог, типовая 1С | всё нестандартное придётся дорабатывать |
| Штатный обмен и плагин для WordPress | WooCommerce, каталог с вариациями | качество плагина надо проверять на своей выгрузке |
| Доработка плагина или свой модуль | особые поля, связи товаров, обратная выгрузка | код надо поддерживать после обновлений |
| API или сервис-посредник | персональные цены, своя логика поверх каталога | самый дорогой путь, часто нужен 1С-программист |
| Без 1С | учёт живёт в CMS или у поставщика | нет бухгалтерии и складского учёта из коробки |
Мой совет: начинайте со штатного обмена. Он уже встроен в 1С и старше большинства плагинов. Один заказчик предлагал идти через REST, я советовал штатный обмен: для каталога проще принять готовый файл из 1С и разобрать его у себя. API оставляйте для того, что штатный обмен не умеет.
Обмен 1С с WooCommerce: какие есть плагины
В Битриксе обмен встроен, для WooCommerce нужен плагин. На 2 ноября 2026 года картина такая:
- WC1C закрыт на WordPress.org с 30 декабря 2024 года, разработка продолжается на GitHub.
- EDI бесплатный, есть в каталоге WordPress, 600+ установок, версия 5.2.0 от 25 октября 2026 года.
- RuShop бесплатный и совсем новый, меньше 10 установок, заявлена проверка с Розницей 3.0.
- ITGALAXY платный, по странице продукта около 6 000 ₽.
- Мой плагин. О нём ниже.
Перед установкой смотрите на дату обновления и на то, заявлена ли ваша конфигурация. Проверка одна: реальная выгрузка из вашей 1С на копии сайта.
Мой плагин обмена: что проверено, а что нет
Я сделал и веду собственный плагин обмена 1С с WooCommerce. Вот его честный статус:
| Что | Где проверено | Итог |
|---|---|---|
| Товары, вариации, цены, акции, остатки из 1С на сайт | Arctic Elite, рабочая 1С заказчика | работает |
| Загрузка каталога с сайта в 1С | 1С Fresh, Розница 3.0, тестовая и рабочая база | работает, рабочую базу проверял заказчик |
| Товары из УТ 11.5 | тестовый сайт другого заказчика | одна выгрузка, только товары |
| Заказы с сайта в 1С | стенд с эмулятором | на реальной 1С не подтверждено |
| Статусы и трек-номера из 1С | нигде | не проверено |
| УНФ 3 | отдельно нигде | логика та же, что у Розницы, но отдельно не проверено |
Поэтому обещать «любую 1С» я не буду. Новую конфигурацию считаю проверенной только после обмена на реальной базе.
Обмен 1С с Битриксом: что отличается
В Битриксе модуль обмена встроен, адрес /bitrix/admin/1c_exchange.php есть из коробки. Поэтому первый запуск проще, а подводные камни другие:
- шаг импорта внутри разбит на много операций и на большом дереве разделов упирается во время;
- случайно выгруженный склад или тип цены остаётся на сайте, обмен такие данные не удаляет;
- два обмена одновременно мешают друг другу, классика: к рабочему сайту подключили тестовую 1С и забыли про её расписание;
- при новой базе 1С меняются идентификаторы, и сайт может создать дубли.
Последнее я видел вживую. На одном магазине на Битриксе заказчик перешёл на новую 1С. Из неё приходили только торговые предложения, файла import.xml не было, а код каталога отличался от того, что на сайте. Разработчик Битрикса предупредил: полная выгрузка в таком виде создала бы новый инфоблок со своими свойствами. Правильный путь здесь перенастроить источник, то есть 1С, а не шаблон сайта.
1С УНФ и Розница: что отличается при интеграции с сайтом
В Рознице и УНФ обмен настраивается мастером, а адрес сайта указывается одним доменом. 1С сама добавляет /bitrix/admin/1c_exchange.php. На WordPress такого файла нет, nginx отдаёт 404, и запрос до сайта не доходит. Мой плагин создаёт этот файл по кнопке.
Розница 3 работает в пакетном режиме и может не присылать шаг init. Я разобрал четыре такие ошибки в статье «Не удалось разобрать данные» при обмене 1С с сайтом.
Границы моей работы: я отвечаю за сторону сайта, сервер, настройку обмена и журнал. Изменения в конфигурации 1С делает 1С-программист.
Сколько стоит интеграция 1С с сайтом
| Работа | Цена | Что входит |
|---|---|---|
| Разбор ошибки | 3 000 ₽, в зачёт работы | журнал обмена, сервер, причина и цена исправления |
| Типовой обмен | от 20 000 ₽ | товары, цены, остатки, тестовая и резервная копия, инструкция |
| Сложный обмен | от 45 000 ₽ | вариации, несколько типов цен, заказы в 1С, доработка плагина или свой модуль |
Разбор занимает день, типовой обмен от трёх дней. На цену влияют:
- число товаров и вариаций: больше данных, дольше обмен и больше мест для обрыва;
- типы цен, склады и акции;
- заказы обратно в 1С и статусы;
- особые поля и связи между товарами;
- состояние сервера и наличие тестовой копии;
- версия и доработки 1С.
Самая дорогая ошибка в оценке случается без реальных данных. На Arctic Elite я пообещал пару часов, а вышло 22 сборки за 17 дней. Судя по всему, оценка опиралась на маленький образец XML, а реальная выгрузка оказалась другой. Поворот случился, когда заказчик прислал import.xml и offers.xml из своей 1С. Теперь я сначала прошу файл выгрузки.
Для сравнения: в прайсе одной из студий на 2 ноября 2026 года штатный обмен стоит 15 000 ₽, штатный с тестовой средой 40 000 ₽, индивидуальная разработка 100 000 ₽. Разница идёт от копии сайта, доработок и ответственности за результат. Бесплатный плагин не отменяет настройку: кто-то должен прогнать его на вашем каталоге.
Где ломается обмен 1С с сайтом
Обмен идёт дольше таймаута сервера
На Arctic Elite после переезда на новую панель обмен стал падать с 504 под самый конец. В журнале плагина один запрос mode=import шёл 100 секунд: с 15:06:11 до 15:07:51. А nginx ждал 60. На 60-й секунде он отдавал 504, PHP спокойно заканчивал работу, а 1С получала HTML вместо success, писала «Получен неизвестный статус импорта» и запускала обмен заново.
Таймаут уже пытались увеличить, но директивой для прокси, а PHP шёл через fastcgi_pass. Для него нужна fastcgi_read_timeout.
Товары приезжают простыми, вариации показывают «любой»
Журнал при этом чистый, обмен успешен. На Arctic Elite причин оказалось несколько: кеш WooCommerce откатывал тип товара при сохранении, в вариацию передавалось текстовое значение вместо ярлыка, файлы дописывались при повторном обмене. Каждая правка открывала следующий слой.
Остаток растёт с каждым обменом
Было 12, стало 24, потом больше. Вариативный товар в WooCommerce своего остатка не имеет, он считается суммой вариаций. Судя по коду, плагин писал родителю сумму, и значение накапливалось при повторных сохранениях. Причину я нашёл только на своём стенде, логи молчали. Заказчик до этого две недели гонял обмены. Проверка простая: запустите обмен два раза подряд и сравните цифры.
Связи держатся на тексте, а не на GUID
На L’TERRIAS часы собираются из деталей. В 1С часы связаны с корпусом, циферблатом и ремешком по кодам, а на сайте висел текст вида «циферблат 104.04 антрацит». Код вынимал из него артикул и искал товар без проверки. Сняли деталь с публикации, и падал весь сайт.
Разница как между объявлением «Вася из третьего подъезда» и паспортом. Вася переехал, и связь умерла. Я сделал мост по GUID: разобрал выгрузку и записал прямые связи, а дальше они обновляются при каждом обмене. На 112 часах получилось 370 связей, ненайденных 0. Сверка нашла 40 расхождений по ремешкам, все в пользу моста. Запросов к базе на странице каталога стало 292 вместо 1059, это замер на стенде.
Удалённые на сайте категории не создаются снова
На Arctic Elite после ручного удаления категории перестали создаваться. В таблице соответствий осталось 17 битых записей GUID, сайт считал категории существующими. Это был баг моего плагина, я его исправил. Вывод: удалять категории руками при живом обмене опасно.
Настройка стоит не там, где вы думаете
Заказчик включил в плагине запрет на товары без фото, а они всё равно приезжали. На скриншоте оказалось, что нужная настройка стоит в 1С, и она отдаёт полный файл вместо неполного. Плагин разбирает только то, что пришло.
Адрес обмена отдаёт 404
У заказчика с УТ 11.5 1С упорно писала 404, а сайт в браузере открывался. Сначала нашёлся включённый режим техработ: администратор видел сайт, а 1С нет. Потом выяснилось, что дело в структуре постоянных ссылок WordPress. Заказчик нашёл это сам.
Фото и их порядок
Плагин обмена на L’TERRIAS делал главным первое фото. Новое фото из 1С получало новый код и приезжало последним, и в 7 карточках исчез вид спереди. Жалобы на порядок фото шли с 2023 года. Теперь сайт помнит порядок прошлой выгрузки и ставит новое фото на место старого.
Как часто запускать обмен
Обмен запускает 1С, вручную или по расписанию. Самая тяжёлая выгрузка первая: на Arctic Elite один запрос создавал 278 товаров и шёл 100 секунд.
Для большого каталога разделите поток: цены и остатки чаще, товары и картинки реже. В обычной работе передавайте только изменения. Если 1С отдаёт полный файл там, где ждали неполный, ищите настройку на стороне 1С, плагин тут ни при чём.
Обмен в обратную сторону: как вернуть товары с сайта в 1С
На Arctic Elite случился сбой базы 1С, и товары надо было вернуть с сайта. Штатного описания такого режима я не нашёл. Первый вариант с файлами и инструкцией не подошёл: в УНФ 3 и Рознице 3 нужного пути не оказалось.
Заказчик подсказал идею: 1С умеет сама забирать каталог с сайта, если считает его Битриксом. Протокол восстановлен по исходникам, и ответы сайта сделаны такими же. На следующий день в 1С Fresh загрузилось 289 товаров, 2649 предложений и 1041 картинка.
Открытый вопрос: обычный обмен из 1С на сайт после такой загрузки в новую базу я пока не подтвердил.
Как проверить обмен перед запуском
- Возьмите реальную выгрузку из своей 1С, а не демонстрационную.
- Работайте на копии сайта и снимите резервную копию.
- Запустите первый обмен и сверьте число товаров, вариаций и цен с 1С.
- Запустите второй обмен подряд: остатки не должны расти, дубли не должны появиться.
- Создайте тестовый заказ и заберите его в 1С.
- Измерьте самый долгий запрос и сравните с таймаутом сервера.
- Посмотрите журнал обмена и лог PHP.
Проверять надо на реальной 1С. В октябре все тесты на стенде с эмулятором были зелёными, а на реальной 1С Fresh случилось четыре ошибки подряд. Эмулятор знает только то, что вы в него заложили. Полный список есть в чек-листе по обмену.
Нужна ли магазину 1С
Не всегда. ViVaDa продавала фрукты и овощи на Битриксе, 1С там не было совсем. Около 400 товаров, заказы с Яндекс Еды, Обед.ру и Купера приходили прямо в Битрикс, менеджеры работали в его админке. Для такого масштаба это нормальная схема.
1С нужна, когда в ней уже живут склад, закупки и бухгалтерия или товаров много и они меняются каждый день. Каталог до 50 товаров без заказов в 1С проще вести на сайте или поставить бесплатный плагин.
Что подготовить перед интеграцией
- файлы выгрузки
import.xmlиoffers.xmlиз своей 1С; - название и версию конфигурации 1С;
- доступ к сайту и серверу, хватит отдельного пользователя с ограниченными правами;
- список особых полей: типы цен, склады, характеристики;
- решение, кто главный источник данных: 1С или сайт;
- контакт человека, который ведёт вашу 1С.
Файл выгрузки здесь главное. По нему за час видно больше, чем за неделю переписки.
Когда звать специалиста
Сами вы справитесь, если каталог небольшой, вариаций нет, а заказы в 1С не нужны. Поставьте плагин, прогоните на копии и проверьте второй обмен.
Специалист нужен, если есть вариации, несколько типов цен, заказы обратно в 1С, тысячи позиций или обмен уже падает. Ошибка здесь стоит дороже настройки: дубли и битые связи потом чистят руками. Условия на странице услуги. Разбор с логами стоит 3 000 ₽ и идёт в зачёт работы.
Частые вопросы
Сколько стоит интеграция 1С с сайтом?
У меня типовой обмен с товарами, ценами и остатками стоит от 20 000 ₽, сложный с вариациями, несколькими типами цен и заказами от 45 000 ₽. Цена зависит от каталога, числа типов цен и доработок. Разбор уже сломанного обмена стоит 3 000 ₽ и идёт в зачёт работы.
Можно ли связать 1С и сайт через API?
Да, но для каталога я начинаю со штатного обмена: он уже есть в 1С и не требует правок конфигурации. API имеет смысл для того, что штатный обмен не закрывает, например персональных цен.
Работает ли обмен с 1С:УНФ и Розницей?
Да, в обеих конфигурациях есть обмен с сайтом. Загрузку каталога с сайта я проверял на Рознице 3.0 в 1С Fresh. УНФ 3 работает по той же логике, отдельно я её не проверял.
Как часто идёт обмен?
Обмен запускает 1С, вручную или по расписанию. Частоту выбирают под каталог: чем он больше и тяжелее, тем реже полный обмен и тем важнее выгрузка только изменений.
Можно ли вернуть товары с сайта в 1С?
Можно. На Arctic Elite после сбоя базы 1С загрузила 289 товаров и 2649 предложений прямо с сайта. Для этого сайт должен отвечать как 1С-Битрикс.
Никита Митусов, веб-разработчик. Более 5 лет делаю сайты, магазины, интеграции и ботов. Статья основана на моих проектах и проверена по документации сервисов.