
Внедрение интеграции со СБИС для розницы
Готовое решение для 1С-Битрикс: интеграция со СБИС для розничной торговли. Автоматизируйте обмен данными. Установите шаблон прямо сейчас!
Нужна лицензия 1С-Битрикс?
Поможем купить новую лицензию или продлить действующую — «1С-Битрикс: Управление сайтом» и Битрикс24.
Дорого?
Напишите нам — бесплатно подберём похожее решение подешевле под вашу задачу.
Технические данные
- Опубликовано:
- 08.05.2026
- Обновлено:
- 10.06.2026
- Версия:
- 1.2.12
- Установлено:
- Менее 50 раз
- Подходящие редакции:
- «Первый сайт», «Старт», «Стандарт», «Малый бизнес», «Бизнес»
- Адаптивность:
- Нет
- Поддержка Композита:
- Нет
- Совместимо с Сайты24
- Нет
Онлайн-демонстрация
Хотите увидеть продукт в действии? Запросите демонстрацию — мы покажем всё вживую и ответим на вопросы.
Возможности интеграции со СБИС
Готовое решение «Интеграция со СБИС (Retail)» для 1С-Битрикс решает ключевую задачу розничного бизнеса: автоматическую синхронизацию данных между сайтом и товароучётной системой СБИС (Saby). Продукт разработан для компаний, которые ведут складской учёт и оформление продаж через СБИС Retail, а интернет-магазин работает на платформе 1С-Битрикс. Модуль заменяет устаревшие ручные методы (скрипты, частичную выгрузку раз в сутки) на полностью автоматизированный цикл обмена данными, работающий в реальном времени.
После установки модуля владелец сайта получает три ключевых механизма интеграции. Первый — автоматическая генерация YML-файла (каталога товаров) из прайс-листа СБИС. Модуль рекурсивно обходит все разделы, собирает атрибуты, штрих-коды и изображения, формируя структуру, готовую для импорта в любой инфоблок Битрикс. Второй — лёгкая и быстрая синхронизация остатков, которую можно запускать по расписанию через штатных агентов CMS с интервалом в несколько минут. Третий — отправка заказов с сайта в ленту СБИС Retail сразу после оформления, что позволяет кассиру в магазине видеть онлайн-заказы без задержек.
Дополнительно модуль предоставляет гибкие настройки фильтрации номенклатуры: можно скрыть часть товаров на сайте, используя значение атрибута (например, «Не выгружать на сайт»). Авторизация в системе СБИС выполняется по протоколу OAuth с динамическим получением токена, что обеспечивает безопасность соединения. Решение совместимо с редакциями «Первый сайт», «Старт», «Стандарт» и «Малый бизнес», не требует внешних сервисов или установки дополнительных модулей на стороне СБИС.
Кому подходит данное решение
- Розничным сетям и магазинам, которые уже используют СБИС Retail для учёта и хотят автоматизировать работу интернет-площадки.
- Компаниям, торгующим товарами с высокой оборачиваемостью (продукты питания, товары повседневного спроса, хозяйственные товары), где критична актуальность остатков на сайте.
- Бизнесам, которым необходимо исключить ручной ввод заказов из интернет-магазина в кассовую систему.
Покупатель получает готовый инструмент без необходимости писать собственные скрипты или привлекать разработчика для настройки обмена. Модуль решает проблему неактуальных остатков и задержек передачи заказов, что напрямую влияет на лояльность клиентов и снижает количество отказов из-за отсутствия товара. Все операции выполняются на сервере сайта через стандартные механизмы Битрикс (агенты по расписанию), что гарантирует стабильную работу даже при высоких нагрузках.
Модуль связывает интернет-магазин на 1С-Битрикс с СБИС-Retail (Saby).
## Что делает
- Выгружает каталог товаров и иерархию категорий из СБИС в `import.xml` (YML, для импорта в инфоблок «Каталог» Битрикса).
- Выгружает остатки в `stocks.xml` с полями: общий остаток, в резерве, свободный, срок резерва.
- Отправляет оплаченные заказы с сайта в кассу СБИС-Retail.
- Подтягивает «внешний код товара» — код из системы клиента-сайта, который СБИС хранит на карточке товара.
- Синхронизирует номенклатуру СБИС с CRM Битрикс24 по входящему вебхуку.
- Регулярно обновляет каталог, остатки и резервы по расписанию (cron-агенты Битрикса).
## Что выгружает в `import.xml`
```xml
<offer id="3052" available="true">
<name>Дейтериевая лампа</name>
<price>2500</price>
<currencyId>RUR</currencyId>
<categoryId>484</categoryId>
<description>описание...</description>
<nomNumber>X2831985</nomNumber>
<external_id>c2045fe6-75ed-42d0-a9b5-fc6c345439f0</external_id>
<external_code>123456</external_code>
<unit>шт</unit>
<barcode>4620532580038</barcode>
<pictures>
картинка 1,2,3</pictures>
<attributes>
<attribute>
<name>weight</name>
<value>1</value>
</attribute>
...
</attributes>
</offer>
```
## Что выгружает в `stocks.xml`
```xml
<offer id="3052">
<stock>2</stock>
<total>2</total>
<reserve>1</reserve>
<reserve_until>05.07.26</reserve_until>
<free>1</free>
</offer>
Для чего предназначен этот модуль и какие задачи он решает?
С какими версиями 1С-Битрикс совместим данный продукт?
Какова стоимость и условия лицензирования модуля?
Как происходит установка и настройка модуля?
Какая техническая поддержка предоставляется после покупки?
Установка модуля из Маркетплейса
Перейдите в административную панель сайта, откройте раздел «Маркетплейс» → «Каталог решений». Найдите решение «Внедрение интеграции со СБИС для розницы» и нажмите «Установить». После завершения установки перейдите в раздел «Установленные решения» и активируйте модуль.
Настройка подключения к СБИС
Откройте страницу настроек модуля: «Настройки» → «Настройки продукта» → «Настройки модулей» → «Интеграция со СБИС (Retail)». Укажите параметры подключения к вашему аккаунту СБИС: API-ключ, идентификатор магазина и URL сервера. Сохраните изменения.
Привязка инфоблока каталога
В настройках модуля выберите инфоблок, в который будут импортироваться товары из СБИС. Укажите соответствие полей: артикул, наименование, цена, изображения и штрих-коды. Настройте фильтрацию номенклатуры, если требуется исключить определённые группы товаров.
Настройка синхронизации остатков
В разделе «Настройки» → «Агенты» создайте агента для автоматической синхронизации остатков. Укажите интервал выполнения (например, каждые 5 минут) и привяжите его к функции модуля обновления остатков. Сохраните и проверьте, что агент активен.
Настройка отправки заказов
В настройках модуля активируйте опцию «Отправлять заказы в СБИС Retail». Укажите статусы заказов, при которых происходит отправка (например, «Оплачен» или «Принят»). Сохраните настройки — все новые заказы будут автоматически передаваться в ленту СБИС.
Проверка работы интеграции
Выполните тестовый запуск: вручную импортируйте YML-файл из СБИС через интерфейс модуля, убедитесь, что товары и остатки отображаются в каталоге. Затем оформите тестовый заказ на сайте и проверьте его появление в СБИС Retail. Если данные совпадают — интеграция работает корректно.
- v1.2.1210.06.2026
- Фикс: рекурсивный обход иерархии разделов в «enrichReserves()». 1.2.11 делал drill-down только верхнего уровня — если каталог СБИС иерархичный глубже 1 уровня, товары на 2+ уровне молча пропускались («matched=0»). Прецедент chromart.ru: после добавления товара в новую подпапку структура каталога СБИС перестроилась (ROOT ? 2 раздела ? подразделы ? товары), все 18 резервных позиций пропали из «stocks.xml». Теперь BFS-обход по очереди: parseFlat() выдёргивает строки «ТипЗаписи=Номенклатура», оставшиеся «Раздел» кладутся в очередь как «depth+1». Защита от циклов через «visited», ограничение глубины «max_depth=5». В лог пишется каждая ступень: «drill <DBId> d=<depth> rows=<n> matched=<k> sub=<m>».
- Затронут файл: «src/lib/stocks.php» («enrichReserves()» — добавлен BFS через очередь вместо одного прохода).
- v1.2.1110.06.2026
- Фикс: резервы через «ReserveBalancesReport.GetData» (UI-отчёт «Остатки в резерве») вместо «ДвиженияПоРезервам.ПолучитьДанные». До 1.2.10 — поштучный rpc на каждый id товара. СБИС на каталоге >100 товаров включал rate-limit, блокировал метод на 86400 сек (саппорт подтвердил лимит: 60 запросов/мин). Новый метод одной prefetch-сессией охватывает весь каталог: INIT (получаем «PrefetchSessionId») ? READ корня (список разделов) ? drill-down по каждому разделу (плоский список товаров). На каталоге 200 товаров укладываемся в ~1 сек, никакого rate-limit. Контракт «enrichReserves($rows)» сохранён.
- Фикс: кракозябры в селекте «Тип выгрузки» расписания — удалён hardcoded русский в cp1251 PHP. Тип расписания «reserves» (отдельный канал через «runReserves()») выпилен полностью: резервы теперь обогащают «stocks.xml» напрямую в «WintraSbisStocks::run()», отдельное расписание не нужно. Удалены: «WintraSbisStocks::runReserves()», обработчик «type=reserves» в «WintraSbisSchedule::runById», опция «reserve_doc_type» (поле «Где хранятся резервы» — стало не нужно, новый метод RBR отдаёт резервы независимо от типа документа).
- Защита от rate-limit при обогащении «<external_code>». «Nomenclature.NomenclatureRead» массив id не принимает, дёрганье поштучное. Default throttle 1100мс между rpc (?54 req/min, ниже лимита 60). Адаптивный backoff при ошибках «слишком часто» / «не найден или недоступен». Прогресс-маркеры в «/upload/sbis/stocks-debug.log» каждые 50 товаров. Throttle настраивается опцией «enrich_ext_sleep_ms» (default 1100).
- Чекбокс «Получать внешние коды маркетплейса» в настройках. На каталоге 200 товаров обогащение занимает ~3.7 мин (60 req/min лимит). Не всем клиентам этот код нужен — теперь явная opt-in галка «enrich_ext_codes_enabled». По умолчанию выключена ? запросы вообще не идут.
- Файловый отладочный лог «/upload/sbis/stocks-debug.log» (а не «CEventLog»). Многие клиентские сайты держат «log_filename = null» в «.settings.php», «AddMessage2Log» тихо игнорирует. Свой файловый лог гарантирует диагностику. Ротация при >500KB.
- Затронутые файлы: «lib/stocks.php», «lib/nomenclature.php», «lib/schedule.php», «lang/ru/lib/stocks.php», «install/admin/sbis_schedules.php», «install/admin/sbis_settings.php», «install/version.php».
- v1.2.1008.06.2026
- Фикс: кракозябры в UI модуля на UTF-8-сайтах клиента. В 1.2.9 lang-файлы конвертились в cp1251 при сборке вместе с PHP-кодом. На UTF-8 клиентском сайте Bitrix отдавал cp1251-байты в HTML без конвертации ? русские строки в админке кракозябры. Lang-файлы теперь остаются UTF-8 в архиве — Bitrix «Loc::loadLanguageFile» сам конвертит под LANG_CHARSET сайта. PHP-код (lib/install/admin) по-прежнему cp1251 (требование Marketplace). Подтверждено прецедентом на wintramedia.ru.
- v1.2.908.06.2026
- Фикс: резерв в «stocks.xml» теперь приходит на UTF-8-сайтах клиентов. Корень: hard-coded русские строки в коде модуля («'СБИС.Аутентифицировать'», «'ДвиженияПоРезервам.ПолучитьДанные'», «'ФильтрНоменклатура'», имена полей фильтра/навигации, имена колонок ответа). При публикации модуля файлы переводятся в Windows-1251 (требование Marketplace), и на UTF-8-сайте «json_encode» ломает такие строки ? СБИС видит пустое тело ? «Parse error: document is empty». Все runtime-литералы вынесены в «lang/ru/<тот же путь>.php» через «Loc::loadMessages» + «Loc::getMessage». Bitrix автоматически отдаёт строку в кодировке текущего сайта (cp1251 на cp1251, UTF-8 на UTF-8) — работает в обе стороны.
- Затронуты файлы: «lib/auth.php», «lib/stocks.php», «lib/nomenclature.php», «lib/bitrix24.php», «lib/orders.php», «lib/schedule.php», «lib/menu-helper.php», «lib/trial-notice.php», «ajax/get_marketplace_connections.php», «install/admin/sbis_ajax.php», «install/admin/sbis_schedules.php», «install/admin/sbis_help.php», «install/admin/sbis_settings.php» + соответствующие lang/ru/<path>.php.
- Также удалены дубли inline auth-кода в «ajax/get_marketplace_connections.php» и «install/admin/sbis_ajax.php» (case «marketplace_connections») — оба теперь используют единый «WintraSbisAuth::sabySessionAuth()» / «sabyRpc()».
- v1.2.808.06.2026
- Технический релиз: переподписка delta-update с правильной структурой архива. В 1.2.7 по ошибке попала вся папка «install/» + «lang/*/install/» (намеренное исключение в «mp-build.php», противоречившее правилу Marketplace «только изменённые файлы»). Исключение снято. Архив 1.2.8 содержит ровно «lib/stocks.php» + «install/version.php» + «updater.php» + «description.ru».
- Без функциональных изменений сверх 1.2.7 (фикс хардкода «[170]» в «ДвиженияПоРезервам.ПолучитьДанные» уже в коде).
- v1.2.708.06.2026
- Убран хардкод «ФильтрКатегорияТовара = [170]» в запросе «ДвиженияПоРезервам.ПолучитьДанные» («src/lib/stocks.php» — «runReserves()» и «enrichReserves()»). Это был chromart-специфичный id категории «Товары», на других сайтах СБИС метод молча возвращал пустоту ? в «stocks.xml» всегда «reserve=0», без ошибок в логе. Теперь фильтр по категории пуст — резерв подтягивается по любой номенклатуре. Прецедент: wintramedia.ru, товар id=195, резерв в счёте не отображался в выгрузке.
- v1.2.608.06.2026Что в версии 1.2.6:
- Возвращена кнопка «Загрузить» рядом с полем «Подключение сайта» в настройках модуля. Подгружает список маркетплейс-подключений SABY по логину/паролю.
- Возвращён двухшаговый диалог удаления модуля с выбором «Сохранить настройки» / «Удалить всё».
- Полное удаление настроек теперь действительно очищает все опции модуля и сбрасывает кэш Битрикса.
Обновление рекомендуется всем, кто пользуется блоком «Для получения резервов и внешних кодов» или планирует переустановку модуля.
Нужна помощь с установкой?
Напишите нам — поможем установить и настроить модуль на вашем сайте.














