Главная / QR-коды и штрихкоды / Проверка штрихкода
Штрихкоды

Корректность штрихкода по контрольным данным

Проверьте корректность штрихкода и его данных.

Проверка
штрихкода

Проверка структуры и контрольной цифры штрихкода по значению или изображению.

Изображение
Значение
Контроль

Проверить значение штрихкода

Введите значение вручную или загрузите изображение штрихкода для проверки.

Результат
—
После проверки здесь появится результат.

Онлайн-проверка позволяет мгновенно установить корректность штрихкода по контрольным данным и выявить ошибки в закодированном цифровом значении. Инструмент принимает числовую последовательность товарного или логистического номера, анализирует ее длину и сопоставляет последний символ с математически вычисленным эталоном. Такая валидация помогает отсеять нерабочие идентификаторы до печати этикеток, загрузки каталогов в учетные системы или передачи карточек товаров на маркетплейсы. В результате пользователь сразу видит, соблюдена ли целостность номера и какой именно символ должен замыкать последовательность при обнаружении опечатки.

Любой стандартный штрихкод систем GS1, EAN или UPC представляет собой строго структурированный идентификационный ключ, где последняя позиция отведена под контрольный разряд. Эта замыкающая цифра не несет самостоятельной информации о стране, производителе или характеристиках продукции, а выполняет функцию защиты от искажений при ручном вводе или оптическом сканировании.

Механизм проверки опирается на жесткую математическую зависимость между всеми символами в цепочке. Инструмент берет основную часть введенного номера без последнего знака, применяет к каждой позиции установленные стандартом весовые коэффициенты и вычисляет эталонную контрольную цифру. Затем расчетный показатель сравнивается с фактическим замыкающим разрядом исходного кода. Полное совпадение двух значений подтверждает структурную целостность ключа, тогда как расхождение прямо указывает на замену, пропуск или перестановку соседних цифр внутри последовательности.

Проверка штрихкода

Алгоритм расчета контрольной цифры по стандарту GS1 Mod 10

В основе математической проверки линейных штрихкодов лежит стандартный алгоритм Модуло 10, также обозначаемый как GS1 mod 10. Его задача - свести всю числовую последовательность основного номера к одному итоговому значению от 0 до 9 по единому правилу чередования весов. Поскольку расчет опирается на позицию каждого знака относительно правого края, один и тот же математический цикл одинаково работает для кодов разной длины.

Для получения эталонного замыкающего разряда исходная последовательность без последней цифры проходит через фиксированную цепочку арифметических операций:

  • Все рабочие разряды кода (без учета проверяемого контрольного знака на конце) нумеруются строго справа налево: крайняя правая цифра перед контрольным числом получает позицию 1, следующая левее - позицию 2 и так далее до самого первого символа слева.
  • Каждой позиции назначается весовой коэффициент: все нечетные места при отсчете справа налево (1-е, 3-е, 5-е и далее) получают вес 3, а все четные места (2-е, 4-е, 6-е и далее) получают вес 1. При чтении кода привычным способом слева направо порядок чередования множителей 1 и 3 будет меняться в зависимости от общей четности или нечетности разрядности номера, поэтому отсчет с конца избавляет от путаницы.
  • Каждая цифра умножается на привязанный к ее месту коэффициент, после чего все полученные результаты складываются в общую контрольную сумму.
  • Итоговая сумма проверяется на кратность десяти через нахождение остатка от деления на 10 либо вычитается из ближайшего большего или равного числа, кратного 10. Если сумма равна 114, ближайшим верхним десятком будет 120, а разница составит 6. Когда сумма изначально делится на 10 без остатка (например, 90 или 130), ближайшее равное кратное число совпадает с самой суммой, и контрольная цифра принимает значение 0.

Алгоритм наглядно прослеживается на примере 13-разрядного кода формата EAN-13. Возьмем номер 4601234567893, где первые 12 знаков (460123456789) составляют информационную часть, а тройка на конце выступает проверяемым разрядом. При нумерации 12 рабочих символов справа налево девятка оказывается на первой позиции и получает множитель 3, восьмерка на второй позиции получает множитель 1, а самая левая четверка попадает на двенадцатое (четное) место с весом 1.

Ниже приведено пошаговое распределение позиций, весовых коэффициентов и произведений для первых 12 цифр кода 4601234567893:

