Меня зовут Богдан Квитка, я руковожу компанией GoodFellazz. Мы больше десяти лет делаем сайты и веб-приложения для производственных и торговых компаний, и почти в каждом проекте есть строка про обмен с 1С. Это одна из тех задач, которую регулярно недооценивают на старте, а потом она съедает половину бюджета и нервов.
История почти всегда одинаковая. На сайте у компании один каталог, в 1С другой. Менеджер вручную переносит заказы с сайта в учёт. Бухгалтер руками правит цены в двух местах. Кладовщик отвечает на звонки про остатки, потому что на сайте они неактуальны. Пока товаров сотня, это терпимо. Когда их становятся тысячи, ручная сверка превращается в постоянный источник ошибок, а расхождение сайта и склада начинает стоить реальных денег и потерянных клиентов.
Интеграция эту проблему решает: 1С и сайт начинают обмениваться данными автоматически. Звучит просто, и в типовом случае это действительно несложно. Проблема в том, что типовых случаев у производителей почти не бывает, и там, где обещали «обмен из коробки за неделю», начинается долгая ручная работа.
Статья для владельцев производственных и торговых компаний, коммерческих директоров и тех, кто отвечает за сайт и учёт. Разберу, какие вообще бывают способы обмена, что и в какую сторону передаётся, как устроен классический обмен через CommerceML и почему он ломается на реальной, доработанной 1С. Покажу это на нашем проекте и дам чек-лист, чтобы вы пришли к подрядчику с готовым пониманием задачи.
Короткий ответ
Интеграция сайта с 1С это автоматическая синхронизация данных между системой учёта 1С и веб-приложением: каталог, цены и остатки передаются из 1С на сайт, а заказы и данные клиентов возвращаются с сайта в 1С.
Если нет времени читать двадцать минут, вот суть.
Способов связать сайт с 1С несколько. Классический это файловый обмен по стандарту CommerceML, когда 1С выгружает каталог в XML, а сайт его забирает. Современный это REST API или OData, когда сайт обращается к 1С по HTTP и получает данные в реальном времени. Для высоких нагрузок между ними ставят промежуточную базу. Для простых задач есть готовые SaaS-коннекторы.
Сложность и цена почти никогда не зависят от способа. Они зависят от того, насколько ваша 1С отличается от типовой и в каком состоянии в ней номенклатура. Для стандартной конфигурации 1С обмен настраивается быстро. Для доработанной конфигурации с характеристиками, зашитыми в наименование, и дублями позиций начинается ручная работа, и её объём определяет и срок, и бюджет.
Главный принцип, который стоит запомнить: 1С это мастер для товаров, цен и остатков, а сайт это мастер для заказов и данных клиентов. Как только обе системы начинают править одни и те же данные, обмен превращается в источник конфликтов.
|
Ваша ситуация |
Что обычно подходит |
|---|---|
|
Типовая 1С, сайт на 1С-Битрикс, каталог до 50 000 позиций |
CommerceML |
|
Кастомный сайт, нужны данные в реальном времени |
REST API или OData |
|
Высокая нагрузка, каталог от 100 000 позиций |
Промежуточная база |
|
Малый бизнес, простая синхронизация |
Готовый коннектор |
01. Зачем вообще связывать сайт с 1С

1С стоит почти в каждой российской компании, которая ведёт учёт. В ней живут номенклатура, цены, остатки, заказы, контрагенты. Сайт при этом обычно строился отдельно и своей жизнью, и данные в нём приходится поддерживать вручную. Интеграция нужна, чтобы эти две системы перестали жить порознь.
Что даёт автоматический обмен на практике:
- Актуальные остатки. Покупатель видит на сайте то, что реально есть на складе. Продажа товара, которого нет в наличии, это потерянный клиент и испорченное впечатление.
- Актуальные цены. Цена меняется в 1С один раз, и на сайт она попадает автоматически. Не нужно править её в двух местах и ловить расхождения.
- Заказы сразу в учёте. Заказ с сайта создаёт документ в 1С без ручного переноса. Менеджер не переписывает состав заказа руками и не ошибается в артикулах.
- Единая номенклатура. Товар заводится один раз в 1С и оттуда попадает на сайт. Двойного ведения каталога больше нет.
Экономический смысл простой. Ручной перенос данных отнимает у сотрудников часы каждый день, и каждая ручная операция это шанс на ошибку. Чем больше номенклатура и поток заказов, тем дороже обходится отсутствие обмена. При этом я сразу оговорюсь: интеграция сама по себе не увеличивает продажи, она убирает рутину и ошибки. Продажи растут от товара, цены и работы отдела продаж, а обмен с 1С просто убирает трение в этих процессах.
02. Что и в какую сторону передаётся
Прежде чем говорить о способах, важно понять, какие данные вообще ходят между системами и в каком направлении. Это определяет всю дальнейшую архитектуру.
Из 1С на сайт
Это основной поток. 1С отдаёт на витрину то, что в ней ведётся:
- Каталог: наименования, описания, характеристики, категории, изображения.
- Цены: базовые, оптовые, по договорам, акционные. Часто несколько типов цен для разных категорий клиентов.
- Остатки: по складам, с учётом резервов, иногда с ожидаемыми поступлениями.
- Статусы заказов: в обработке, собирается, отгружен, доставлен. Чтобы покупатель видел на сайте актуальное состояние своего заказа.
С сайта в 1С
Обратный поток обычно меньше по объёму, но важнее по ответственности:
- Заказы: состав, сумма, способ оплаты, адрес, данные покупателя. На стороне 1С из этого создаётся документ заказа.
- Новые контрагенты: при регистрации на сайте в 1С заводится контрагент с реквизитами.
- Оплаты: отметка об оплате с сайта попадает в 1С, либо наоборот, подтверждение оплаты в 1С меняет статус на сайте.
Сводка
|
Направление |
Что передаётся |
Как часто нужно |
|---|---|---|
|
Из 1С на сайт |
Каталог, характеристики, изображения |
Реже, при изменении номенклатуры |
|
Из 1С на сайт |
Цены |
От раза в час до реального времени |
|
Из 1С на сайт |
Остатки |
Чем быстрее, тем лучше, до реального времени |
|
Из 1С на сайт |
Статусы заказов |
По мере изменения |
|
С сайта в 1С |
Заказы, контрагенты, оплаты |
Максимально быстро, в идеале сразу |
Обратите внимание, что у разных типов данных разные требования к скорости. Каталог меняется редко, и его можно обновлять раз в сутки. Остатки в активной торговле лучше обновлять как можно чаще, потому что устаревший остаток напрямую бьёт по продажам. Это влияет на выбор способа обмена, о чём дальше.
03. Кто мастер данных: главный принцип обмена

