Выгрузка остатков по складам: настройка обмена 1С:УТ ↔ Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Выгрузка остатков по складам: настройка обмена 1С:УТ ↔ Битрикс
Простой
~1 день
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1361
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    948
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    694
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    833
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    732
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1075

Неактуальные остатки — прямая угроза выручке. Если в 1С:УТ осталось 5 единиц, а на сайте отображается 0, клиент уходит к конкуренту. Если на сайте 5, а реально 0 — вы получаете возврат, порчу репутации и ручную отмену. Для среднего интернет-магазина потери от таких расхождений достигают 200 000 ₽ в месяц. Мы настраиваем выгрузку остатков под ключ с гарантией точности до минуты. Оценим ваш проект за один день — свяжитесь с нами.

Проблемы, которые решаем

Разрыв между складом и сайтом. Из-за задержек обмена или неверной фильтрации остаток на сайте расходится с реальным. Устраняем настройкой узла обмена и cron-задач.

Сложность мультискладового учёта. При нескольких складах (основной, транзитный, брак) нужно выгружать только отгрузочные остатки. Иначе покупатель видит товар, который физически не может получить.

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

Как остатки хранятся в УТ и передаются в Битрикс

В 1С:УТ 11 остатки хранятся в регистре накопления ТоварыНаСкладах. Остаток = приход − расход по каждому складу для каждой номенклатуры (и характеристики, если используется характеристический учёт).

В CommerceML 2.0 остатки передаются в файле предложений (offers.xml) в теге <Остатки>:

<Предложение>
  <Ид>товар-guid#характеристика-guid</Ид>
  <Остатки>
    <Остаток>
      <ИдСклада>склад-guid</ИдСклада>
      <Количество>15</Количество>
    </Остаток>
    <Остаток>
      <ИдСклада>склад2-guid</ИдСклада>
      <Количество>3</Количество>
    </Остаток>
  </Остатки>
</Предложение>

На стороне Битрикс каждый склад из УТ должен быть создан в разделе Торговый каталог → Склады с совпадающим XML_ID (GUID склада из УТ). Битрикс суммирует остатки по всем складам или показывает по каждому отдельно — в зависимости от настроек.

Почему важна фильтрация складов?

Часто в УТ есть несколько складов: основной склад, производственный, брак, транзитный. На сайт нужен только остаток со склада отгрузки — не суммарный по всем.

В настройках узла обмена УТ выбираем конкретные склады для выгрузки. Это критически важно: если передать суммарный остаток включая «Брак» или «В пути» — покупатель увидит наличие товара, которого фактически нет в состоянии отгрузки.

Свободный остаток vs. физический. В УТ можно настроить выгрузку свободного остатка (физический минус зарезервированный). Это правильная практика: если 10 штук зарезервировано под существующие заказы, сайт должен показывать реально доступное количество. Настройка в узле обмена: параметр «Остатки: учитывать резервы» — включить.

Как настроить мультискладовой учёт на сайте?

Если у магазина несколько складов (разные города, несколько точек выдачи), покупатель может хотеть видеть наличие в каждом конкретном городе. Это требует передачи остатков в разрезе складов — не суммарного.

В Битрикс для этого нужно:

  1. Создать склады в торговом каталоге (соответствие GUID)
  2. В компоненте каталога включить отображение остатков по складам
  3. При оформлении заказа — предлагать самовывоз с того склада, где есть товар

XML-обмен поддерживает эту структуру нативно.

Частота обмена остатками

Рекомендуемые интервалы обмена:

Тип бизнеса Рекомендуемая частота Комментарий
Большой интернет-магазин (FMCG) 5–10 мин Высокая частота изменений
Средний магазин 15–30 мин Баланс нагрузка/актуальность
Магазин с медленным оборотом 60 мин Мебель, крупная техника
Оптовый склад 30 мин + ручная синхронизация при бронировании

Реализация частого обмена остатками — через cron на сервере, а не через «автообмен» в интерфейсе Битрикс (он менее надёжен). Скрипт запуска обмена:

# Запуск обмена остатками каждые 15 минут
*/15 * * * * www-data /usr/bin/php /var/www/html/bitrix/modules/main/tools/cron_events.php