Параметр расчета 4 6 0 1 2 3 4 5 6 7 8 9
Позиция справа налево 12 11 10 9 8 7 6 5 4 3 2 1
Весовой коэффициент 1 3 1 3 1 3 1 3 1 3 1 3
Произведение цифры на вес 4 18 0 3 2 9 4 15 6 21 8 27

Сложение всех двенадцати полученных произведений (4 + 18 + 0 + 3 + 2 + 9 + 4 + 15 + 6 + 21 + 8 + 27) дает сумму 117. Остаток от деления 117 на 10 равен 7, а ближайшее большее число, кратное десяти - 120. Вычитание 117 из 120 дает эталонную цифру 3, что полностью совпадает с тринадцатым знаком в исходном коде 4601234567893.

Для 12-разрядного номера UPC-A используется идентичная схема, но в расчете участвуют 11 знаков. Рассмотрим код 036000291452, отделив первые 11 цифр (03600029145) от замыкающей двойки. Отсчет позиций справа налево начинается с пятерки (1-я позиция с конца, вес 3). Поскольку общее количество анализируемых цифр нечетное, самый первый ноль слева попадает на одиннадцатую (нечетную) позицию с конца и тоже умножается на 3.

Распределение весов и промежуточных значений для 11 рабочих знаков номера UPC-A 036000291452 выглядит следующим образом:

Параметр расчета 0 3 6 0 0 0 2 9 1 4 5
Позиция справа налево 11 10 9 8 7 6 5 4 3 2 1
Весовой коэффициент 3 1 3 1 3 1 3 1 3 1 3
Произведение цифры на вес 0 3 18 0 0 0 6 9 3 4 15

Сумма всех одиннадцати произведений (0 + 3 + 18 + 0 + 0 + 0 + 6 + 9 + 3 + 4 + 15) составляет 58. Ближайшее большее число, кратное 10, для значения 58 равно 60. Разница 60 минус 58 дает результат 2, что подтверждает математическую правильность двенадцатого разряда в проверенном коде.

Разрядность и форматы проверяемых товарных и логистических кодов

Математический принцип валидации остается неизменным для всех линейных идентификационных ключей стандарта GS1, однако количество анализируемых разрядов зависит от конкретного типа носителя и сферы его применения. Товарная номенклатура маркируется номерами семейства GTIN, тогда как для отгрузочных единиц и издательской продукции применяются специализированные числовые последовательности фиксированной длины.

Основные форматы товарных и логистических номеров, подлежащих математической проверке по замыкающему разряду, включают следующие стандарты:

  • EAN-13 (GTIN-13) представляет собой базовый 13-разрядный код, который состоит из 12 информационных знаков и одной проверочной цифры в конце. Он повсеместно применяется для маркировки штучных потребительских товаров, проходящих через розничные кассы.
  • UPC-A (GTIN-12) содержит 12 цифр, из которых первые 11 несут данные о товаре, а двенадцатая служит для контроля целостности. Формат используется преимущественно на североамериканском рынке.
  • EAN-8 (GTIN-8) состоит из 8 цифр (7 рабочих и 1 проверочная). Такой сокращенный идентификатор наносится на малогабаритную упаковку, где физически невозможно разместить полноразмерный 13-значный символ без потери читаемости для оптического сканера.
  • ITF-14 и EAN-14 (GTIN-14) насчитывают 14 символов (13 значимых разрядов и замыкающий контрольный знак). Эти коды формируются для учета групповой и транспортной упаковки - коробов, ящиков или паллет с однородным товаром. Первая цифра здесь выступает индикатором уровня логистической единицы (от 1 до 8) или указывает на переменный вес короба (цифра 9).
  • SSCC-18 представляет собой 18-разрядный логистический код, где 17 цифр идентифицируют конкретную транспортную единицу (паллету, контейнер, сборный груз) в цепи поставок, а восемнадцатый символ защищает номер от ошибок считывания при складской обработке.

Влияние длины кода на стартовый весовой коэффициент

При ручной проверке или настройке табличных формул (где чтение строки часто организуется слева направо) общая разрядность номера напрямую определяет, на какой коэффициент умножается самая первая цифра слева. Поскольку по стандарту GS1 отсчет ведется справа налево и позиция перед контрольным разрядом всегда получает множитель 3, чередование весов для крайнего левого знака подчиняется правилу четности общей длины кода.

