Настройка выгрузки серий и партий товаров из 1С в 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка выгрузки серий и партий товаров из 1С в 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • 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
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка выгрузки серий и партий товаров из 1С в 1С-Битрикс

Серийный и партионный учёт в 1С — это отдельный пласт функциональности, который в стандартный CommerceML практически не включён. Тем не менее ряд отраслей без этого не работает: электроника (серийные номера), медтехника, продукты питания (партии со сроком годности), фармацевтика. Данные о сериях нужны на сайте — хотя бы в урезанном виде.

Что такое серии и партии в 1С

Серия — уникальный идентификатор конкретного экземпляра товара (серийный номер). Один телевизор = одна серия. Учёт в регистре ТоварыНаСкладах ведётся в разрезе серий.

Партия — группа товаров одного прихода с общими характеристиками (дата изготовления, срок годности, номер партии производителя). Один ящик молока определённой даты = одна партия. На складе может быть 10 ящиков двух разных партий.

В 1С:УТ 11 серийный учёт включается в настройках номенклатуры: Использовать серии. Партионный учёт — отдельная настройка. Оба механизма увеличивают детализацию складских данных и усложняют обмен с сайтом.

Что реально нужно на сайте

Не всегда нужно передавать все серии и партии. Типичные сценарии:

Сценарий 1: Проверка серийного номера. Покупатель вводит серийный номер на сайте и узнаёт информацию о товаре (гарантия, дата производства). Для этого не нужна выгрузка серий в каталог — нужен API-запрос к 1С по конкретному серийному номеру.

Сценарий 2: Срок годности в карточке товара. Для продуктов питания или медтоваров — показывать на сайте ближайший срок годности имеющейся партии. Это уже выгрузка данных партии как атрибута товара.

Сценарий 3: Выбор партии покупателем. Редкий случай: покупатель видит доступные партии (например, разные даты розлива вина) и выбирает нужную. Это сложная реализация — каждая партия = отдельный SKU.

Техническая реализация: срок годности как атрибут

Наиболее востребованный случай — передача ближайшего срока годности из 1С на сайт.

В 1С (на стороне УТ/КА) создаём регламентное задание:

  1. Для каждой позиции номенклатуры с партионным учётом — определяем ближайшую дату окончания срока годности из имеющихся остатков
  2. Записываем эту дату в ДополнительныйРеквизит номенклатуры «СрокГодности»
  3. При следующем обмене этот реквизит попадёт в XML и обновит свойство в Битрикс

Альтернатива: прямой HTTP-запрос из Битрикс к сервису 1С при загрузке карточки товара. Но это создаёт зависимость скорости страницы от скорости 1С.

Серийные номера при заказе

Если покупатель заказывает товар с серийным учётом — при отгрузке из 1С к заказу привязывается конкретный серийный номер. Этот номер полезно передать обратно в Битрикс: в личном кабинете покупатель видит серийные номера купленных товаров — это удобно для гарантийного обслуживания.

Обратная передача серийных номеров: в CommerceML заказ при обновлении статуса может содержать расширенные данные. Добавляем в обработку обновления статуса в Битрикс логику сохранения серийных номеров из ДополнительныеРеквизиты документа.

// Обработчик обновления заказа из 1С
function onOrderStatusUpdate($arOrder, $arXML) {
    foreach ($arXML['ITEMS'] as $item) {
        if (!empty($item['SERIAL_NUMBERS'])) {
            saveSerialNumbers(
                $arOrder['ID'],
                $item['PRODUCT_ID'],
                $item['SERIAL_NUMBERS']
            );
        }
    }
}

Партионный учёт и резервирование

При оформлении заказа на сайте и передаче в 1С — нужно зарезервировать конкретную партию (особенно при коротком сроке годности). Стандартный механизм резервирования в 1С резервирует партию автоматически по алгоритму FEFO (First Expired First Out — сначала та, что раньше истечёт).

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

Кейс: производитель продуктов питания

Производитель молочной продукции: прямые B2B-продажи с сайта ритейлерам. Каждый заказ — конкретные SKU с учётом партий (дата производства, срок годности). Ритейлер хочет видеть на сайте не просто «молоко 1л», а «молоко 1л, произведено 10.03, годно до 20.03».

Реализовали через HighloadBlock «Партии»: при каждом обмене (раз в 2 часа) из 1С передаётся список доступных партий по каждой позиции. В карточке товара — выпадающий список «Выберите дату производства». При добавлении в корзину — сохраняется ID партии. При передаче заказа в 1С — GUID партии указывается в реквизитах позиции заказа.

1С резервирует конкретную партию — ошибок по сроку годности нет.