Это самый важный раздел статьи, и я вынес его вперёд намеренно. Большинство проблем двустороннего обмена растёт из одной ошибки: неясно, какая система главная по конкретному полю данных.
Мастер-система это та система, чья версия данных считается правильной. Принцип, который работает почти всегда, звучит так. 1С это мастер для товаров, цен и остатков. Сайт это мастер для заказов и данных клиентов. То, за что отвечает 1С, на сайте только отображается и не правится. То, что рождается на сайте, попадает в 1С и там обрабатывается.
Поясню на примере, почему это критично. Представьте, что менеджер поменял цену товара в 1С, а маркетолог в тот же час поправил у этого товара описание прямо на сайте. Наступает время обмена. Если не задано, какая система главная по какому полю, обмен либо затрёт правку маркетолога ценой из 1С, либо наоборот, и кто-то из двоих будет уверен, что его изменения пропали. Такие конфликты копятся тихо и вылезают в самый неподходящий момент.
Решение простое по формулировке и требует дисциплины на практике. По каждому полю данных заранее определяется одна мастер-система, и правится это поле только там. Цена и остаток только в 1С. Заказ только через сайт. Описание и SEO-тексты, если их ведёт маркетолог, только на сайте, и тогда 1С их не перезаписывает. Договорённость эта организационная, а не техническая, и согласовать её нужно на старте проекта, до первого конфликта.
Важно: если по какому-то полю не удаётся назначить единственного хозяина, это сигнал, что процесс в компании не отлажен. Обмен данными не решит организационную путаницу, он её только обнажит и ускорит.
Вывод: назначьте по каждому полю одну мастер-систему до старта проекта, иначе двусторонний обмен станет источником тихих конфликтов данных.
04. Четыре способа обмена сайта с 1С
Механизмов обмена несколько, и они отличаются не столько результатом, сколько скоростью, гибкостью и нагрузкой на 1С. Разберу четыре основных, от простого к сложному.