Зависимость стартового множителя (для первого слева разряда) от формата и длины цифрового обозначения представлена в сравнительной таблице:

Формат идентификатора Общая длина кода Количество знаков в расчете Вес первой цифры слева Вес последней рабочей цифры (перед контрольной)
EAN-8 (GTIN-8) 8 7 3 3
UPC-A (GTIN-12) 12 11 3 3
EAN-13 (GTIN-13) 13 12 1 3
ITF-14 / EAN-14 (GTIN-14) 14 13 3 3
SSCC-18 18 17 3 3

Во всех номерах с четным общим количеством символов (8, 12, 14, 18) число рабочих разрядов без учета проверочного знака является нечетным (7, 11, 13, 17). В результате при движении слева направо распределение весов всегда начинается с тройки: 3, 1, 3, 1 и так далее. Единственным исключением в базовой линейке выступает 13-разрядный стандарт EAN-13: в нем анализируются 12 рабочих цифр (четное количество), поэтому первый слева символ находится на двенадцатой позиции с конца и получает стартовый вес 1.

Такое свойство обеспечивает полную математическую совместимость форматов при выравнивании их длины ведущими нулями. Если дополнить 12-значный номер UPC-A одним нулем слева до 13 символов или дописать пять нулей перед EAN-8, расчетная контрольная сумма не изменится, так как добавленные нули при умножении на любой весовой коэффициент дадут в сумме ноль.

Издательские и сериальные коды ISBN-13, ISMN и ISSN

Книжная, нотная и периодическая печатная продукция интегрирована в общую систему товарной нумерации через выделенные префиксы (977, 978 и 979), что позволяет обрабатывать ее на стандартном кассовом и складском оборудовании наравне с обычными товарами.

Валидация издательских идентификаторов имеет свои структурные особенности:

  • ISBN-13 и ISMN состоят из 13 цифр и полностью соответствуют спецификации EAN-13. Расчет контрольного разряда для современных книг (с префиксами 978 или 979) и нотных изданий (префикс 9790) выполняется по стандартной схеме с чередованием весов 1 и 3. Старый 10-значный формат книжных номеров опирается на другой математический модуль (деление на 11, где проверочным знаком может выступать римская десятка X), поэтому при переводе издания в 13-разрядный вид контрольная цифра всегда пересчитывается заново.
  • ISSN в своем базовом виде содержит 8 знаков, но для печати штрихкода на обложках журналов и газет преобразуется в 13-значный код с префиксом 977. При такой конвертации берутся первые 7 цифр исходного номера ISSN (его собственный восьмой проверочный знак отбрасывается), после них добавляются 2 разряда для обозначения изменения цены или спецвыпуска (обычно 00), и для полученной 12-значной комбинации вычисляется новая тринадцатая цифра по правилу чередования весов 1 и 3.

Структурный анализ штрихкода и расшифровка сегментов данных

Помимо специальных издательских номеров, основная масса коммерческой продукции маркируется стандартными идентификаторами в рамках международной системы EAN и GS1. Цифровая последовательность под штрихами - это не случайный набор символов, а иерархический ключ, разделенный на функциональные зоны. При проверке стандартного 13-разрядного кода его структура разбирается слева направо на четыре логических блока, каждый из которых несет определенную учетную информацию.

Логическая структура товарного идентификатора включает следующие сегменты данных:

Сегмент штрихкода Техническое обозначение Позиции разрядов в EAN-13 Функциональное назначение блока
Префикс национальной организации GS1 Country Code С 1 по 3 Указывает на региональное представительство GS1, в котором зарегистрировано предприятие, или определяет специальную сферу применения номера.
Регистрационный номер предприятия-изготовителя Manufacturer Code Переменная длина (начиная с 4 позиции) Идентифицирует конкретного правообладателя бренда, завод-изготовитель или дистрибьютора в реестре национальной ассоциации.
Цифровой код товара Product Code Переменная длина (до 12 позиции включительно) Определяет конкретную товарную позицию и ее потребительские характеристики в локальной учетной базе самого производителя.
Контрольный разряд checksum_digit 13 Замыкающая цифра, обеспечивающая математическую проверку целостности всех предшествующих разрядов.

Префикс компании и плавающая длина товарного артикула