Или через прямой вызов обработчика обмена с параметром type=sale (только заказы) или type=catalog (каталог + остатки).

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

Когда покупатель оформляет заказ на Битрикс, нужно решить: резервировать ли товар немедленно (до оплаты) или только после подтверждения оплаты?

Немедленное резервирование: товар резервируется в Битрикс при создании заказа (статус «ожидает оплаты»). При передаче заказа в УТ — создаётся резерв в регистре ТоварыВРезервеНаСкладах. Следующий обмен остатками вернёт актуальный свободный остаток уже с учётом резерва.

Резервирование после оплаты: риск продать «воздух» при параллельных заказах, но меньше «висячих» резервов от незавершённых оплат.

Для большинства B2C магазинов — немедленное резервирование при создании заказа с автоматической отменой резерва через N часов, если оплата не поступила.

Кейс: склад с высокой оборачиваемостью

Из нашей практики: оптово-розничный склад электроники — 15 тыс. позиций, пиковые дни — до 200 заказов в час. Проблема: при обмене остатками раз в 30 минут успевали оформиться 5–10 заказов на один товар, которого оставалось 1–2 штуки.

Решение: двухуровневая система. Обмен остатками — каждые 5 минут. Дополнительно — прямой запрос к HTTP-сервису УТ при добавлении товара в корзину: получаем актуальный остаток в реальном времени и показываем пользователю. Полный обмен (с номенклатурой) — раз в ночь.

HTTP-сервис УТ возвращает JSON с остатком за 150–300 мс. На высоконагруженных страницах результат кешируется на 60 секунд. Экономия времени администратора — до 40 часов в месяц, которые раньше уходили на ручную выверку.

Что входит в настройку

  • Аудит текущего обмена (ошибки, несоответствия складов)
  • Настройка узла обмена в 1С:УТ (фильтр складов, учёт резервов)
  • Создание складов в Битрикс с корректным GUID
  • Настройка cron-задач с подобранной частотой
  • Разработка HTTP-сервиса реального времени (опционально)
  • Тестирование на 10–20 тестовых заказах
  • Документация и обучение вашего администратора

Пошаговый план настройки

  1. Анализ текущей схемы — выявляем все склады в УТ и их GUID.
  2. Фильтрация — исключаем неотгрузочные склады.
  3. Настройка узла обмена — включаем учёт резервов.
  4. Создание складов в Битрикс — привязка по XML_ID.
  5. Выбор частоты — от 5 до 60 минут в зависимости от бизнеса.
  6. Реализация cron — ставим задачу на сервере.
  7. Опционально: HTTP-сервис — для запросов в реальном времени.
  8. Тестирование — проверяем на тестовых заказах.

Сравнение подходов

Подход Время от изменения до отображения Точность
Стандартный обмен (каждые 30 мин) до 30 минут Высокая (с задержкой)
Частый обмен (каждые 5 мин) до 5 минут Высокая
HTTP-сервис в реальном времени 150–300 мс Абсолютная

HTTP-сервис в реальном времени обрабатывает запрос в 600 раз быстрее стандартного обмена (300 мс против 30 минут). Ручная выгрузка остатков через Excel занимает в среднем 2–3 часа в день — мы автоматизируем этот процесс, сокращая время до нуля.

Мы работаем с Битрикс и 1С более 5 лет, выполнили свыше 50 интеграций. Гарантируем, что после настройки остатки на вашем сайте будут актуальны с точностью до минуты. Получите консультацию — свяжитесь с нами, и мы оценим ваш проект за один день.

CommerceML: почему стандартный обмен — и спасение, и ловушка

Стандартный обмен через CommerceML 2.0 на типовой «Управлении торговлей» или «Комплексной автоматизации» заводится за день-два. Товары, цены, остатки, заказы — всё через XML-файлы по расписанию. Для магазина на 3 000 позиций с парой обновлений в сутки этого хватает с запасом. Но как только каталог перерастает 30 000 SKU, начинаются проблемы: интеграция 1С с Битрикс на больших объёмах требует нестандартных решений.

Почему CommerceML тормозит на каталогах свыше 100 000 товаров?