Способ 1. CommerceML, файловый обмен
CommerceML это стандартный XML-формат обмена, встроенный в 1С. Работает он так: 1С по расписанию выгружает каталог, цены и остатки в XML-файл, а сайт этот файл забирает и обновляет свою базу. Заказы уходят обратно тем же способом, отдельным файлом.
Формат поддерживается большинством популярных CMS. На 1С-Битрикс он работает практически из коробки, для WooCommerce и других систем есть модули. Это самый распространённый и дешёвый способ для типовых задач.
Плюсы: стандартное решение, много документации, минимум настройки для типовой конфигурации. Минусы: обмен идёт по расписанию, обычно раз в 15-60 минут, то есть данные не в реальном времени. На больших каталогах XML-файлы разрастаются и выгрузка занимает десятки минут. Гибкость ограничена стандартными полями формата.
Способ 2. REST API или OData, обмен по HTTP
Начиная с версии 8.3.5 платформа 1С умеет автоматически публиковать REST-интерфейс для всего приложения через протокол OData. Плюс можно писать собственные HTTP-сервисы. В этом подходе сайт обращается к 1С напрямую по HTTP-запросам и получает данные в формате JSON.
OData тут это стандартный протокол доступа к данным по HTTP, а REST это общий архитектурный стиль таких запросов. Для владельца бизнеса разница между ними не принципиальна, важно, что данные отдаются по запросу и в реальном времени.
Плюсы: данные актуальны в момент запроса, гибкость по составу и формату, подходит для любого фронтенда, включая мобильные приложения. Минусы: требует разработки на стороне 1С, каждый запрос это нагрузка на базу 1С, нужны и квалифицированный 1С-разработчик, и веб-разработчик.
Способ 3. Промежуточная база или шина данных
В нагруженных проектах между 1С и сайтом ставят промежуточное хранилище: отдельную базу данных или шину сообщений. 1С пишет изменения туда, а сайт читает из промежуточной базы, быстро и не трогая 1С. Заказы с сайта тоже складываются в промежуточное хранилище, откуда 1С их забирает по расписанию.
Плюсы: сайт не нагружает 1С и продолжает работать, даже если 1С временно недоступна, потому что читает из промежуточной базы. Хранилище выдерживает высокую нагрузку. Минусы: архитектура сложнее, компонентов три вместо двух, нужен мониторинг синхронизации, разработка и поддержка дороже.
Способ 4. Готовые коннекторы и SaaS-платформы
Существуют сервисы для интеграции, которые настраиваются через интерфейс без программирования. Вы выбираете источник и приёмник, задаёте соответствие полей и расписание, платформа обеспечивает обмен.
Плюсы: быстрый старт за несколько дней, программист 1С не обязателен, визуальная настройка. Минусы: ежемесячная подписка, ограниченная кастомизация, зависимость от стороннего сервиса и его ограничений по объёму данных.
Сводная таблица способов
|
Способ |
Что это |
Когда использовать |
Плюсы |
Минусы |
|---|---|---|---|---|
|
CommerceML |
Файловый обмен через XML |
Типовая 1С, сайт на 1С-Битрикс, каталог до 50 000 позиций |
Стандарт, дёшево, минимум настройки |
По расписанию, медленно на больших каталогах |
|
REST / OData |
Обмен по HTTP, данные в JSON |
Кастомный сайт, нужны данные в реальном времени |
Актуально в момент запроса, гибко |
Нагрузка на 1С, нужна разработка на обеих сторонах |
|
Промежуточная база |
Буфер между 1С и сайтом |
Высокая нагрузка, каталог от 100 000 позиций |
Не нагружает 1С, сайт живёт при падении 1С |
Сложнее, дороже, нужен мониторинг |
|
Готовый коннектор |
SaaS-платформа обмена |
Малый бизнес, простая синхронизация |
Быстрый старт, без программиста |
Подписка, слабая кастомизация, зависимость от сервиса |
Если совсем коротко о разнице между ними. Главное различие CommerceML и REST в моменте передачи: файловый обмен отдаёт данные пачкой по расписанию, а REST по запросу в реальном времени. Промежуточная база нужна там, где важно снять нагрузку с 1С и не дать сайту упасть вместе с ней. Готовый коннектор стоит особняком: разработки он не требует вовсе, но и запирает вас в возможностях чужого сервиса.
Вывод: выбирайте способ по требованию к актуальности данных и по тому, на чём построен сайт: файловый обмен для типовых задач, API для реального времени, промежуточную базу для нагрузки.
05. Как выбрать способ под свою задачу
Выбор способа определяется четырьмя факторами: нужны ли данные в реальном времени, какой у вас бюджет, есть ли штатный 1С-разработчик и на чём построен сайт. Сведу способы в таблицу по ключевым характеристикам.
|
Характеристика |
CommerceML |
REST / OData |
Промежуточная база |
Готовый коннектор |
|---|---|---|---|---|
|
Реальное время |
Нет, по расписанию |
Да |
Да |
Зависит от сервиса |
|
Нагрузка на 1С |
Низкая, разово |
Высокая, на каждый запрос |
Низкая |
Средняя |
|
Гибкость данных |
Стандартные поля |
Любые данные |
Любые данные |
Ограниченная |
|
Порог входа |
Низкий |
Высокий |
Высокий |
Очень низкий |
|
Устойчивость к падению 1С |
Высокая |
Низкая |
Высокая |
Средняя |
|
Подходит для больших каталогов |
Плохо |
Средне |
Хорошо |
Плохо |
Как читать эту таблицу под свою ситуацию:
- Типовая 1С, сайт на 1С-Битрикс, каталог небольшой. Берите CommerceML, это самый быстрый и дешёвый старт, всё работает почти из коробки.
- Кастомный сайт на фреймворке, нужны актуальные остатки. Ваш вариант REST или OData с обменом в реальном времени.
- Высокая нагрузка и большой каталог. Промежуточная база защитит и 1С от лишней нагрузки, и сайт от простоев.
- Малый бизнес, простая задача, нет разработчика. Готовый коннектор закроет базовую синхронизацию быстро и без разработки.
Оговорюсь честно: в реальных проектах способы нередко комбинируют. Каталог может ехать одним механизмом, а остатки другим, более быстрым. Единственно правильного ответа тут нет, и выбор стоит делать после аудита вашей 1С и сайта, а не по общей таблице.
Какой способ выбрать за две минуты
Таблица-решение для тех, кому нужен быстрый ориентир. Читается по строкам: слева ваша ситуация, справа способ. Это отправная точка для разговора, а окончательное решение принимается после аудита.
|
Если у вас |
Берите |
|---|---|
|
Типовая 1С и сайт на 1С-Битрикс |
CommerceML |
|
Доработанная конфигурация или самописная 1С |
Кастомную интеграцию, начните с аудита |
|
Кастомный сайт на фреймворке и нужны актуальные остатки |
REST или OData |
|
1С:ERP или сложная учётная система |
REST или OData плюс аудит конфигурации |
|
Каталог от 100 000 позиций или высокая нагрузка |
Промежуточную базу |
|
Большой каталог с частыми изменениями |
Инкрементальную синхронизацию, не полную выгрузку |
|
Малый бизнес и простая задача без разработчика |
Готовый коннектор |
|
Непонятно, в каком состоянии данные в 1С |
Сначала аудит номенклатуры, потом выбор способа |
Вывод: для типовой 1С берите CommerceML, для нетиповой или ERP закладывайте кастомную интеграцию по API, а при сомнениях начинайте не с выбора способа, а с аудита данных.
06. CommerceML: как устроен файловый обмен
Разберу классический способ подробнее, потому что именно с него начинается большинство проектов и именно вокруг него больше всего мифов.
CommerceML работает через файлы. Механика такая. В 1С настраивается узел обмена с сайтом, и по расписанию 1С формирует пакет XML-файлов. Один файл описывает каталог со всей структурой категорий и товаров, другой несёт цены и остатки, отдельным потоком идут изображения. Сайт периодически проверяет наличие новых файлов, забирает их, разбирает и обновляет свою базу. Заказы сайт складывает в свой XML, который 1С забирает и превращает в документы.
Ключевые вещи, которые здесь настраиваются:
- Расписание. Как часто идёт выгрузка. От раза в сутки для редко меняющегося каталога до каждых 15 минут для остатков.
- Состав выгрузки. Что именно передаётся: только каталог, каталог с ценами, с остатками, с изображениями.
- Соответствие товаров. По какому признаку сайт понимает, что товар из файла это тот же товар, что уже есть в базе. Обычно это уникальный идентификатор из 1С.
- Полная или частичная выгрузка. Отдаётся весь каталог целиком или только то, что изменилось с прошлого раза.
Последний пункт критичен для производительности, и к нему я вернусь в отдельном разделе.
Что важно понять про CommerceML и почему я специально это подчёркиваю. Стандартный механизм обмена не означает готовый обмен без работы. Даже в типовом случае его нужно настроить, сопоставить поля, задать правила по ценам и складам, проверить выгрузку на реальных данных. А в нетиповом случае, который у производителей скорее правило, начинается то, ради чего написана следующая половина статьи.
07. Почему типовой обмен ломается на реальной 1С
Вот мы и дошли до сути. Продавцы интеграции любят фразу «обмен настраивается за пару дней». Она верна ровно для одного случая: типовая, недоработанная конфигурация 1С и аккуратно заведённая номенклатура. В моей практике такое сочетание встречается редко, а у производителей почти никогда.
Скажу сильнее. За те годы, что мы делаем сайты для производителей, я ни разу не видел компанию, у которой номенклатура в 1С оказалась полностью готова к обмену без предварительной чистки. Ни разу. Всегда что-то приходится приводить в порядок, вопрос только в объёме.
Поэтому я и работать над интеграцией начинаю не с самой интеграции. Первым делом я открываю в 1С пять случайных товаров и смотрю, как заведены их характеристики, единицы, цены, есть ли у них фотографии. Пять карточек за десять минут дают о реальном состоянии данных больше, чем час разговоров про протоколы обмена. Дальше разберу по частям, что именно ломает красивую картинку с «обменом за пару дней».

