Налаштування кодів маркування Data Matrix на 1С-Бітрікс

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

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

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

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

  • 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

Налаштування кодів маркування Data Matrix на 1С-Bitrix

Код Data Matrix для маркування — це двовимірний штрих-код, який кодує ідентифікатор товарної одиниці (GTIN), серійний номер й криптозахисний елемент. На рівні Bitrix'у завдання зводиться до: отримати коди від постачальника або системи маркування, зберегти в БД, відобразити на етикетці при необхідності й списати при продажі.

Структура коду Data Matrix у системі маркування

Повний код маркування має вид: 01 + GTIN (14 символів) + 21 + серійний номер (до 20 символів) + криптохвіст. Приклад:

0104607086000058215t2&/u+K<K)O

Розшифрування: 01 — ідентифікатор застосування (Application Identifier) для GTIN, 21 — AI для серійного номера. Розбір коду у PHP:

function parseMarkingCode(string $code): array {
    // GS1 DataMatrix формат
    preg_match('/^01(\d{14})21(.{1,20})(.*)$/u', $code, $matches);
    return [
        'gtin' => $matches[1] ?? null,
        'serial' => $matches[2] ?? null,
        'crypto' => $matches[3] ?? null,
    ];
}

Крипто-хвіст містить нечитабельні символи групового розділювача (GS, ASCII 29). При зберіганні в MySQL упевніться, що колонка utf8mb4 й тип даних дозволяє такі символи — використовуйте VARBINARY(200) або VARCHAR(200) з utf8mb4_bin collation.

Генерація й друк етикеток

Іноді потрібно генерувати зображення Data Matrix для друку етикеток. PHP-бібліотека tecnickcom/tcpdf умить рендерити Data Matrix. Через Composer:

composer require tecnickcom/tcpdf

Генерація зображення:

$pdf = new \TCPDF();
$pdf->write2DBarcode(
    $markingCode,
    'DATAMATRIX',
    $x, $y, $width, $height,
    ['border' => false, 'padding' => 1]
);

У Bitrix'і інтегруєте у адміністративний розділ: на сторінці перегляду замовлення додаєте кнопку «Друк етикеток», яка генерує PDF з кодами для всіх маркованих товарів у замовленні. PDF-генерацію виконує AJAX-обробник у /local/ajax/print_labels.php.

Сканування кодів при приймці

Якщо товари приймаються на складі й потрібно сканувати Data Matrix при приймці в Bitrix'і — створюєте адміністративний інтерфейс з полем для введення коду (фокус на поле, сканер відправляє код й Enter). Після введення коду:

  1. Парсите код, витягуєте GTIN й серійний номер
  2. Шукаєте товар у каталозі за GTIN (властивість GTIN у b_iblock_element_prop_s*)
  3. Створюєте запис в b_local_marking_code зі статусом received
  4. Опціонально — відправляєте підтвердження приймки у ГІС МТ

Для швидкої роботи з великою кількістю кодів — батчева запис через INSERT INTO ... VALUES (...), (...), (...) або через ORM D7 addMulti().

Перевірка коду при продажі

Перед оформленням замовлення покупця або при зборці замовлення — перевіряєте статус коду. Код повинен бути у статусі received (є на складі) й не повинен бути вже проданий або скасований.

При обробці замовлення на збірку — кладовщик сканує коди маркування товарів з замовлення. Якщо код збігається з очікуваним товаром й статус коректний — позиція позначається як зібрана.

При відгрузці — усі коди з замовлення переводяться у статус sold й ставляться в чергу на відправлення сповіщення у ГІС МТ.

Повернення й повторна активація кодів

При поверненні товару код маркування потрібно «повернути в оборот». У ГІС МТ є операція повернення — статус коду змінюється з sold на active. У Bitrix'і при обробці повернення (подія OnSaleOrderReturn або ручна обробка менеджером) переводите код у статус returned й відправляєте сповіщення про повернення у ГІС МТ.