bitrix_1c_exchange.php генерирует XML на стороне Битрикса, 1С забирает и парсит. На больших каталогах парсер активно пишет во временную таблицу b_xml_tree — MySQL может встать колом. Мы видели проект, где стандартный обмен 180 000 товаров занимал 6 часов и полностью блокировал сервер: ни админка, ни фронт не открывались. Решение — инкрементальный обмен. В настройках узла обмена на стороне 1С ставим «Выгружать только изменённые» и разбиваем выгрузку на пакеты по 500–1000 элементов. На стороне Битрикса — кастомный обработчик, который не пересоздаёт b_xml_tree каждый раз, а работает через CIBlockXMLFile::ReadXMLToDatabase() с контролем порций. Каталог в 200 000 SKU обновляется за 8–12 минут.

Ещё один подводный камень — EXTERNAL_ID. При повторном импорте Битрикс сопоставляет элементы инфоблоков по внешнему коду. Если в 1С товар удалён и создан заново с новым GUID, на сайте появляется дубль — со старыми отзывами на одной карточке и нулевыми на другой. Лечится жёсткой привязкой по артикулу через кастомный обработчик события OnBeforeIBlockElementAdd.

Как избежать дублей при повторном импорте?

Привязываем товары не по GUID, а по артикулу. Проверка на уникальность выполняется до записи в инфоблок — дубликаты исключаются даже после пересоздания номенклатуры в 1С. На одном проекте с 50 000 товаров такая схема предотвратила появление 300 дублей в месяц и сэкономила контент-менеджерам около 20 часов ручной чистки.

Кастомные конфигурации 1С: когда CommerceML пасует

«У нас типовая конфигурация» — говорит каждый второй клиент, а потом мы открываем базу и видим 200 кастомных обработок, переименованные реквизиты и самописные документы реализации. CommerceML работает с фиксированной структурой XML. Если в 1С изменили состав реквизитов номенклатуры или добавили нестандартный документ — обмен молча пропускает эти данные. Или падает с непонятной ошибкой в журнале регистрации 1С, а в Битрикс ничего не пишется.

В таких случаях делаем кастомную выгрузку. На стороне 1С пишем обработку, которая формирует JSON (парсить быстрее, отлаживать проще) и отправляет через REST API Битрикса. Полный контроль: какие поля берём, как трансформируем, что делаем при конфликте. Для тяжёлых случаев — D7 API с прямой работой через \Bitrix\Catalog\ProductTable и \Bitrix\Sale\Order.

Критерий CommerceML (стандарт) Кастомный REST (JSON)
Скорость на 100 000+ SKU Низкая (полный XML) Высокая (инкрементальный JSON)
Гибкость схемы Фиксированная Произвольная
Возможность расширения Ограничена Без ограничений
Простота отладки Журнал регистрации 1С Логи HTTP-запросов, Postman

Когда нужен кастомный REST вместо CommerceML?

Кастомный REST оправдан при:

  • нестандартных реквизитах номенклатуры;
  • множественных типах цен (розница, опт, дилерская, акционная, региональная, валютная) — стандартный обмен передаёт только один тип;
  • мультискладе с разными остатками и необходимостью выбора склада на сайте.

Цены, остатки и мультисклад

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

Мультисклад добавляет ещё один слой: товар есть на складе в Москве, нет в Питере, и «под заказ» в Новосибирске. На сайте нужно показать наличие по каждой точке, подключить выбор пункта самовывоза и рассчитать доставку от ближайшего склада, где товар физически есть. Стандартный модуль складского учёта Битрикс (catalog.store) справляется с отображением, но логику «откуда отгружать» пишем отдельно. Для одного производственного холдинга мы реализовали кастомный агрегатор остатков, который за 2 секунды рассчитывал баланс по 8 складам — это сократило количество ошибок отгрузки на 80%.

Заказы и документооборот

Заказ с сайта улетает в 1С, формируется реализация, товар резервируется. Статусы возвращаются обратно. Главный нюанс — частичная отгрузка: клиент заказал 5 позиций, 3 есть на складе, 2 придут через неделю. 1С формирует два документа реализации. Битрикс из коробки не умеет разбивать один заказ на несколько отгрузок — дорабатываем обработчик OnSaleOrderSaved, который создаёт дочерние заказы и синхронизирует статусы по каждому.