Нетиповая конфигурация 1С
Стандартный обмен рассчитан на типовую конфигурацию: «1С:Управление торговлей», «Комплексная автоматизация» в заводском виде. Реальные компании почти всегда дорабатывают 1С под свои процессы: добавляют справочники, меняют документы, вводят нестандартные реквизиты. Как только конфигурация отходит от типовой, стандартный обмен перестаёт понимать её данные, и нужна кастомная обработка. Это не редкость и не чья-то вина, это нормальная жизнь учётной системы, которая росла вместе с компанией.
Характеристики, зашитые в наименование
Самая частая беда производителей. На сайте характеристики должны лежать в отдельных полях, чтобы по ним работали фильтры. В 1С они часто сидят одной строкой прямо в названии номенклатуры, потому что так удобно бухгалтеру. Пример: позиция называется «Гидроцилиндр ЦГ 80х40х400», и диаметр, шток и ход тут не поля, а часть текста. Чтобы по ним фильтровать на сайте, эту строку нужно разобрать на составляющие, и на десятках тысяч позиций это отдельная инженерная задача.
Дубли и разнобой в справочниках
Номенклатуру в 1С годами заводят разные люди. Одна и та же характеристика в разных группах называется по-разному, единицы измерения где-то вынесены в поле, а где-то дописаны в название. Часть позиций дублируется, потому что их завели дважды. Стандартный обмен всё это честно перенесёт на сайт, и каталог унаследует беспорядок учётной системы.
Идентификаторы и сопоставление
Обмен опознаёт товары по уникальным идентификаторам из 1С. Если в учёте позицию удалили и завели заново, у неё меняется идентификатор, и для сайта это уже другой товар. Ссылки на старую карточку ломаются, накопленные для неё данные теряются. Управление идентификаторами это скучная, но важная часть обмена, про которую вспоминают, когда уже что-то отвалилось.
Изображения
В 1С фотографии либо лежат внутри информационной базы как двоичные данные, либо в отдельной папке на сервере. На сайт их обычно нужно отдавать на внешнее хранилище. Передавать картинки через XML медленно и ненадёжно, поэтому для изображений почти всегда делают отдельный процесс синхронизации, а не тащат их вместе с каталогом.
Общий вывод раздела такой. Сложность интеграции определяется не выбором протокола, а состоянием вашей 1С и вашей номенклатуры. Красивый современный REST API поверх хаотичной номенклатуры даст ровно такой же хаос на сайте, только быстрее.
08. Кейс: нестандартный обмен на проекте ZAO-SMS
Покажу всё сказанное на реальном проекте. Метрик по выручке в открытом виде у меня нет, поэтому описываю состав работ, без выдуманных процентов.

