Інтеграція 1С-Бітрікс зі сканерами штрихкодів

Ручне введення штрихкодів під час збирання замовлень або інвентаризації сповільнює роботу та провокує помилки, що призводять до втрат часу і грошей. Ми налаштовуємо інтеграцію 1С-Бітрікс зі сканерами так, щоб система миттєво знаходила товар за кодом і коректно обробляла кожне сканування. Наша команда реалізує проєкт під ключ — від налаштування обладнання до навчання співробітників, забезпечуючи стабільну роботу складу з подальшою підтримкою.

Інтеграція 1С-Бітрікс зі сканерами штрихкодів

Інтеграція з 1ССередній~1-2 тижні
Часті запитання

Інтеграція 1С-Бітрікс зі сканерами штрихкодів

Уявіть: на складі менеджер сканує штрихкод коробки, а система не знаходить товар — штрихкод у базі є, але прив'язаний не до того продукту. Або сканер вводить код, але поле не у фокусі, і дані втрачаються. Ми стикалися з цим десятки разів за 10+ років досвіду інтеграцій. Рішення — правильно налаштувати обробку сканування на стороні Бітрікс, а не сам сканер. Наш досвід показує: 90% проблем вирішуються налаштуванням суфікса та фокусу.

Сканер штрихкоду — найпростіший периферійний пристрій: він емулює клавіатуру та вводить зчитаний код в активне поле введення. Проблема в іншому — що система робить з цим кодом: шукає товар, додає в замовлення, перевіряє позицію при збірці. Налаштування інтеграції — це передусім правильна обробка сканування на стороні Бітрікс, а не налаштування самого сканера. Ми гарантуємо, що після налаштування система працюватиме без збоїв.

Типи сканерів і способи підключення

Тип Підключення Емуляція клавіатури Застосування
USB HID USB Так Каса, приймання
Bluetooth HID Bluetooth Так Мобільна точка
COM-port RS-232 Ні, пряма робота з портом Legacy обладнання
2D-іміджер (Honeywell, Symbol) USB/BT Так QR + штрихкод
Вбудований в ТСД USB/WiFi Через API пристрою Склад

Для більшості завдань у Бітрікс: сканер з емуляцією клавіатури підключається без драйверів. Спеціального налаштування на стороні Бітрікс не потрібно — достатньо правильно обробляти введення у формі. Однак COM-порт вимагає прямої роботи з портом через API — це складніше, але наш сертифікований досвід дозволяє реалізувати це за 2 дні.

Як знайти товар за штрихкодом у Бітрікс?

Штрихкоди зберігаються в Бітрікс в таблиці b_catalog_product_barcode. Кожен товар може мати декілька штрихкодів (наприклад, різні упаковки: 1 шт і блок 12 шт з різними EAN).

public static function findByBarcode(string $barcode): ?array
{
    $result = \Bitrix\Catalog\EO_ProductBarcode_Collection::wakeUp(
        \Bitrix\Catalog\ProductBarcodeTable::getList([
            'filter' => ['=BARCODE' => $barcode],
            'select' => ['PRODUCT_ID', 'BARCODE'],
        ])
    );
    $row = $result->fetch();
    if (!$row) return null;

    // Загружаем данные товара из каталога
    $product = \CIBlockElement::GetByID($row['PRODUCT_ID'])->GetNext();

    return [
        'product_id' => $row['PRODUCT_ID'],
        'name' => $product['NAME'],
        'sku' => $product['PROPERTY_ARTICLE_VALUE'],
        'price' => \CCatalogProduct::GetOptimalPrice($row['PRODUCT_ID'])['PRICE']['PRICE'] ?? 0,
        'stock' => \CCatalogProduct::GetByID($row['PRODUCT_ID'])['QUANTITY'],
    ];
}

Якщо штрихкод не знайдено в b_catalog_product_barcode — шукаємо у властивості PROPERTY_BARCODE інфоблоку (деякі проекти зберігають штрихкод як властивість). Уніфікуємо через єдиний метод пошуку. Наш досвід показує, що 30% проектів зберігають штрихкоди лише у властивостях — це вдвічі повільніше, ніж таблиця barcode.

Додавання до кошика за штрихкодом