Первые три цифры идентификатора (Country Code) образуют префикс национальной организации GS1. Этот блок фиксирует территориальный орган или уполномоченный регистратор, выдавший диапазон номеров конкретной компании. Вслед за ним располагается регистрационный номер предприятия-изготовителя (Manufacturer Code), который вместе с префиксом формирует глобальный префикс компании.

В структуре кода нет жестко закрепленной границы между номером изготовителя и артикулом самого продукта. Суммарно на оба этих сегмента в 13-разрядном формате всегда отводится ровно 9 знаков (позиции с 4-й по 12-ю), но их внутреннее соотношение зависит от потребностей бизнеса и объема выпускаемого ассортимента:

  • Крупным корпорациям с десятками тысяч наименований присваивается короткий Manufacturer Code. Это оставляет больше свободных разрядов под Product Code, что дает возможность закодировать обширную номенклатуру изделий.
  • Небольшим предприятиям, выпускающим всего несколько десятков позиций, выдается длинный регистрационный номер изготовителя, а на сам артикул товара остается от 2 до 3 знаков.

Такое динамическое распределение разрядности позволяет экономно расходовать общую номерную емкость системы GS1. Сам Product Code присваивается предприятием самостоятельно по порядку (например, 001, 002, 003) без привязки к физическим свойствам товара - все характеристики (наименование, вес, цвет, размер упаковки) привязываются к этому числу уже внутри учетной базы данных.

Коды ограниченной циркуляции и внутренние префиксы 20-29

Отдельный сегмент в архитектуре нумерации занимают идентификаторы с префиксами от 20 до 29 (в трехзначном представлении - диапазон 200-299). Эти значения зарезервированы стандартом для кодов ограниченной циркуляции и не выдаются внешним производителям для международной торговли.

Номера, начинающиеся с цифр 20-29, применяются исключительно для внутреннего учета в пределах одной торговой сети, склада или производственного предприятия. Основная сфера их использования - маркировка весовой продукции, товаров собственного производства (кулинария, выпечка, нарезка) и немаркированных изделий, поступающих от локальных поставщиков. При генерации такой этикетки на фасовочных весах или принтере структура сегментов меняется под стандарты конкретного магазина: после префикса (например, 22 или 28) обычно кодируется внутрисетевой номер товара (PLU), а оставшиеся разряды перед checksum_digit отводятся под точный вес в граммах или количество штук.

При структурном анализе таких номеров проверка подтвердит правильность контрольного разряда, так как они подчиняются общему математическому правилу расчета. Однако за пределами выпустившей их торговой точки эти штрихкоды не имеют уникальности: два разных супермаркета могут использовать абсолютно одинаковый номер с префиксом 21 для совершенно разных продуктов.

Выявление ошибок в закодированном значении и интерпретация результата

Математическая проверка штрихкода по контрольной сумме предназначена для фильтрации искажений данных, которые возникают при ручном наборе номера с клавиатуры, копировании таблиц или сбоях оптического распознавания. Алгоритм обнаруживает строго определенные типы опечаток и структурных нарушений, но имеет математические исключения и четкие границы применимости.

Типы обнаруживаемых ошибок в структуре кода

Чередование весовых коэффициентов 1 и 3 при расчете контрольного числа реагирует на изменение значения или позиции символов внутри числового ряда. Сопоставление расчетного и фактического замыкающего разряда выявляет три основные категории ошибок:

  • Одиночные ошибки при ручном вводе (замена одной цифры на любую другую). Если в любой позиции штрихкода вместо верного символа введена другая цифра от 0 до 9, итоговая сумма произведений изменится на величину, не кратную 10. В результате расчетный контрольный разряд гарантированно не совпадет с указанным в конце проверяемого номера.
  • Транспозиции соседних цифр (перестановка местами двух рядом стоящих символов). Так как соседние позиции всегда умножаются на разные весовые коэффициенты (одна на 1, другая на 3), взаимная перестановка цифр меняет общую сумму на удвоенную разницу между ними. Исключение составляет ситуация, когда разница между переставленными соседними цифрами равна 5 (пары 0 и 5, 1 и 6, 2 и 7, 3 и 8, 4 и 9). При умножении разницы 5 на разность весов (3 минус 1) итоговая сумма изменяется ровно на 10, поэтому остаток от деления не меняется, и такая опечатка остается незамеченной.
  • Пропуск или добавление лишнего разряда (нарушение длины формата). Отсутствие одной цифры или случайное дублирование символа при вводе сразу выводит числовую последовательность за рамки стандартизированной разрядности (8, 12, 13, 14 или 18 символов). Кроме явного несоответствия длины, при сдвиге ряда все цифры справа от места ошибки меняют свою четность или нечетность позиции, что полностью перестраивает распределение весов и приводит к несовпадению контрольного числа.