Задача. Для интернет-магазина гидрооборудования ZAO-SMS, это часть группы Строймашсервис, мы делали редизайн и переносили каталог примерно на 40 000 позиций. Одним из требований была синхронизация с 1С.
Что пошло не по учебнику. Учётная система клиента не соответствовала стандартным протоколам обмена. Данные приходили в формате, который типовой механизм не переваривает. То есть сценарий «включили стандартный обмен, всё поехало» здесь был невозможен в принципе.
Что мы сделали.
- Разобрали, в каком виде данные реально лежат в системе клиента, а не в каком они должны лежать по стандарту.
- Написали отдельное решение, которое правильно опознаёт товары и вытаскивает нужную информацию из нестандартного формата.
- Настроили работу с характеристиками так, чтобы для разных товарных групп были свои наборы полей, и их можно было править без разработчика.
- Сделали выгрузку категорий на правку в файл и импорт изменений обратно, чтобы номенклатуру можно было чистить массово, а не по одной позиции.
Самое неожиданное на этом проекте. Когда мы оценивали работу на старте, в голове главной задачей была разработка самого обмена, то есть код, который забирает данные и раскладывает по сайту. По факту написание обмена оказалось не самой долгой частью. Больше всего времени ушло на то, чтобы понять, в каком виде данные реально живут в системе клиента, и договориться, какие позиции считать одинаковыми. Код это операция на несколько недель, а разбор чужих данных и решения по ним растянулись дольше, потому что часть этих решений мог принять только сам клиент.
Где мы скорректировали подход. После этого проекта мы поменяли порядок работы на всех последующих интеграциях. Раньше аудит данных был первым коротким этапом, а дальше сразу разработка. Теперь аудит номенклатуры и согласование мастер-данных это полноценный этап с выделенным временем заказчика, который идёт до того, как мы напишем хоть строчку обмена. Это не удлинило проекты, а убрало ситуацию, когда обмен уже написан, а данные под него не готовы.
Почему это важно для понимания темы. На стандартном обмене эта задача не решилась бы галочкой в настройках. И что существенно, на 1С-Битрикс она потребовала бы такой же ручной работы, только внутри чужой архитектуры продукта. Мы работаем на Laravel и Vue, и это дало возможность описать нестандартную логику обмена напрямую, как обычный код. Про выбор между фреймворком и коробкой я подробно писал в статье Laravel или Битрикс.
Вывод: после этого проекта мы ставим аудит и согласование данных отдельным этапом до разработки обмена, и это убирает ситуацию, когда код готов, а данные под него не готовы.
09. Десять мест, где обмен ломается
Собрал в одном списке точки, на которых обмен спотыкается чаще всего. Это карта рисков, которую полезно пройти до старта проекта.
- Нетиповая конфигурация 1С. Стандартный обмен рассчитан на типовую, любая доработка требует кастомной интеграции. Лечится аудитом конфигурации на старте.
- Конфликты двустороннего обмена. Одно поле правится и в 1С, и на сайте. Лечится назначением единственной мастер-системы по каждому полю.
- Производительность на больших каталогах. Полная выгрузка десятков тысяч позиций занимает десятки минут и тормозит 1С. Лечится инкрементальной выгрузкой.
- Разная структура данных. В 1С категории многоуровневые, характеристики в отдельном регистре или в названии. На сайте структура другая. Сопоставление данных это самая трудоёмкая часть, закладывайте на неё заметную долю бюджета.
- Фотографии. Хранятся в базе 1С или в папке, а на сайт нужны на внешнем хранилище. Лечится отдельным процессом синхронизации изображений.
- Множественные типы цен. В 1С бывает от нескольких до пары десятков типов цен. Сайт должен показать правильную цену правильному клиенту, и это логика, а не простая выгрузка.
- Обработка ошибок. Сеть упала, 1С перезагрузилась, кончилось место на диске. Без обработки ошибок обмен молча встаёт. Нужны повторные попытки и оповещения.
- Отсутствие тестовой среды. Тестировать обмен на рабочей 1С опасно, ошибка создаст тысячи неверных документов. Нужна тестовая копия базы.
- Разные версии и конфигурации 1С. Интеграция под «Управление торговлей» не подойдёт к «ERP» без переделки. Опыт подрядчика именно с вашей конфигурацией стоит уточнять заранее.
- Обновления 1С. Очередное обновление меняет структуру данных, и обмен ломается. Лечится проверкой обновлений на тестовой среде и заложенной поддержкой.
На практике: из этих десяти пунктов восемь не видны в день сдачи проекта. Обмен запустили, он поехал, все довольны. Проявляются проблемы через недели и месяцы, когда меняется номенклатура, приходит обновление 1С или растёт нагрузка. Поэтому обмен это система, которая требует постоянного сопровождения, а не разовая настройка по принципу «включил и забыл».
Вывод: большинство поломок обмена проявляются не на сдаче, а спустя месяцы, поэтому закладывайте мониторинг и поддержку с самого начала.
10. Производительность: полная и инкрементальная выгрузка
Отдельно про скорость, потому что на больших каталогах это превращается в реальную боль.
Разница между двумя режимами выгрузки принципиальная. Полная выгрузка каждый раз отдаёт весь каталог целиком. На нескольких тысячах позиций это незаметно, на десятках тысяч выгрузка начинает занимать десятки минут, и всё это время 1С занята и тормозит для сотрудников. Инкрементальная выгрузка отдаёт только то, что изменилось с прошлого раза. Это сокращает время обмена с десятков минут до нескольких, и снимает нагрузку с 1С.

