Каталог решений

Покупка продления купона

Продолжительность:
Общая сумма:
0 руб.
Ваш запрос успешно отправлен!

Я согласен с условиями активации продлений
Продлить
Продолжить покупки

Интеграция со СБИС (Retail)

# Интеграция со СБИС (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>

Интеграция со СБИС (Retail)

Интеграция со СБИС (Retail)

Купить: 14 900 руб.
Попробовать (7 дней)
Купить продление
Скриншоты
Описание

Технические данные

Опубликовано:
08.05.2026
Обновлено:
10.06.2026
Версия:
1.2.12
Установлено:
Менее 50 раз
Подходящие редакции:
«Первый сайт», «Старт», «Стандарт», «Малый бизнес», «Бизнес»
Адаптивность:
Нет
Поддержка Композита:
Нет
Совместимо с Сайты24
Нет

Пользовательское соглашение

Описание

# Интеграция со СБИС (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>
Отзывы (0)
Обсуждения (0)
Здесь пока никто ничего не написал. Будьте первым.
Что нового
1.2.12 (10.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 через очередь вместо одного прохода).
1.2.11 (10.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».
1.2.10 (08.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.
1.2.9 (08.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()».
1.2.8 (08.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]» в «ДвиженияПоРезервам.ПолучитьДанные» уже в коде).
1.2.7 (08.06.2026)
  • Убран хардкод «ФильтрКатегорияТовара = [170]» в запросе «ДвиженияПоРезервам.ПолучитьДанные» («src/lib/stocks.php» — «runReserves()» и «enrichReserves()»). Это был chromart-специфичный id категории «Товары», на других сайтах СБИС метод молча возвращал пустоту ? в «stocks.xml» всегда «reserve=0», без ошибок в логе. Теперь фильтр по категории пуст — резерв подтягивается по любой номенклатуре. Прецедент: wintramedia.ru, товар id=195, резерв в счёте не отображался в выгрузке.
1.2.6 (08.06.2026) Что в версии 1.2.6:
  • Возвращена кнопка «Загрузить» рядом с полем «Подключение сайта» в настройках модуля. Подгружает список маркетплейс-подключений SABY по логину/паролю.
  • Возвращён двухшаговый диалог удаления модуля с выбором «Сохранить настройки» / «Удалить всё».
  • Полное удаление настроек теперь действительно очищает все опции модуля и сбрасывает кэш Битрикса.

Обновление рекомендуется всем, кто пользуется блоком «Для получения резервов и внешних кодов» или планирует переустановку модуля.
Установка
Штатным способом через Маркетплейс. После установки в левом меню админки появится пункт **«Винтра.Хаб»** — там модуль. Дальнейшие инструкции — внутри модуля, раздел **«Инструкции»**.
Поддержка

Разработчик: Винтра Сайт: https://wintramedia.ru Email: support@wintramedia.ru

Перед обращением в поддержку, пожалуйста, подготовьте:

  • Версию модуля (указана в /bitrix/admin/partner_modules.php → установленные)
  • Версию PHP (phpinfo() или в Bitrix: Настройки → Производительность)
  • Текст ошибки полностью (скопируйте из лога Bitrix: /bitrix/admin/event_log.php)
  • Описание шагов для воспроизведения проблемы

Время ответа на обращения: 1–3 рабочих дня.

Другие решения разработчика

Решение добавлено в корзину

Перейдите в корзину и оформите заказ или продолжите покупки
Перейти в корзину
Продолжить покупки