В таблице ниже показано, как различные виды искажений при вводе отражаются на результате математической проверки контрольного разряда.

Тип искажения данных Математическое следствие Статус обнаружения при проверке
Замена одной цифры (например, 4 вместо 7) Изменение контрольной суммы на величину, не кратную 10 Ошибка обнаруживается в 100% случаев
Перестановка соседних цифр с разницей, не равной 5 (например, 23 вместо 32) Смена весовых коэффициентов 1 и 3 для переставленной пары меняет остаток от деления на 10 Ошибка обнаруживается
Перестановка соседних цифр с разницей, равной 5 (например, 16 вместо 61 или 49 вместо 94) Разница произведений составляет ровно 10, итоговый остаток от деления сохраняется Ошибка не обнаруживается алгоритмом
Перестановка цифр через одну позицию (на местах с одинаковым весом) Обе цифры остаются под тем же весовым коэффициентом (обе с весом 1 или обе с весом 3) Ошибка не обнаруживается алгоритмом
Пропуск или дублирование символа Нарушение фиксированной длины формата и сдвиг весовых позиций Ошибка обнаруживается по длине и контрольной сумме

Математическая валидность структуры и фактическая подлинность товара

При интерпретации полученного результата необходимо разграничивать целостность идентификационного ключа и легальность самой продукции. Успешное прохождение проверки и совпадение контрольного числа подтверждают только то, что цифровая последовательность составлена без технических опечаток и подчиняется правилам стандарта нумерации.

Математическая корректность штрихкода не подтверждает подлинность товара и не гарантирует, что этот номер официально зарегистрирован за конкретным производителем. Любой набор случайных цифр подходящей длины станет математически валидным, если в конец строки подставить правильно рассчитанный замыкающий разряд. Проверка по алгоритму контрольной суммы работает автономно с самой числовой строкой и не выполняет поиск по внешним реестрам, таким как глобальная база GS1, поисковый сервис GEPIR, национальные каталоги ЮНИСКАН и РОСКОД. Аналогично, совпадение контрольного разряда линейного кода никак не связано с проверкой легальности оборота продукции в государственной системе обязательной маркировки Честный знак, где используются криптографические коды проверки в формате двумерной символики.

Отдельного внимания при чтении структуры номера требует интерпретация первых трех цифр. Префикс штрихкода указывает исключительно на национальную организацию GS1, в которой компания-заявитель зарегистрировала свой учетный номер, но не обязательно соответствует физической стране происхождения или производства продукции. Предприятие может выпустить товар на заводе в одной стране, но промаркировать его штрихкодами, полученными через головной офис или импортера в совершенно другой юрисдикции. Кроме того, компании имеют право официально регистрировать префиксы в любой иностранной национальной ассоциации. Поэтому определение страны изготовления товара только по первым цифрам штрихкода без сверки с сопроводительной документацией и текстом на упаковке часто приводит к ложным выводам.

Прикладные сценарии проверки штрихкодов в торговле и складском учете

Математическая проверка структуры и контрольного разряда товарного номера напрямую связана с бесперебойной работой товароучетного программного обеспечения и торгового оборудования. Любое несоответствие в замыкающей цифре или разрядности блокирует движение номенклатуры по цепочке поставок - от добавления позиции в электронный каталог до пробития кассового чека.

Заведение карточек товаров в учетных системах и на маркетплейсах

При создании новых номенклатурных позиций в ERP, системах управления складскими запасами и личных кабинетах маркетплейсов поля ввода идентификаторов обычно имеют встроенный фильтр по алгоритму контрольной суммы. Если менеджер переносит данные из прайс-листа поставщика вручную или импортирует таблицу, в которой длинные числа были искажены из-за автоматического округления в редакторе таблиц, платформа отклонит сохранение карточки.