Для любого сколько-нибудь крупного каталога инкрементальный обмен это необходимость, а не приятное дополнение. Но за него нужно платить сложностью: система должна корректно отслеживать, что именно изменилось, и правильно вести себя, когда что-то пошло не так и нужна полная пересборка.
Что ещё влияет на скорость:
- Тип обмена. Файловый CommerceML на гигантских каталогах медленнее, чем обмен по API с выборкой только нужного.
- Изображения. Их синхронизация выносится в отдельный поток, иначе они тормозят весь обмен.
- Расписание. Каталог можно обновлять редко, остатки часто. Не нужно гонять весь объём данных каждые пятнадцать минут, если меняются только остатки.
- Инфраструктура. Скорость самой 1С и канала между 1С и сайтом тоже упирается в железо.
Оговорюсь, что конкретные цифры времени выгрузки сильно зависят от объёма номенклатуры, мощности сервера 1С и способа обмена, поэтому называть их в отрыве от вашего проекта было бы нечестно. Порядок величин такой: правильно сделанный инкрементальный обмен держит время в единицах минут даже на больших каталогах.
11. Обратный обмен: заказы с сайта в 1С
Передать данные из 1С на сайт это половина задачи. Вторая половина, которую часто недооценивают, это вернуть заказы с сайта обратно в учёт.
Обратный обмен ответственнее прямого, потому что тут рождаются документы, по которым компания работает и отгружает товар. Ошибка в прямом обмене портит витрину, ошибка в обратном создаёт неправильный заказ, по которому кто-то поедет не то и не туда.
Что должно доехать с сайта в 1С в составе заказа:
- состав заказа с точными артикулами и количеством;
- цена, по которой заказ оформлен, чтобы она совпадала с той, что видел клиент;
- данные покупателя и, если это новый клиент, создание контрагента;
- способ оплаты и доставки, адрес;
- отметка об оплате, если она прошла на сайте.
Тонкие места обратного обмена:
- Сопоставление клиента. Новый это покупатель или уже есть в базе. Дубли контрагентов в 1С это отдельная головная боль учёта.
- Фиксация цены. Заказ должен уйти в 1С с той ценой, что была на момент оформления, даже если в 1С цена уже поменялась.
- Идемпотентность. Если обмен по ошибке отправит заказ дважды, в 1С не должно появиться два документа. Это техническая деталь, но именно её пропуск порождает задвоенные заказы.
Двусторонний обмен всегда дороже и сложнее одностороннего, и это стоит понимать при планировании бюджета. Если на старте заявок немного, иногда разумно запустить сначала выгрузку каталога из 1С, а обратный обмен заказами добавить вторым этапом. Это рабочая стратегия, главное закладывать её как два этапа осознанно.
12. Журнал обмена: то, что забывают заложить
Отдельный короткий раздел про вещь, которую пропускают в девяти проектах из десяти, а потом дорого об этом жалеют.
Обмен данными нужно журналировать. То есть где-то должно быть видно: что передавалось, когда, успешно или с ошибкой, и если с ошибкой, то с какой. Без такого журнала любое расхождение между сайтом и 1С превращается в спор без доказательств. Сайт показывает одно, 1С другое, а понять, на каком шаге обмена данные разошлись, невозможно, потому что истории обмена нет.
Что должен уметь нормально сделанный обмен:
- Логировать каждую операцию. Когда стартовал обмен, сколько позиций передал, чем закончился.
- Оповещать об ошибках. Если обмен упал, ответственный человек должен узнать об этом сразу, а не через неделю от разгневанного клиента.
- Повторять при временных сбоях. Сеть моргнула, 1С перезагрузилась. Обмен должен сам повторить попытку, а не встать намертво.
- Показывать состояние. Где посмотреть, что последний обмен прошёл, и когда он был.
Типичный сценарий беды выглядит так. Обмен настроили, он работает. Через три месяца часть позиций перестала обновляться из-за мелкого сбоя. Никто не заметил, потому что никто не смотрел, и журнала тоже нет. Клиенты какое-то время заказывают по неактуальным данным, менеджеры разбираются вручную, доверие к сайту внутри компании падает. Всё это лечится журналом и оповещениями, заложенными на старте, а не героическим разбором постфактум.
13. Чистка номенклатуры: этап, который делает заказчик
Это единственный этап интеграции, который нельзя купить у подрядчика, и именно он чаще всего определяет реальный срок проекта.
Я уже говорил, что данные в 1С часто лежат не так, как нужно витрине: характеристики в наименовании, дубли, разнобой в единицах и справочниках. Прежде чем налаживать обмен, эту номенклатуру нужно привести в порядок. И вот ключевое: решить, что вот эти три позиции на самом деле одна, а вот эта характеристика в разных группах должна называться одинаково, может только человек, который знает продукт. Подрядчик этого за вас не сделает, потому что он не знает вашу номенклатуру.
Что здесь делает подрядчик и что заказчик:
- Подрядчик описывает нужную структуру данных, показывает, где в текущей номенклатуре расхождения и дубли, готовит инструменты массовой правки, чтобы чистить не по одной позиции, а пакетами.
- Заказчик принимает содержательные решения: какие позиции одинаковые, как правильно называется характеристика, какие единицы измерения канонические, что удалить, а что оставить.
Отсюда практический совет, который я повторяю на каждой первой встрече. Заложите в план проекта отдельной строкой время ваших сотрудников на чистку номенклатуры и назначьте ответственного. Это не работа подрядчика и не то, что делается за вечер. И именно этот этап, а не разработка обмена, чаще всего сдвигает сроки вправо.
Вывод: чистку номенклатуры делает заказчик, а не подрядчик, и это единственный этап проекта, который нельзя купить, поэтому планируйте его заранее и с ответственным.
Подробнее про то, как устроен каталог и почему модель данных важнее дизайна, я разбирал в статье про разработку каталога для производителя.
14. Сколько это стоит и сколько занимает
Сразу честная рамка. Ниже не смета, а ориентир по порядку величин. Точную стоимость определяют конфигурация вашей 1С, объём и состояние номенклатуры, число типов цен, направление обмена и способ. Часть цифр помечена как допущение, потому что зависит от рынка и подрядчика.
Что влияет на стоимость сильнее всего
- Состояние 1С. Типовая конфигурация дешевле. Доработанная требует аудита и кастомной обработки.
- Состояние номенклатуры. Чистые данные с характеристиками в полях против характеристик в наименовании и дублей. Это самая недооценённая статья.
- Число типов цен и правил. Один тип цены проще. Персональные прайсы по договорам это отдельная логика.
- Направление обмена. Только из 1С на сайт дешевле. Двусторонний обмен с заказами и оплатами дороже.
- Объём каталога. Тысяча позиций это просто. Сотни тысяч требуют инкрементального обмена и оптимизации.
Ориентиры
|
Тип интеграции |
Порядок стоимости |
Когда это ваш случай |
|---|---|---|
|
Стандартный обмен CommerceML на типовой 1С |
ниже всего |
Типовая 1С, сайт на 1С-Битрикс, чистая номенклатура |
|
Кастомная интеграция по API |
средний диапазон |
Кастомный сайт, реальное время, нетиповые данные |
|
Сложный обмен с промежуточной базой |
верхний диапазон |
Высокая нагрузка, большой каталог, несколько систем |
Конкретные рубли зависят от вашего проекта, и называть их в отрыве от аудита я не буду, чтобы не создавать ложных ожиданий. Наша ставка за работы указана в разделе веб-разработка, а разложить именно вашу задачу мы можем на встрече.
Сроки и постоянные расходы
По срокам ориентир такой: аудит и проектирование, затем разработка обмена, затем тестирование на копии базы, затем запуск с ручным контролем первых обменов. Отдельно держите в голове две вещи. Первое: чистка номенклатуры на стороне заказчика идёт параллельно и часто становится узким местом. Второе: интеграция требует постоянной поддержки, потому что обновления 1С и изменения в номенклатуре периодически задевают обмен. Поддержку стоит заложить как регулярную статью, а не как разовую.

