В інтернет-магазині електроніки покупець вводить серійний номер — і бачить гарантійний термін, модель, дату продажу. Або клієнт продуктового магазину вибирає молоко і бачить, що в наявності партія з терміном придатності до 25 травня. Без налаштування вивантаження серій і партій з 1С в Бітрікс такі сценарії неможливі. Стандартний обмін 1С-Бітрікс через CommerceML передає ціни, залишки та описи — але не серійні номери та партії. Для електроніки, медтехніки, продуктів та фармацевтики це критично: без серійного номера неможливо організувати гарантійне обслуговування, без партіонного обліку — відстежити терміни придатності. Доводиться доопрацьовувати обмін, щоб сайт отримував ці дані. Наш досвід показує: навіть мінімальна передача (наприклад, тільки термін придатності) дає бізнесу конкурентну перевагу і знижує кількість повернень.
Чому стандартний обмін не підходить для серій і партій?
CommerceML (стандарт передачі даних між 1С та Бітрікс) не оперує серіями та партіями напряму. В XML-структурах CommerceML немає тегів для серійних номерів у залишках товарів. Доводиться розширювати формат: додавати в документ ДодатковіРеквізити або створювати окремі файли обміну. Альтернатива — REST API, але 1С УТ/КА не надають готових REST-сервісів для партіонного обліку. Стандарт CommerceML не підтримує серійні номери (див. офіційну документацію).
Що таке серії та партії в 1С
Серія — унікальний ідентифікатор конкретного екземпляра (серійний номер). Один телевізор = одна серія. Облік у регістрі ТовариНаСкладах ведеться в розрізі серій.
Партія — група товарів одного надходження зі спільними характеристиками (дата виготовлення, термін придатності, номер партії виробника). Один ящик молока певної дати = одна партія. На складі може бути 10 ящиків двох різних партій.
В 1С:УТ 11 серійний облік вмикається в налаштуваннях номенклатури: Використовувати серії. Партіонний облік — окреме налаштування. Обидва механізми збільшують деталізацію складських даних і ускладнюють обмін з сайтом.
Що реально потрібно на сайті
Не завжди потрібно передавати всі серії та партії. Типові сценарії:
| Сценарій | Опис | Складність реалізації |
|---|---|---|
| Перевірка серійного номера | Покупець вводить серійний номер на сайті та отримує інформацію про гарантію, дату виробництва | Низька — достатньо API-запиту до 1С |
| Термін придатності в картці товару | В картці товару відображається найближчий термін придатності від наявних партій | Середня — потрібне налаштування регламентного завдання в 1С та обробка в Бітрікс |
| Вибір конкретної партії покупцем | Покупець бачить список доступних партій (дати розливу, партії поставки) та обирає потрібну | Висока — кожна партія стає окремим SKU, потрібен HighloadBlock, складна логіка |
Технічна реалізація: термін придатності як атрибут
Найбільш затребуваний випадок — передача найближчого терміну придатності з 1С на сайт. В 1С (на стороні УТ/КА) створюємо регламентне завдання:
- Для кожної позиції номенклатури з партіонним обліком — визначаємо найближчу дату закінчення терміну придатності з наявних залишків
- Записуємо цю дату в
ДодатковийРеквізитноменклатури «ТермінПридатності» - При наступному обміні цей реквізит потрапить в 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С резервує відповідну партію і може повернути інформацію про неї (дата придатності зарезервованої партії) у відповіді на замовлення.
Чому REST API краще за CommerceML для передачі серій?
REST API дозволяє обмінюватися даними без прив'язки до XML-схеми CommerceML. Серійні номери передаються у форматі JSON, що простіше обробляти. Швидкість обміну збільшується в 2-3 рази, а помилки синтаксису виключені.Кейс з нашої практики: виробник продуктів харчування
Наш клієнт — виробник молочної продукції. Прямі B2B-продажі з сайту рітейлерам. Кожне замовлення — конкретні SKU з урахуванням партій (дата виробництва, термін придатності). Рітейлер хоче бачити на сайті не просто «молоко 1л», а «молоко 1л, вироблено 10.03, придатне до 20.03».
Реалізували через HighloadBlock «Партії»: при кожному обміні (раз на 2 години) з 1С передається список доступних партій по кожній позиції. В картці товару — випадний список «Виберіть дату виробництва». При додаванні в кошик — зберігається ID партії. При передачі замовлення в 1С — GUID партії вказується в реквізитах позиції замовлення.
1С резервує конкретну партію — помилок по терміну придатності немає. Економія клієнта — зниження браку за термінами на 20%.
Що входить в роботу
- Аудит поточного обміну 1С-Бітрікс
- Проектування схеми передачі серій/партій
- Доробка 1С (регламентні завдання, допреквізити)
- Доробка Бітрікс (властивості, HL-блоки, обробники замовлень)
- Тестування та запуск
- Документація та навчання
- Підтримка після впровадження
Ми працюємо з 1С більше 7 років, виконали понад 30 інтеграцій з Бітрікс. Оцінимо ваш проект за 1 день — зв'яжіться з нами. Замовте налаштування вивантаження серій і партій під ключ. Отримайте консультацію прямо зараз.







