До выбора модуля или API нарисуйте четыре потока: каталог, коммерческие предложения, доступность и заказ. Для каждого укажите источник, получателя, допустимую задержку и действие при сбое. Это отделит типовую настройку от заказной разработки и не позволит двум системам одновременно менять одно поле.
Ниже разобран технический контур интернет-магазина. Интеграция CRM с 1С решает другую задачу - передачу клиентов, сделок и учётных статусов, поэтому ей посвящено отдельное руководство.
Как устроить интеграцию сайта с 1С?
Рабочая интеграция разделяет потоки и не пытается постоянно копировать всю базу. 1С публикует согласованные товарные данные, сайт принимает заказ, а интеграционный слой проверяет формат, сопоставляет идентификаторы, выполняет операцию и записывает результат. Временная ошибка остаётся в очереди и может быть повторена без создания дубля.
| Поток | Частое направление | Контрольный результат |
|---|---|---|
| Каталог и характеристики | 1С → сайт | Карточка связана с одной учётной позицией |
| Цены и остатки | 1С → сайт | Значение относится к нужному типу цены и складу |
| Заказ покупателя | Сайт → 1С | Создан один документ с исходным номером |
| Оплата, отгрузка, отмена | 1С → сайт | Покупатель видит согласованный статус |
Где хранить исходные товары, цены и заказы?
Каждое поле получает одну систему-источник. Другая система может использовать значение или отправить запрос на изменение, но не переписывает его независимо. Это правило особенно важно для артикулов, цен, остатков и статусов: двусторонний обмен данными не означает равные права на редактирование.
| Данные | Частый источник | Что уточнить |
|---|---|---|
| Код, единица, базовое наименование | 1С | Как обрабатываются варианты и архивные позиции |
| Маркетинговое описание и SEO | CMS или PIM | Не перезапишет ли его следующая выгрузка |
| Типы цен | 1С | Валюта, период действия и группа клиента |
| Доступность | 1С или отдельный контур резервов | Какие склады участвуют и что значит «в наличии» |
| Исходный заказ | Сайт | Как хранится внешний идентификатор и состав |
| Оплата и отгрузка | 1С или платёжный контур | Какие статусы разрешено показывать покупателю |
Что выбрать: CommerceML, API, OData или файлы?
CommerceML создан для обмена коммерческой информацией и подходит типовым потокам каталога, предложений и документов между 1С и веб-витриной. REST API, OData или собственный HTTP-сервис полезны для узкого контракта и событийной логики. Решение выбирают после проверки конкретной конфигурации 1С, CMS и требуемой задержки.
| Способ | Когда уместен | Что проверить |
|---|---|---|
| CommerceML | Типовой каталог и документы интернет-магазина | Версию формата, поддержку CMS, доработки конфигурации |
| Готовый модуль | Поддерживаемая связка сайта и 1С | Состав сущностей, журнал, обновления и владельца поддержки |
| REST API сайта | События и управляемые операции CMS | Авторизацию, лимиты, версии и повтор запросов |
| OData 1С | Доступ к опубликованным объектам | Права, состав публикации и прикладную валидацию |
| HTTP-сервис 1С | Собственный узкий бизнес-контракт | Сопровождение сервиса и обратную совместимость |
| Файловый обмен | Пакетная передача с допустимой задержкой | Целостность файла, повтор и контроль загрузки |
Если систем несколько или нужен собственный шлюз, примените базовые принципы из статьи об интеграции по API: стабильный контракт, очередь, идемпотентность, журнал и управляемые версии.
Как синхронизировать каталог и характеристики?
Каталог начинают не с выгрузки изображений, а с идентичности товара. У позиции, варианта, группы, единицы и характеристики должен быть устойчивый внешний идентификатор. Артикул или название могут измениться и не должны быть единственным ключом, иначе обновление превратится в создание новой карточки.
- Зафиксировать структуру. Определить группы, товары, варианты, комплекты и единицы измерения.
- Сохранить идентификаторы. Хранить связь объекта сайта с объектом учётной системы.
- Разделить поля. Не перезаписывать тексты и SEO-атрибуты, которыми владеет CMS.
- Обрабатывать архив. Снять товар с публикации по явному правилу, а не удалять историю заказов.
- Проверить варианты. Размер, цвет и другие свойства должны стабильно образовывать нужную торговую позицию.
- Контролировать медиа. Передавать изображения отдельно, проверять размер, формат и обновление.
CommerceML описывает каталоги, коммерческие предложения и документы как разные части обмена. Такое разделение полезно сохранить и в собственной архитектуре: изменение цены не должно заново создавать товар, а обновление описания не должно сбивать остаток.
Как передавать цены и остатки без расхождений?
Цена передаётся вместе с типом, валютой и периодом действия, а остаток - со складом и правилом доступности. Сайт не должен угадывать, какую из нескольких цен показать или можно ли обещать товар покупателю. Перед запуском фиксируют формулу публикации и допустимую задержку каждого потока.
- сопоставлены типы цен, валюты и группы покупателей;
- определены участвующие склады и резервы;
- нулевое значение отличается от отсутствующего;
- акция имеет явные даты начала и окончания;
- полная и частичная выгрузки дают одинаковый итог;
- задержка обновления видна в мониторинге;
- массовое обнуление требует отдельной проверки;
- контрольная выборка сравнивает сайт и 1С после обмена.
Если покупатель может оформить больше доступного количества, нужен не только экспорт остатка. Проектируют резерв или проверку доступности перед подтверждением заказа и определяют, что увидит пользователь при одновременной покупке последней позиции.
Как передавать заказы и возвращать статусы?
Заказ с сайта поступает в 1С с внешним номером, составом, ценами, покупателем, доставкой и оплатой. Интеграция проверяет обязательные поля и сохраняет связь с созданным документом. Ошибку фиксируют до ответа сайту, чтобы заказ не потерялся. Ответный поток переводит внутренние состояния учёта в ограниченный набор понятных покупателю статусов.
| Шаг | Проверка | Результат |
|---|---|---|
| Получение | Формат, подпись или авторизация, обязательные поля | Событие записано до обработки |
| Сопоставление | Товары, клиент, доставка и способ оплаты | Нет молчаливых замен |
| Создание | Внешний номер ещё не обработан | Один документ 1С |
| Подтверждение | Получен внутренний идентификатор | Связь сохранена на сайте |
| Обратный статус | Разрешён переход состояния | Покупатель видит понятный этап |
| Отмена или возврат | Определён отдельный бизнес-процесс | История не стирается |
Уведомление платёжной системы и учётный статус могут приходить в разном порядке. Поэтому операция не должна зависеть от случайной последовательности: актуальное состояние перечитывают, а запрещённый переход отправляют в очередь разбора.
Как исключить дубли и конфликты обмена?
Повторная доставка - штатный сценарий устойчивой интеграции. Для каждого события сохраняют технический ключ, а для заказа или другой бизнес-операции - отдельный ключ идемпотентности. Оператор видит обе попытки в журнале и их общий результат. Повтор возвращает прежний результат, а уникальное ограничение защищает от параллельного создания двух документов.
- хранить идентификаторы сайта и 1С в явной таблице соответствий;
- не использовать название, телефон или артикул как единственное доказательство совпадения;
- различать создание, изменение, отмену и возврат;
- сравнивать версии или время изменения по согласованному правилу;
- не удалять объект только потому, что он отсутствует в частичной выгрузке;
- неоднозначное объединение отдавать сотруднику;
- вести историю автоматических и ручных исправлений.
Как защитить обмен сайта с 1С?
Интеграция использует отдельные учётные записи с минимальными правами и получает доступ только к нужным объектам. Контур 1С не публикуют шире необходимого: применяют защищённое соединение, сетевые ограничения или шлюз, а секреты хранят вне кода и журналов. Любое внешнее значение проверяют как недоверенное.
| Зона | Минимальная мера |
|---|---|
| Аутентификация | Отдельный аккаунт, отзыв и ротация доступа |
| Авторизация | Права только на нужные объекты и операции |
| Сеть | TLS и ограничение доступной поверхности |
| Входные данные | Схема, размер, типы и допустимые значения |
| Журнал | Идентификатор операции без паролей и лишних персональных данных |
| Ошибки | Понятный внутренний код без раскрытия устройства системы наружу |
| Тестовый контур | Отдельные ключи и минимизированные данные |
OWASP отдельно выделяет риски нарушения авторизации, неправильной конфигурации и небезопасного использования сторонних API. Эти проверки относятся и к готовому модулю: его происхождение, обновления, права и сетевые маршруты входят в приёмку.
Как провести пилот и принять интеграцию?
Пилот ограничивают небольшим набором товаров, одним типом цены, складом и способом заказа, но проводят весь маршрут до обратного статуса. До переключения готовят тестовые случаи, контрольную сверку и план возврата. Успех подтверждается данными двух систем, а не только зелёным ответом API.
- 01
Инвентаризация
Версии, доработки, модули, объёмы и владельцы систем.
- 02
Контракт
Поля, ключи, статусы, направления и допустимые задержки.
- 03
Тестовый обмен
Новые и изменённые товары, цены, остатки и заказ.
- 04
Исключения
Повтор, недоступность, неизвестный товар, отмена и возврат.
- 05
Сверка
Количество, суммы, статусы, пропуски и лишние записи.
- 06
Ограниченный запуск
Наблюдение, разбор очереди и решение о расширении.
Критерии и ответственность удобно закрепить в документе по принципам технического задания на разработку. Для B2B-витрины дополнительно проверьте роли, договорные цены и лимиты из руководства по B2B-личному кабинету.
Что влияет на стоимость интеграции сайта с 1С?
Стоимость определяют не названия систем, а количество потоков, варианты данных, доработки конфигурации, требования к задержке и приёмке. Точная оценка появляется после диагностики тестового контура и критичных неизвестных. Поэтому смету связывают с перечнем проверяемых работ и границ. До этого корректен только диапазон с перечисленными допущениями и исключениями.
| Фактор | Почему меняет объём | Как уточнить |
|---|---|---|
| Конфигурация 1С и CMS | Определяет готовые механизмы и ограничения | Зафиксировать версии и доработки |
| Каталог | Варианты, комплекты, свойства и медиа усложняют модель | Взять реальные примеры |
| Цены и склады | Добавляют правила выбора и доступности | Собрать матрицу типов и складов |
| Заказы | Доставка, оплата, возвраты и статусы образуют отдельные ветви | Нарисовать сквозной маршрут |
| Задержка | Событийный обмен требует очереди и наблюдения | Назначить допустимое время каждому потоку |
| Надёжность | Повторы, журнал, мониторинг и откат требуют разработки | Определить цену потери операции |
| Сопровождение | Обновления систем меняют совместимость | Назначить владельца и регламент проверки |
Запрашивайте смету по результатам этапов: обследование, контракт, тестовый контур, пилот, промышленный запуск и сопровождение. Отдельно фиксируйте лицензии, готовые модули, инфраструктуру и работы сторонних команд, чтобы сравнивать предложения на одинаковой границе.
Частые вопросы
Какой способ интеграции сайта с 1С выбрать?
Для типового интернет-магазина и поддерживаемой конфигурации сначала проверяют готовый обмен по CommerceML. API или HTTP-сервис уместны, когда нужен собственный контракт, оперативные события или нестандартная логика. Файловый обмен подходит пакетным операциям с допустимой задержкой.
Можно ли синхронизировать сайт и 1С в реальном времени?
Можно передавать отдельные события почти сразу, но требуемую задержку нужно обосновать процессом. Каталог и изображения часто выгоднее обновлять пакетно, а резерв товара или статус заказа - по событию. Для каждого потока задают отдельный регламент и поведение при сбое.
Где должны храниться цены и остатки?
Обычно учётная система остаётся источником цен и доступности, а сайт публикует полученные значения. Но правило зависит от процесса: маркетинговые цены могут готовиться в отдельной системе. Важно назначить одного владельца каждого поля и запретить независимую запись с двух сторон.
Как не создавать повторные заказы?
Сайт передаёт устойчивый внешний идентификатор заказа, а интеграция хранит связь с документом 1С и ключ обработанной операции. Повторная доставка должна возвращать прежний результат, а не создавать новый документ. Неоднозначные случаи отправляют в очередь ручной проверки.
Нужно ли останавливать магазин на время запуска?
Полная остановка обычно не требуется. Сначала проводят тестовый обмен, затем пилот на ограниченном ассортименте или канале и только после контрольной сверки переключают основной поток. План возврата и окно изменений согласуют до запуска.
Что подготовить для оценки интеграции?
Укажите конфигурацию и версию 1С, платформу сайта, объём и структуру каталога, типы цен и складов, путь заказа, нужную задержку, текущие доработки и примеры ошибок. Этого достаточно, чтобы выделить неизвестные и оценить этап диагностики.
Источники и границы материала
- 1С: обмен данными с интернет-магазином
- 1С: стандарт CommerceML 2
- 1С: логическое описание CommerceML 2.10
- 1С: автоматический REST-интерфейс OData
- 1С: интерфейс OData в Библиотеке стандартных подсистем
- OWASP: API Security Top 10 2023
Материал носит информационный характер. Конкретная архитектура, бюджет, режим работы с данными и уровень человеческого контроля зависят от процесса и требований компании.
Спроектируйте проверяемый обмен сайта и 1С
Покажите платформу сайта, конфигурацию 1С, примеры каталога и путь заказа. Мы распределим владельцев данных, выберем способ обмена и определим границы пилота.