Предварительная валидация числового кода до загрузки каталога применяется для отсева позиций с опечатками и нарушенной разрядностью. Такая проверка позволяет заранее определить, почему учетная система выдает ошибку формата при импорте прайс-листа, и запросить у поставщика корректные идентификаторы до начала отгрузки партии.

Контроль данных перед генерацией и печатью этикеток

Ошибки на этапе подготовки макетов для термопринтеров приводят к выпуску нечитаемых ценников и транспортных этикеток. Профессиональные программы для верстки этикеток и специализированные принтеры по-разному реагируют на подачу кода с неверной контрольной цифрой в зависимости от настроек:

  • Отказ в генерации графического символа и остановка задания на печать с выдачей ошибки структуры данных.
  • Принудительная замена последней цифры, введенной пользователем, на математически правильный расчетный разряд.
  • Формирование штрихового узора строго по введенным цифрам без пересчета (характерно для простых графических редакторов и шрифтовых генераторов).

Второй и третий сценарии создают прямую угрозу для складского учета. Если программа молча исправила последнюю цифру при печати, на физической коробке окажется правильный штрихкод, который не совпадает с номером, записанным в базе данных предприятия. Если же этикетка была напечатана с неверным контрольным числом без исправления, ни один стандартный считыватель не сможет ее декодировать. Проверка номера перед отправкой тиража в печать гарантирует, что цифровой код в базе и графический символ на упаковке будут полностью идентичны.

Диагностика сбоев при сканировании на складе и в торговом зале

Аппаратные декодеры современных оптических считывателей - ручных и стационарных сканеров, прайс-чекеров в торговых залах и складских ТСД - по умолчанию настроены на строгую проверку целостности считываемых линейных кодов. Устройство переводит ширину штрихов и пробелов в цифровую последовательность, вычисляет контрольный разряд и сравнивает его с последним символом. Если значения не совпадают, декодер считает считывание ошибочным (например, из-за блика или сминания упаковки) и просто блокирует передачу строки в компьютер или кассовый терминал, не подавая звукового сигнала.

Когда оператор склада при приемке, инвентаризации или разборе пересортицы сталкивается с этикеткой, на которую не реагирует ТСД, проверка числового значения, напечатанного под штрихами, позволяет быстро локализовать причину сбоя. Ниже приведена таблица диагностики типовых проблем со считыванием на основе анализа цифровой строки.

Ситуация при работе с кодом Результат проверки контрольного разряда Техническая причина сбоя Действия для устранения проблемы
Сканер или ТСД не подает сигнал при наведении на этикетку, код не вводится Контрольная цифра не совпадает с расчетной Типографский брак в самом номере: в макет упаковки заложена неверная цифра, и аппаратный декодер блокирует передачу дефектной строки Напечатать поверх бракованного кода новую этикетку с математически валидным внутренним или исправленным номером
Сканер не считывает этикетку, но ручной ввод цифр с упаковки в систему проходит успешно Контрольная цифра корректна, структура соблюдена Физический дефект печати или самой этикетки: выцветание термобумаги, царапины, низкая контрастность, нарушение светлых полей по краям Заменить поврежденную этикетку или очистить оптическое окно считывателя; сам цифровой номер в базе менять не требуется
Сканер подает сигнал успешного чтения, но учетная система или прайс-чекер пишет, что товар не найден На этикетке код валиден, а в карточке товара в базе - ошибочен (или наоборот) Рассинхронизация данных: при печати принтер исправил ошибочную последнюю цифру, а в ERP осталась исходная строка с опечаткой Сверить поразрядно номер на физической упаковке с записью в базе данных и исправить ошибочный идентификатор в карточке номенклатуры
При инвентаризации возникает пересортица между двумя похожими позициями Оба кода математически валидны Случайное совпадение или ручной подбор: при заведении карточки менеджер ошибся в двух цифрах так, что контрольная сумма случайно сошлась, либо сгенерировал дубликат Провести поштучную сверку артикулов и перемаркировать партию с некорректно присвоенным идентификатором

Такой порядок диагностики избавляет персонал склада от лишней замены исправного торгового оборудования и помогает быстро отделить программные ошибки в товарной базе от физического брака маркировки на самой упаковке.

Нужен другой
инструмент?

Откройте раздел инструментов для QR-кодов и штрихкодов и выберите подходящую задачу.

Все инструменты штрихкодов