До выбора модуля или API нарисуйте четыре потока: каталог, коммерческие предложения, доступность и заказ. Для каждого укажите источник, получателя, допустимую задержку и действие при сбое. Это отделит типовую настройку от заказной разработки и не позволит двум системам одновременно менять одно поле.

Ниже разобран технический контур интернет-магазина. Интеграция CRM с 1С решает другую задачу - передачу клиентов, сделок и учётных статусов, поэтому ей посвящено отдельное руководство.

Как устроить интеграцию сайта с 1С?

Рабочая интеграция разделяет потоки и не пытается постоянно копировать всю базу. 1С публикует согласованные товарные данные, сайт принимает заказ, а интеграционный слой проверяет формат, сопоставляет идентификаторы, выполняет операцию и записывает результат. Временная ошибка остаётся в очереди и может быть повторена без создания дубля.

ИсточникПроверкаОчередьПолучательСверка
ПотокЧастое направлениеКонтрольный результат
Каталог и характеристики1С → сайтКарточка связана с одной учётной позицией
Цены и остатки1С → сайтЗначение относится к нужному типу цены и складу
Заказ покупателяСайт → 1ССоздан один документ с исходным номером
Оплата, отгрузка, отмена1С → сайтПокупатель видит согласованный статус

Где хранить исходные товары, цены и заказы?

Каждое поле получает одну систему-источник. Другая система может использовать значение или отправить запрос на изменение, но не переписывает его независимо. Это правило особенно важно для артикулов, цен, остатков и статусов: двусторонний обмен данными не означает равные права на редактирование.

ДанныеЧастый источникЧто уточнить
Код, единица, базовое наименованиеКак обрабатываются варианты и архивные позиции
Маркетинговое описание и SEOCMS или PIMНе перезапишет ли его следующая выгрузка
Типы ценВалюта, период действия и группа клиента
Доступность1С или отдельный контур резервовКакие склады участвуют и что значит «в наличии»
Исходный заказСайтКак хранится внешний идентификатор и состав
Оплата и отгрузка1С или платёжный контурКакие статусы разрешено показывать покупателю

Что выбрать: CommerceML, API, OData или файлы?

CommerceML создан для обмена коммерческой информацией и подходит типовым потокам каталога, предложений и документов между 1С и веб-витриной. REST API, OData или собственный HTTP-сервис полезны для узкого контракта и событийной логики. Решение выбирают после проверки конкретной конфигурации 1С, CMS и требуемой задержки.

СпособКогда уместенЧто проверить
CommerceMLТиповой каталог и документы интернет-магазинаВерсию формата, поддержку CMS, доработки конфигурации
Готовый модульПоддерживаемая связка сайта и 1ССостав сущностей, журнал, обновления и владельца поддержки
REST API сайтаСобытия и управляемые операции CMSАвторизацию, лимиты, версии и повтор запросов
OData 1СДоступ к опубликованным объектамПрава, состав публикации и прикладную валидацию
HTTP-сервис 1ССобственный узкий бизнес-контрактСопровождение сервиса и обратную совместимость
Файловый обменПакетная передача с допустимой задержкойЦелостность файла, повтор и контроль загрузки

Если систем несколько или нужен собственный шлюз, примените базовые принципы из статьи об интеграции по API: стабильный контракт, очередь, идемпотентность, журнал и управляемые версии.

Как синхронизировать каталог и характеристики?

Каталог начинают не с выгрузки изображений, а с идентичности товара. У позиции, варианта, группы, единицы и характеристики должен быть устойчивый внешний идентификатор. Артикул или название могут измениться и не должны быть единственным ключом, иначе обновление превратится в создание новой карточки.

  1. Зафиксировать структуру. Определить группы, товары, варианты, комплекты и единицы измерения.
  2. Сохранить идентификаторы. Хранить связь объекта сайта с объектом учётной системы.
  3. Разделить поля. Не перезаписывать тексты и SEO-атрибуты, которыми владеет CMS.
  4. Обрабатывать архив. Снять товар с публикации по явному правилу, а не удалять историю заказов.
  5. Проверить варианты. Размер, цвет и другие свойства должны стабильно образовывать нужную торговую позицию.
  6. Контролировать медиа. Передавать изображения отдельно, проверять размер, формат и обновление.

CommerceML описывает каталоги, коммерческие предложения и документы как разные части обмена. Такое разделение полезно сохранить и в собственной архитектуре: изменение цены не должно заново создавать товар, а обновление описания не должно сбивать остаток.