Компонент швидкого додавання товару для каси або B2B-розділу:

// Обработчик ввода в поле поиска
const barcodeInput = document.getElementById('barcode-input');
barcodeInput.addEventListener('keydown', (e) => {
  if (e.key === 'Enter') {
    const barcode = e.target.value.trim();
    if (!barcode) return;
    fetch('/api/catalog/by-barcode/', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'X-Bitrix-Csrf-Token': BX.bitrix_sessid()
      },
      body: JSON.stringify({barcode})
    })
    .then(r => r.json())
    .then(data => {
      if (data.error) {
        showError('Товар не найден: ' + barcode);
        return;
      }
      addToCart(data.product_id, 1);
      barcodeInput.value = '';
      barcodeInput.focus();
    });
  }
});

Ключовий момент: поле введення штрихкоду має завжди бути у фокусі. Для кас реалізуємо автофокус з setInterval — сканер вводить код у будь-який момент. Якщо цього не зробити, 80% сканувань будуть проігноровані. Пишіть — ми реалізуємо це під ключ за 7–9 днів.

Перевірка позиції при збірці замовлення

При комплектації замовлення на складі: менеджер відкриває замовлення в адміністративній панелі Бітрікс, сканує штрихкод кожної позиції. Система підсвічує знайдену стрічку в замовленні та стави прапорець «зібрано».

Кастомна сторінка в /bitrix/admin/order_assembly.php:

// AJAX-обработчик сканирования
if ($_REQUEST['action'] === 'scan_barcode') {
    $barcode = trim($_REQUEST['barcode']);
    $orderId = (int)$_REQUEST['order_id'];
    $product = BarcodeService::findByBarcode($barcode);
    if (!$product) {
        echo json_encode(['status' => 'not_found', 'barcode' => $barcode]);
        exit;
    }
    // Ищем товар в позициях заказа
    $order = \Bitrix\Sale\Order::load($orderId);
    $basket = $order->getBasket();
    foreach ($basket as $item) {
        if ($item->getProductId() === $product['product_id']) {
            // Обновляем счётчик собранных
            AssemblyProgressTable::increment($orderId, $product['product_id']);
            echo json_encode(['status' => 'ok', 'item_id' => $item->getId()]);
            exit;
        }
    }
    echo json_encode(['status' => 'not_in_order', 'product' => $product['name']]);
    exit;
}

Інвентаризація через USB-сканер

Для офісної інвентаризації без ТСД: спеціальна сторінка з таблицею, куди менеджер сканує штрихкоди з фіксованим підрахунком. Кожне сканування — AJAX-запит, який збільшує лічильник позиції. Наприкінці сесії — порівняння з залишками в b_catalog_store_product та експорт розбіжностей. Наше рішення дозволяє проводити інвентаризацію в 3 рази швидше, ніж ручний перерахунок.

Що робити, якщо сканер вводить зайві символи?

Деякі сканери за замовчуванням додають символи після штрихкоду (Tab, Enter + Carriage Return). Налаштування сканера зазвичай змінюються скануванням конфігураційного штрихкоду з мануалу виробника. Для Бітрікс рекомендуємо: суфікс = Enter, без префікса, без CR. Якщо символи не прибираються, перепрошуйте сканер з комплекту постачання.

Що входить в роботу

  • Розробка API пошуку товару за штрихкодом
  • Створення компонента швидкого додавання до кошика
  • Інтерфейс збірки замовлення зі сканером
  • Модуль інвентаризації зі звітами
  • Документація з налаштування сканерів та навчання співробітників
  • Підтримка 1 місяць після запуску

Терміни

Етап Термін
API пошуку товару за штрихкодом 1 день
Компонент швидкого додавання до кошика 1–2 дні
Інтерфейс збірки замовлення зі сканером 2–3 дні
Інвентаризаційний модуль 2 дні
Тестування з реальним сканером 1 день
Разом 7–9 днів

Замовте інтеграцію під ключ — ми оцінимо ваш проект за 1 день. Зв'яжіться з нами, щоб отримати консультацію. Гарантуємо якість та терміни.

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

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060
  • Розробка віджета онлайн-запису для медичного центру
    Розробка віджета онлайн-запису для медичного центру
    837
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    928
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    865
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1223