Настройка кодов маркировки Data Matrix на 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка кодов маркировки Data Matrix на 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1181
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    813
  • 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

Настройка кодов маркировки Data Matrix на 1С-Битрикс

Код Data Matrix для маркировки — это двумерный штрихкод, который кодирует идентификатор товарной единицы (GTIN), серийный номер и криптозащитный элемент. На уровне Битрикса задача сводится к: принять коды от поставщика или системы маркировки, сохранить в БД, отобразить на этикетке при необходимости и списать при продаже.

Структура кода 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]
);

В Битриксе интегрируете в административный раздел: на странице просмотра заказа добавляете кнопку «Печать этикеток», которая генерирует PDF с кодами для всех маркированных товаров в заказе. PDF-генерацию выполняет AJAX-обработчик в /local/ajax/print_labels.php.

Сканирование кодов при приёмке

Если товары принимаются на складе и нужно сканировать Data Matrix при приёмке в Битриксе — создаёте административный интерфейс с полем для ввода кода (фокус на поле, сканер отправляет код и 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. В Битриксе при обработке возврата (событие OnSaleOrderReturn или ручная обработка менеджером) переводите код в статус returned и отправляете уведомление о возврате в ГИС МТ.