Інтеграція 1С-Бітрікс із терміналами збору даних (ТСД)

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Інтеграція 1С-Бітрікс із терміналами збору даних (ТСД)
Середня
~1-2 тижні
Часті питання

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

Етапи розробки

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

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Інтеграція 1С-Бітрікс із терміналами збору даних (ТЗД)

ТЗД — це ручний сканер із вбудованим комп'ютером під Android або Windows CE/Mobile, який складські співробітники використовують для приймання, інвентаризації, комплектації замовлень і переміщення товарів. Проблема без інтеграції з 1С-Бітрікс: співробітник сканує штрих-коди на ТЗД, дані залишаються на пристрої, потім хтось вручну переносить їх у систему. Затримка, помилки введення, розбіжності залишків.

Архітектура взаємодії

ТЗД не звертається безпосередньо до БД 1С-Бітрікс — це порушення безпеки і технічно нереалізовано в більшості випадків. Правильна архітектура: ТЗД ↔ REST API на стороні 1С-Бітрікс ↔ модуль catalog / sale.

На стороні 1С-Бітрікс реалізуємо набір API-ендпоінтів, ТЗД працює з ними по Wi-Fi складу. Для офлайн-роботи ТЗД зберігає завдання локально і синхронізується при появі з'єднання.

REST API для ТЗД

Створюємо контролер /api/tsd/v1/ з методами:

Отримання завдання на комплектацію:

GET /api/tsd/v1/tasks/{task_id}
Authorization: Bearer {token}

Відповідь містить список позицій замовлення: product_id, barcode, name, qty_required, location (місце на складі з властивості товару WAREHOUSE_LOCATION).

Підтвердження сканування позиції:

POST /api/tsd/v1/tasks/{task_id}/scan
{
  "barcode": "4601234567890",
  "qty_scanned": 1,
  "location": "A-02-05"
}

Контролер перевіряє штрих-код через \Bitrix\Catalog\ProductTable (поле BARCODE або пов'язана таблиця b_catalog_product_barcode), знаходить відповідну позицію завдання, оновлює лічильник.

Завершення завдання:

POST /api/tsd/v1/tasks/{task_id}/complete

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

Інвентаризація через ТЗД

Для інвентаризації створюємо завдання типу inventory:

class TsdInventoryTask
{
    public function create(int $warehouseId, array $productIds = []): array
    {
        // Створюємо запис у bl_tsd_inventory_task
        $taskId = InventoryTaskTable::add([
            'WAREHOUSE_ID' => $warehouseId,
            'STATUS'       => 'pending',
            'CREATED_BY'   => $GLOBALS['USER']->GetID(),
        ])->getId();

        // Завантажуємо очікувані залишки з b_catalog_store_product
        $expected = \Bitrix\Catalog\StoreProductTable::getList([
            'filter' => ['STORE_ID' => $warehouseId],
            'select' => ['PRODUCT_ID', 'AMOUNT'],
        ]);

        while ($row = $expected->fetch()) {
            InventoryItemTable::add([
                'TASK_ID'    => $taskId,
                'PRODUCT_ID' => $row['PRODUCT_ID'],
                'QTY_SYSTEM' => $row['AMOUNT'],
                'QTY_ACTUAL' => null, // заповнить ТЗД
            ]);
        }
        return ['task_id' => $taskId];
    }
}

ТЗД завантажує завдання, співробітник сканує штрих-коди і вводить кількість. API приймає результати по одній позиції. Після завершення — звіт про розбіжності (qty_system vs qty_actual) доступний в адміністративній частині.

Приймання товару через ТЗД

При прийманні постачання співробітник сканує кожну одиницю. API-обробник /api/tsd/v1/receipt/scan зіставляє штрих-код із позицією постачання (через таблицю постачальників b_catalog_docs_element або кастомну таблицю закупівель) і збільшує лічильник прийнятих одиниць.

По завершенні приймання автоматично:

  • Оновлюються залишки в b_catalog_store_product
  • Створюється документ приходу через \Bitrix\Catalog\Document\Store API
  • При розбіжності із замовленням — створюється завдання менеджеру в CRM

Авторизація ТЗД

Кожен ТЗД отримує при налаштуванні персональний API-токен (bl_tsd_tokens). Токен жорстко прив'язаний до warehouse_id — пристрій не може бачити завдання іншого складу. Токени не мають строку дії, але можуть бути відкликані через інтерфейс адміністратора.

Популярні ТЗД і сумісність

Пристрій ОС Протокол Статус
Honeywell CK65 Android 8+ REST/JSON Повна підтримка
Zebra TC52/TC57 Android 8+ REST/JSON Повна підтримка
Urovo DT50 Android REST/JSON Повна підтримка
Datalogic Memor 20 Android REST/JSON Повна підтримка
Motorola MC9200 Windows CE 7 REST через HTTPPOST Обмежена

Для пристроїв Windows CE REST/JSON реалізується через нативні HTTP-бібліотеки; рекомендуємо обмежити функціональність лише комплектацією замовлень.

Терміни

Етап Термін
Проєктування API і схеми БД 2 дні
API-контролери (комплектація, приймання, інвентаризація) 5–6 днів
Адміністративний інтерфейс управління завданнями 3 дні
Тестування з реальним ТЗД 2–3 дні
Разом 12–15 днів