Как передавать цены и остатки без расхождений?

Цена передаётся вместе с типом, валютой и периодом действия, а остаток - со складом и правилом доступности. Сайт не должен угадывать, какую из нескольких цен показать или можно ли обещать товар покупателю. Перед запуском фиксируют формулу публикации и допустимую задержку каждого потока.

  • сопоставлены типы цен, валюты и группы покупателей;
  • определены участвующие склады и резервы;
  • нулевое значение отличается от отсутствующего;
  • акция имеет явные даты начала и окончания;
  • полная и частичная выгрузки дают одинаковый итог;
  • задержка обновления видна в мониторинге;
  • массовое обнуление требует отдельной проверки;
  • контрольная выборка сравнивает сайт и 1С после обмена.

Если покупатель может оформить больше доступного количества, нужен не только экспорт остатка. Проектируют резерв или проверку доступности перед подтверждением заказа и определяют, что увидит пользователь при одновременной покупке последней позиции.

Как передавать заказы и возвращать статусы?

Заказ с сайта поступает в 1С с внешним номером, составом, ценами, покупателем, доставкой и оплатой. Интеграция проверяет обязательные поля и сохраняет связь с созданным документом. Ошибку фиксируют до ответа сайту, чтобы заказ не потерялся. Ответный поток переводит внутренние состояния учёта в ограниченный набор понятных покупателю статусов.

ШагПроверкаРезультат
ПолучениеФормат, подпись или авторизация, обязательные поляСобытие записано до обработки
СопоставлениеТовары, клиент, доставка и способ оплатыНет молчаливых замен
СозданиеВнешний номер ещё не обработанОдин документ 1С
ПодтверждениеПолучен внутренний идентификаторСвязь сохранена на сайте
Обратный статусРазрешён переход состоянияПокупатель видит понятный этап
Отмена или возвратОпределён отдельный бизнес-процессИстория не стирается

Уведомление платёжной системы и учётный статус могут приходить в разном порядке. Поэтому операция не должна зависеть от случайной последовательности: актуальное состояние перечитывают, а запрещённый переход отправляют в очередь разбора.

Как исключить дубли и конфликты обмена?

Повторная доставка - штатный сценарий устойчивой интеграции. Для каждого события сохраняют технический ключ, а для заказа или другой бизнес-операции - отдельный ключ идемпотентности. Оператор видит обе попытки в журнале и их общий результат. Повтор возвращает прежний результат, а уникальное ограничение защищает от параллельного создания двух документов.

  • хранить идентификаторы сайта и 1С в явной таблице соответствий;
  • не использовать название, телефон или артикул как единственное доказательство совпадения;
  • различать создание, изменение, отмену и возврат;
  • сравнивать версии или время изменения по согласованному правилу;
  • не удалять объект только потому, что он отсутствует в частичной выгрузке;
  • неоднозначное объединение отдавать сотруднику;
  • вести историю автоматических и ручных исправлений.

Как защитить обмен сайта с 1С?

Интеграция использует отдельные учётные записи с минимальными правами и получает доступ только к нужным объектам. Контур 1С не публикуют шире необходимого: применяют защищённое соединение, сетевые ограничения или шлюз, а секреты хранят вне кода и журналов. Любое внешнее значение проверяют как недоверенное.

ЗонаМинимальная мера
АутентификацияОтдельный аккаунт, отзыв и ротация доступа
АвторизацияПрава только на нужные объекты и операции
СетьTLS и ограничение доступной поверхности
Входные данныеСхема, размер, типы и допустимые значения
ЖурналИдентификатор операции без паролей и лишних персональных данных
ОшибкиПонятный внутренний код без раскрытия устройства системы наружу
Тестовый контурОтдельные ключи и минимизированные данные

OWASP отдельно выделяет риски нарушения авторизации, неправильной конфигурации и небезопасного использования сторонних API. Эти проверки относятся и к готовому модулю: его происхождение, обновления, права и сетевые маршруты входят в приёмку.

Как провести пилот и принять интеграцию?