15. Чек-лист перед стартом
Пройдите по пунктам до разговора с подрядчиком. Половина вопросов на первой встрече закроется этим списком.
- Уточните точную конфигурацию 1С и её версию: «Управление торговлей», «ERP», «Комплексная автоматизация», другое.
- Выясните, дорабатывалась ли конфигурация под ваши процессы.
- Выгрузите номенклатуру и посмотрите, вынесены ли характеристики в поля или сидят в наименовании.
- Оцените масштаб дублей и разнобоя в справочниках и единицах измерения.
- Посчитайте, сколько у вас типов цен и по какому правилу выбирается цена для клиента.
- Решите, нужен обмен только из 1С на сайт или в обе стороны с заказами.
- Определите требования к скорости: как часто должны обновляться остатки и цены.
- Посчитайте объём каталога и спрогнозируйте его через два-три года.
- Определите мастер-систему по каждому спорному полю данных.
- Проверьте, где лежат изображения товаров и в каком они состоянии.
- Назначьте ответственного за чистку номенклатуры и выделите ему время в графике.
- Убедитесь, что есть возможность сделать тестовую копию базы 1С.
- Заложите в бюджет постоянную поддержку обмена, а не только разработку.
- Спросите у подрядчика опыт именно с вашей конфигурацией 1С.
16. Особенности обмена с разными конфигурациями 1С
Стандартной 1С не существует, есть разные конфигурации под разные задачи, и обмен с каждой имеет свою специфику. Интеграция, написанная под одну конфигурацию, к другой без переделки не подойдёт. Разберу коротко самые распространённые.
Интеграция сайта с 1С:Управление торговлей
«Управление торговлей», сокращённо УТ, это самая частая конфигурация для торговых компаний и самый обкатанный сценарий обмена с сайтом. В ней хорошо развиты справочники номенклатуры, типы цен и складской учёт, поэтому стандартный обмен по CommerceML на типовой УТ настраивается относительно предсказуемо. Сложности начинаются, когда УТ доработана под процессы компании, а дорабатывают её почти всегда.
Интеграция сайта с 1С:ERP
1С:ERP это тяжёлая система для средних и крупных предприятий, где учёт охватывает производство, склад, финансы и продажи. Структура данных в ней сложнее, чем в УТ, и стандартный файловый обмен тут чаще уступает место обмену по REST или через промежуточную базу. Для ERP почти всегда нужен аудит конфигурации и участие штатного 1С-разработчика предприятия, потому что данные глубоко завязаны на внутренние процессы.
Интеграция сайта с 1С:Комплексная автоматизация
«Комплексная автоматизация», КА, занимает промежуточное место между УТ и ERP по возможностям и сложности. Логика обмена похожа на УТ, но объём данных и число сущностей больше. Подход тот же: для типовой КА возможен стандартный обмен, для доработанной нужна кастомная интеграция.
Интеграция сайта с 1С:УНФ
«Управление нашей фирмой», УНФ, это конфигурация для малого бизнеса. Она проще по структуре, и для несложного каталога обмен с сайтом настраивается быстро. Ограничения УНФ проявляются на росте: когда номенклатура и число типов цен выходят за рамки малого бизнеса, компания обычно переходит на УТ или ERP, и обмен приходится переделывать под новую конфигурацию.
Интеграция сайта с 1С:Бухгалтерия
Отдельно предупрежу про частую ошибку. «Бухгалтерия» не предназначена для ведения торговой номенклатуры и складского учёта в том виде, в каком это нужно сайту. Пытаться строить обмен каталога напрямую с Бухгалтерией это почти всегда тупик. Если у вас только Бухгалтерия, для сайта обычно нужна отдельная торговая конфигурация, УТ или УНФ, а Бухгалтерия остаётся для своих задач.
Вывод: перед проектом уточните точную конфигурацию и версию своей 1С, потому что от этого напрямую зависит и способ обмена, и его стоимость; для УТ обмен предсказуемее, для ERP закладывайте аудит и участие своего 1С-специалиста.
17. Частые вопросы
Обязательно ли нужен программист 1С
Для стандартного обмена CommerceML на типовой конфигурации часто достаточно настройки без программиста. Для кастомной интеграции по API и для доработанной 1С программист 1С нужен обязательно: он создаёт обработки выгрузки и загрузки на стороне учёта. Веб-разработчик при этом отвечает за приём и обработку данных на стороне сайта.
Что будет с сайтом, если 1С упадёт
Зависит от способа обмена. При файловом CommerceML сайт продолжит работать со своей базой, просто перестанет обновляться до восстановления 1С. Если сайт обращается к 1С за каждым запросом напрямую по API, он пострадает. Промежуточная база снимает эту зависимость. Общее правило: сайт не должен зависеть от доступности 1С, для этого используют кэширование или промежуточное хранилище.
Как часто обновляются остатки
Зависит от способа. CommerceML обновляет по расписанию, обычно раз в 15-60 минут. API отдаёт данные по запросу, вплоть до реального времени. Для активной торговли с быстрыми продажами обновление остатков лучше держать не реже чем раз в несколько минут, иначе покупатель успевает заказать то, что уже разобрали.
Можно ли связать с 1С сайт на фреймворке, а не на Битриксе
Да, и это распространенная связка. Сайт на фреймворке обменивается с 1С через API или через файловый обмен, так же как любой другой. Более того, для нестандартной 1С фреймворк часто удобнее, потому что нестандартную логику обмена на нём описывают напрямую. Наш проект ZAO-SMS из раздела 08 сделан именно так.
Можно ли интегрировать облачную 1С
Да, облачную 1С интегрируют через API, потому что прямого доступа к файловой системе у неё нет, и файловый CommerceML через папку не подойдёт. Зато не нужно настраивать сеть между серверами, весь обмен идёт по HTTP.
Сколько стоит поддержка обмена
Поддержку стоит закладывать как регулярную статью расходов. Она включает мониторинг работоспособности, реакцию на ошибки, адаптацию при обновлениях 1С и мелкие доработки при изменении номенклатуры. Без поддержки обмен обычно доживает до первой серьёзной проблемы и встаёт, а разбирать последствия дороже, чем предотвращать.
С чего начать, если номенклатура в 1С в беспорядке
С наведения порядка, и лучше до старта разработки обмена, а не параллельно. Мы помогаем методически: описываем нужную структуру, показываем расхождения, готовим инструменты массовой правки. Но содержательные решения о том, какие позиции одинаковые и как называется характеристика, принимает ваш специалист. Подробнее об этом в разделе 13.
18. С чего начать
Если свести статью к одной мысли, она такая. Сложность и стоимость интеграции с 1С определяются не выбором протокола обмена, а состоянием вашей учётной системы и вашей номенклатуры. Красивый современный обмен поверх хаотичных данных даст хаос на сайте, только быстрее. Поэтому работа начинается не с выбора технологии, а с наведения порядка в данных и с ясного ответа на вопрос, какая система за что отвечает.
Я не обещаю, что обмен с 1С сам по себе поднимет вам продажи. Он убирает ручной труд и ошибки, а это уже немало, особенно когда номенклатура и поток заказов растут. Но чуда от него ждать не стоит, это инфраструктура, а не маркетинг.
Три шага, которые можно сделать самостоятельно, ничего не заказывая:
- Выгрузите номенклатуру из 1С в Excel и посмотрите глазами. Характеристики в полях или в названии, много ли дублей. Это пятиминутная проверка, которая сразу покажет масштаб предстоящей работы с данными.
- Уточните конфигурацию и версию своей 1С и то, дорабатывалась ли она. От этого зависит, будет обмен стандартным или кастомным.
- Определите мастер-систему по спорным полям. Кто главный по цене, по описанию, по остатку. Этот организационный вопрос решается внутри компании и экономит массу конфликтов потом.
Если хотите, чтобы мы посмотрели вашу ситуацию, пришлите выгрузку номенклатуры из 1С в любом виде и назовите конфигурацию. Мы вернём разбор: что структурировано, что придётся чистить, какой способ обмена подойдёт и где вероятны сложности. Это бесплатно и ни к чему не обязывает: info@goodfellazz.ru. Если задача уже оформлена, есть бриф. Посмотреть, что мы делаем, можно в разделах веб-разработка и разработка на Laravel, а живые проекты собраны в кейсах.