Интеграция сайта с 1С — тема, на которой сгорело больше проектных бюджетов, чем на дизайне и вёрстке вместе взятых. Снаружи задача выглядит просто: выгрузить товары, забрать заказы. Внутри — чужая конфигурация, которую пять лет правил приходящий программист, и никто уже не помнит, почему поле «Артикул» иногда содержит штрихкод. Разберём способы обмена, сроки, цены и типовые места, где всё ломается.
Что обычно называют интеграцией
За фразой «нужен обмен с 1С» скрываются четыре разные задачи, и стоят они по-разному:
- Товары и справочники — номенклатура, категории, свойства, изображения, цены. Односторонний обмен из 1С на сайт.
- Остатки — количество по складам, статусы наличия. Технически просто, но требует частого обмена и аккуратности с кешем.
- Заказы — двусторонний обмен: заказ уходит в 1С, обратно приходят статусы, номера накладных, оплаты.
- Взаиморасчёты и документы — баланс контрагента, акты, счета, отгрузки. Актуально для B2B и личных кабинетов.
Первые две задачи — это недели. Четвёртая — это отдельный проект со своим ТЗ.
Способы обмена: что выбрать
Штатный обмен CommerceML. Родной механизм для связки 1С и коробочной CMS. Работает по расписанию, обменивается XML-пакетами. Плюс: почти не требует разработки, если конфигурация типовая. Минус: тяжёлый на больших каталогах и негибкий — вы получаете тот формат, который умеет отдавать 1С.
Обмен через HTTP-сервисы 1С. В конфигурации публикуются веб-сервисы, сайт ходит за данными сам. Плюс: обмен становится точечным — можно спросить остаток по конкретному товару в момент оформления заказа. Минус: нужен программист 1С и опубликованная база, доступная снаружи.
Через промежуточный слой. Сайт и 1С общаются не напрямую, а через сервис обмена с очередью. Плюс: 1С может лежать, а сайт продолжает принимать заказы — они накопятся и уйдут позже. Так мы делаем на всех нагруженных проектах. Минус: дороже на старте.
Через готовый коннектор или интеграционную платформу. Разумно, когда систем больше двух: сайт, 1С, CRM, маркетплейсы. Экономит разработку, но добавляет абонентскую плату и зависимость от чужого сервиса.
| Способ | Когда подходит | Ориентир по цене |
|---|---|---|
| CommerceML | Типовая конфигурация, до 20 тыс. SKU | 80–250 тыс. ₽ |
| HTTP-сервисы | Нужны данные в реальном времени | 250–600 тыс. ₽ |
| Промежуточный слой | Высокая нагрузка, нельзя терять заказы | 400–900 тыс. ₽ |
| Готовый коннектор | Много систем, типовые процессы | от 15 тыс. ₽/мес |
Правило, которое экономит месяцы
Перед первой строкой кода нужно ответить на один вопрос по каждому полю: какая система для него главная? Кто хозяин цены — сайт или 1С? Кто хозяин описания товара? Кто хозяин статуса заказа после отгрузки?
Без этой таблицы обмен превращается в качели: маркетолог поправил описание на сайте, обмен затёр его выгрузкой из 1С, маркетолог поправил снова. Мы видели проект, где так воевали полгода, пока не нарисовали схему на одном листе.
Второе правило — обмен должен быть идемпотентным. Повторный пакет с теми же данными не должен создавать дубли заказов и товаров. Проверяется это тривиально: прогоните один и тот же пакет дважды на тестовом стенде и посмотрите на базу.
Где всё ломается
Нетиповая конфигурация. 80% сложности берётся отсюда. Доработанная под компанию 1С отдаёт данные не так, как ожидает стандартный обмен. Лечится аудитом до старта: смотрим конфигурацию, а не верим на слово «у нас типовая».
Дубли номенклатуры. В 1С один товар может существовать в трёх карточках, потому что его заводили три менеджера. Сайт честно покажет три. Чистка справочника — работа на стороне заказчика, и её лучше начать за месяц до интеграции.
Кодировки и спецсимволы. Классика: длинное тире, неразрывный пробел и кавычки-ёлочки, которые превращаются в вопросительные знаки. Ловится на первом же тесте, если тестировать на реальных данных, а не на «Товаре 1».
Обмен по расписанию раз в сутки. Остатки разъезжаются с реальностью, клиент заказывает то, чего нет. Для розницы нужен обмен остатками минимум раз в 15 минут, а лучше — запрос в момент оформления.
Тяжёлый пакет в час пик. Выгрузка на 40 тысяч позиций кладёт сайт, если запускается в 19:00. Решается расписанием, разбиением на части и очередью.
Отсутствие мониторинга. Самый дорогой сценарий: обмен упал в пятницу, заметили в понедельник, за выходные потеряли 300 заказов. Алерт в Telegram при сбое обмена стоит один час работы и снимает этот риск полностью.
Сроки и порядок работ
Реалистичный план для магазина среднего размера:
- Аудит конфигурации — 3–5 дней. Смотрим, что за 1С, кто её ведёт, есть ли тестовая база. Тестовая база обязательна: на боевой не экспериментируют.
- Схема обмена — 3–5 дней. Та самая таблица «кто хозяин поля», расписание, формат.
- Товары и остатки — 1–2 недели. Первый видимый результат, на нём проверяются все договорённости.
- Заказы и статусы — 1,5–3 недели. Двусторонний обмен, обработка ошибок, повторные попытки.
- Нагрузочный тест и мониторинг — 3–5 дней. Прогон на полном объёме, алерты, инструкция «что делать, если обмен встал».
Итого 5–9 недель для проекта без экзотики. Если в компании нет своего специалиста по 1С, добавьте время на поиск — без человека со стороны учётной системы интеграция не делается в принципе.
Частые вопросы
Сколько стоит интеграция сайта с 1С?
Штатный обмен товарами и остатками на типовой конфигурации — 80–250 тысяч рублей. Двусторонний обмен заказами и статусами — 250–600 тысяч. Интеграция с очередью для нагруженного магазина, где нельзя терять заказы, — 400–900 тысяч рублей.
Сколько времени занимает интеграция?
От 5 до 9 недель для магазина среднего размера: неделя на аудит и схему обмена, 1–2 недели на товары и остатки, 1,5–3 недели на заказы, около недели на нагрузочный тест и мониторинг. Нетиповая конфигурация 1С добавляет к сроку от двух недель.
Нужен ли программист 1С со стороны заказчика?
Практически всегда. Веб-студия отвечает за сторону сайта, но публикацию сервисов, доработку выгрузок и правку конфигурации делает специалист по 1С. Проекты, где такого человека нет, стоят дольше и дороже — интегратору приходится разбираться в чужой конфигурации с нуля.
Как часто нужно синхронизировать остатки?
Для розницы с быстрым оборотом — не реже раза в 15 минут, а на этапе оформления заказа лучше запрашивать остаток напрямую. Для проектов с медленным оборотом достаточно нескольких раз в сутки. Обмен раз в день почти гарантированно приводит к заказам товаров, которых нет на складе.
Что делать, если 1С недоступна во время обмена?
Правильная схема — очередь: сайт складывает заказы в неё и повторяет отправку, пока 1С не ответит. Клиент при этом ничего не замечает. Прямой обмен без очереди в такой ситуации теряет заказы, поэтому для магазинов с заметным оборотом мы всегда закладываем промежуточный слой.
Коротко
Интеграция с 1С — это на 20% код и на 80% договорённости о данных. Начните с аудита конфигурации и таблицы «кто хозяин каждого поля», требуйте тестовую базу, ставьте мониторинг с первого дня и запускайте обмен по частям: сначала товары, потом заказы, потом документы.
Если нужен подрядчик, который сначала спросит про конфигурацию, а потом назовёт цену, — расскажите о задаче или посмотрите, как мы работаем с сайтами и магазинами и веб-приложениями.