Пилот ограничивают небольшим набором товаров, одним типом цены, складом и способом заказа, но проводят весь маршрут до обратного статуса. До переключения готовят тестовые случаи, контрольную сверку и план возврата. Успех подтверждается данными двух систем, а не только зелёным ответом API.

  1. 01

    Инвентаризация

    Версии, доработки, модули, объёмы и владельцы систем.

  2. 02

    Контракт

    Поля, ключи, статусы, направления и допустимые задержки.

  3. 03

    Тестовый обмен

    Новые и изменённые товары, цены, остатки и заказ.

  4. 04

    Исключения

    Повтор, недоступность, неизвестный товар, отмена и возврат.

  5. 05

    Сверка

    Количество, суммы, статусы, пропуски и лишние записи.

  6. 06

    Ограниченный запуск

    Наблюдение, разбор очереди и решение о расширении.

Критерии и ответственность удобно закрепить в документе по принципам технического задания на разработку. Для B2B-витрины дополнительно проверьте роли, договорные цены и лимиты из руководства по B2B-личному кабинету.

Что влияет на стоимость интеграции сайта с 1С?

Стоимость определяют не названия систем, а количество потоков, варианты данных, доработки конфигурации, требования к задержке и приёмке. Точная оценка появляется после диагностики тестового контура и критичных неизвестных. Поэтому смету связывают с перечнем проверяемых работ и границ. До этого корректен только диапазон с перечисленными допущениями и исключениями.

ФакторПочему меняет объёмКак уточнить
Конфигурация 1С и CMSОпределяет готовые механизмы и ограниченияЗафиксировать версии и доработки
КаталогВарианты, комплекты, свойства и медиа усложняют модельВзять реальные примеры
Цены и складыДобавляют правила выбора и доступностиСобрать матрицу типов и складов
ЗаказыДоставка, оплата, возвраты и статусы образуют отдельные ветвиНарисовать сквозной маршрут
ЗадержкаСобытийный обмен требует очереди и наблюденияНазначить допустимое время каждому потоку
НадёжностьПовторы, журнал, мониторинг и откат требуют разработкиОпределить цену потери операции
СопровождениеОбновления систем меняют совместимостьНазначить владельца и регламент проверки

Запрашивайте смету по результатам этапов: обследование, контракт, тестовый контур, пилот, промышленный запуск и сопровождение. Отдельно фиксируйте лицензии, готовые модули, инфраструктуру и работы сторонних команд, чтобы сравнивать предложения на одинаковой границе.

Частые вопросы

Какой способ интеграции сайта с 1С выбрать?

Для типового интернет-магазина и поддерживаемой конфигурации сначала проверяют готовый обмен по CommerceML. API или HTTP-сервис уместны, когда нужен собственный контракт, оперативные события или нестандартная логика. Файловый обмен подходит пакетным операциям с допустимой задержкой.

Можно ли синхронизировать сайт и 1С в реальном времени?

Можно передавать отдельные события почти сразу, но требуемую задержку нужно обосновать процессом. Каталог и изображения часто выгоднее обновлять пакетно, а резерв товара или статус заказа - по событию. Для каждого потока задают отдельный регламент и поведение при сбое.

Где должны храниться цены и остатки?

Обычно учётная система остаётся источником цен и доступности, а сайт публикует полученные значения. Но правило зависит от процесса: маркетинговые цены могут готовиться в отдельной системе. Важно назначить одного владельца каждого поля и запретить независимую запись с двух сторон.

Как не создавать повторные заказы?

Сайт передаёт устойчивый внешний идентификатор заказа, а интеграция хранит связь с документом 1С и ключ обработанной операции. Повторная доставка должна возвращать прежний результат, а не создавать новый документ. Неоднозначные случаи отправляют в очередь ручной проверки.

Нужно ли останавливать магазин на время запуска?

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

Что подготовить для оценки интеграции?

Укажите конфигурацию и версию 1С, платформу сайта, объём и структуру каталога, типы цен и складов, путь заказа, нужную задержку, текущие доработки и примеры ошибок. Этого достаточно, чтобы выделить неизвестные и оценить этап диагностики.

Источники и границы материала

  1. 1С: обмен данными с интернет-магазином
  2. 1С: стандарт CommerceML 2
  3. 1С: логическое описание CommerceML 2.10
  4. 1С: автоматический REST-интерфейс OData
  5. 1С: интерфейс OData в Библиотеке стандартных подсистем
  6. OWASP: API Security Top 10 2023

Материал носит информационный характер. Конкретная архитектура, бюджет, режим работы с данными и уровень человеческого контроля зависят от процесса и требований компании.

Следующий шаг

Спроектируйте проверяемый обмен сайта и 1С

Покажите платформу сайта, конфигурацию 1С, примеры каталога и путь заказа. Мы распределим владельцев данных, выберем способ обмена и определим границы пилота.

← Все статьи