Документы в личном кабинете — счета, акты, накладные из 1С — отдаём через REST, PDF генерируется на стороне 1С и кэшируется на CDN. Покупатель скачивает не из 1С напрямую (это убило бы сервер), а из кэша.

Рекомендация CommerceML: пакетный импорт с контролем порций снижает нагрузку на MySQL и исключает блокировки (источник: Wikipedia).

Мониторинг: не «настроил и забыл»

Обмен может сломаться тихо: скрипт отработал, ошибок в логе нет, но 200 товаров не обновились из-за невалидного UTF-8 в названии. Или 1С поменяла формат даты в очередном обновлении — все цены пришли нулевыми.

Минимальный набор, который ставим на каждом проекте:

  • Алерт в Telegram, если время обмена выросло в 3+ раза от среднего.
  • Проверка расхождения остатков: скрипт сравнивает b_catalog_product.QUANTITY с тем, что отдаёт 1С, и оповещает при дельте больше 5 %.
  • Дашборд: последняя синхронизация, количество обработанных позиций, очередь, ошибки.

Для проектов с высокой нагрузкой добавляем асинхронные очереди на Redis или RabbitMQ. Обмен не блокирует веб-сервер, данные не теряются при кратковременном падении 1С. На одном интернет-магазине с оборотами 2 млн заказов в год мы внедрили такую схему — время восстановления после сбоев сократилось с 3 часов до 10 минут.

Связка с Битрикс24 для автоматизации документооборота

Если кроме сайта есть корпоративный портал на Битрикс24 — связываем и его. Контрагенты из CRM летят в 1С, счета из 1С появляются в карточке сделки. Менеджер видит дебиторку и взаиморасчёты, не переключаясь между окнами. Закрыли сделку — документы сформировались сами.

Оплата поступила в 1С → логист получает задачу на отгрузку в Битрикс24. Товар отгружен → менеджер видит уведомление. Автоматические задачи по событиям из 1С — через вебхуки Битрикс24 REST API. Такая связка сокращает ручной ввод на 70% и исключает забытые отгрузки.

Как мы настраиваем интеграцию: пошаговый процесс

  1. Аудит конфигурации 1С. Смотрим структуру справочников, документов, реквизитов. Выявляем кастомные доработки. Оцениваем объём данных (количество SKU, заказов, складов).
  2. Проектирование схемы обмена. Согласовываем набор данных: товары, цены, остатки, заказы, документы. Определяем интервал синхронизации и механизм — CommerceML или кастомный REST.
  3. Настройка стандартного обмена. Настраиваем CommerceML, пакетный режим, привязку по артикулу. Проверяем корректность передачи данных на тестовом каталоге.
  4. Расширенная интеграция. Для сложных конфигураций пишем кастомные обработчики на стороне 1С и Битрикса. Подключаем мультисклад, множественные цены, частичную отгрузку.
  5. Мониторинг и гарантия. Устанавливаем алерты, дашборд, документацию. Обучаем операторов. После запуска — гарантийная поддержка.
Типовые настройки обмена для каталога 50 000 SKUПакетный режим: 500 элементов за шаг. Привязка по артикулу. Период синхронизации: каждые 15 минут. Используем агенты Битрикса с тегированным кэшированием. На стороне 1С — обработка формирования JSON вместо XML для ускорения.

Сроки и что входит в работу

Этап Описание Ориентировочный срок
Аналитика Аудит конфигурации 1С, структуры обмена, текущих проблем 1–2 дня
Проектирование схемы Согласование набора данных (товары, цены, заказы) и архитектуры 2–5 дней
Реализация стандартного обмена Настройка CommerceML, пакетного режима, привязки по артикулу 1–2 недели
Расширенная интеграция Кастомный REST, мультисклад, множественные цены, частичная отгрузка 2–4 недели
Полная кастомная связка 1С + сайт + Битрикс24, асинхронные очереди, мониторинг 1–2 месяца

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

Мы провели более 50 интеграций 1С для интернет-магазинов и производственных компаний. Средний опыт команды — 7 лет, у нас есть сертифицированные специалисты 1С-Битрикс. Наш опыт гарантирует, что обмен не сломается в первый же месяц и будет стабильно работать годами. Например, на проекте с каталогом 50 000 товаров автоматизация обмена сэкономила клиенту около 200 000 рублей в год на операционных затратах.

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