К статье
Практический материал

Торговля и Склад · 11 мин

Как получить полный код маркировки в 1С

Как получить полный код маркировки в 1С: где хранится DataMatrix с криптохвостом, как вывести его в отчёты, запросом и при сканировании. Разбор ошибок.

Полный код маркировки — это строка DataMatrix длиной 83–90+ символов, включающая GTIN, серийный номер и криптографический хвост (код проверки и крипто-подпись). В 1С проблема обычно заключается в том, что в документах и списках виден только сокращённый код, а для передачи в Честный ЗНАК, ЭДО-провайдера или при выбытии требуется именно полная строка с криптохвостом.

Конфигурации 1С (УТ 11, КА 2, ERP, Розница, Бухгалтерия с подсистемой маркировки) хранят коды в справочнике «Штрихкоды упаковок товаров», и полный код там, как правило, присутствует — но его нужно правильно извлечь. Ниже разобраны типовые способы: через интерфейс, запросом, при сканировании и в печатных формах.

Важно понимать: криптохвост содержит спецсимволы (разделитель GS, непечатаемые знаки), поэтому «полный код» в виде читаемой строки и в виде двоичных данных — не одно и то же. От того, куда вы передаёте код, зависит нужный формат.

Где 1С хранит полный код маркировки

В типовых конфигурациях с подсистемой «Интеграция с ИС МП» все отсканированные коды попадают в справочник штрихкодов упаковок: в УТ 11 / КА / ERP это «Штрихкоды упаковок товаров», в Рознице название аналогичное. Каждый элемент справочника связан с номенклатурой, характеристикой и содержит само значение штрихкода.

Ключевой реквизит — «Значение штрихкода» (в коде — Штрихкод или ЗначениеШтрихкода в зависимости от версии библиотеки). Именно туда сканер записывает полную строку, включая криптохвост, если сканер настроен корректно. Дополнительно разобранные части кода (GTIN, серийный номер) хранятся отдельными реквизитами, что позволяет искать код по его частям.

В документах («Маркировка товаров ИС МП», «Реализация товаров и услуг» и др.) коды хранятся в табличной части «Штрихкоды упаковок» как ссылки на элементы справочника. Поэтому, чтобы получить полный код из документа, нужно обратиться к реквизиту ссылки, а не к самой ссылке.

В документе виден короткий кодЭто представление ссылки

Откройте справочник штрихкодов упаковок — полное значение там

Код обрезан на 31 символеСканер не передал криптохвост

Проверьте настройки сканера: суффикс, передача GS

Нужен код для ЭДО/вывода из оборотаНужен формат с разделителем GS

Используйте значение штрихкода, а не отображаемую строку

Как посмотреть полный код через интерфейс

Самый простой способ — открыть карточку элемента справочника. Путь в УТ 11 / ERP: «НСИ и администрирование» → «Настройка интеграции с ИС МП» либо через раздел «Продажи» / «Склад» → «Штрихкоды упаковок товаров» (точное расположение зависит от версии конфигурации). В форме элемента поле «Значение штрихкода» покажет полную строку.

Из документа можно перейти к карточке, открыв табличную часть «Штрихкоды упаковок» и дважды щёлкнув по нужной строке или нажав на ссылку. Если ссылок много, удобнее вывести список справочника с отбором по номенклатуре и включить в настройках списка колонку «Значение штрихкода» — тогда полные коды видны сразу таблицей.

Обратите внимание: в списке длинные коды визуально обрезаются по ширине колонки. Это не значит, что в базе они неполные — скопируйте значение в буфер обмена (Ctrl+C по ячейке) и вставьте в текстовый редактор, чтобы убедиться в полноте строки.

Как получить полный код запросом или кодом

Для разработчиков и при построении отчётов полный код извлекается запросом к справочнику. Типовой вариант для табличной части документа:

ВЫБРАТЬ

Штрихкоды.ШтрихкодУпаковки.ЗначениеШтрихкода КАК ПолныйКод

ИЗ

Документ.РеализацияТоваровУслуг.ШтрихкодыУпаковок КАК Штрихкоды

ГДЕ

Штрихкоды.Ссылка = &Ссылка

Имя реквизита зависит от версии библиотеки интеграции: в одних релизах это «ЗначениеШтрихкода», в других — «Штрихкод». Если запрос возвращает ошибку поля, откройте структуру справочника в конфигураторе и уточните точное имя.

Программно из объекта документа код получается так же — через точку от ссылки:

Для Каждого СтрокаТЧ Из ДокументОбъект.ШтрихкодыУпаковок Цикл

ПолныйКод = СтрокаТЧ.ШтрихкодУпаковки.ЗначениеШтрихкода;

КонецЦикла;

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

bsl
ПолныйКод = СтрокаТЧ.ШтрихкодУпаковки.ЗначениеШтрихкода; // строка с криптохвостом

Как получить полный код при сканировании

Частая причина «неполного» кода в базе — настройки сканера. Если сканер работает в режиме клавиатурного ввода (HID), он должен передавать все символы, включая непечатаемый разделитель GS. Многие сканеры по умолчанию обрезают хвост или заменяют GS, из-за чего в 1С попадает только GTIN + серийный номер.

Проверьте и настройте сканер по инструкции производителя: включите передачу полного содержимого DataMatrix, передачу символа GS (обычно как ASCII 29) и корректный суффикс окончания (Enter). В драйверах 1С для сканеров («1С:Сканеры штрихкода») также есть настройка распознавания GS — убедитесь, что она включена.

Признак правильной настройки: при сканировании в блокнот код выглядит как длинная строка с «разрывами» (GS отображается как спецсимвол), а в 1С в карточке штрихкода упаковки сохраняется строка длиной более 80 символов для товарных групп с криптохвостом.

Порядок действий при сканировании
  1. 1
    Откройте блокнот и отсканируйте код — проверьте, передаётся ли вся строка
  2. 2
    Если строка обрезана — настройте сканер: передача GS и полного содержимого DataMatrix
  3. 3
    Проверьте настройки драйвера сканера в 1С (распознавание GS)
  4. 4
    Отсканируйте код в документ 1С и откройте созданный элемент справочника штрихкодов
  5. 5
    Убедитесь, что в поле значения штрихкода сохранилась полная строка с криптохвостом

Полный код в печатных формах и выгрузках

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

При передаче кодов через ЭДО в составе УПД коды передаются автоматически в машиночитаемом виде — здесь вручную ничего добывать не нужно, но важно, чтобы в базе коды были полными изначально. Неполный код, записанный при сканировании, дальше по цепочке уйдёт в таком же виде и может вызвать ошибку при приёмке у контрагента или при выводе из оборота.

Для выгрузки реестра кодов в Excel или CSV используйте универсальный отчёт по справочнику штрихкодов упаковок или консоль запросов: выведите поле значения штрихкода и сохраните результат. Учтите, что Excel может искажать длинные строки с ведущими нулями — форматируйте колонку как текст до вставки данных.

Типичные ошибки и как их исправить

Самая распространённая ситуация — в базе хранится код из 31 символа (GTIN + серийный номер) без криптохвоста. Причина почти всегда в сканере на момент приёмки. Исправить задним числом можно только пересканированием физических этикеток либо загрузкой кодов из входящего УПД поставщика, если он передавал полные коды.

Вторая ошибка — попытка взять «полный код» из строки представления ссылки в табличной части. Представление формируется для отображения и может быть усечено. Всегда обращайтесь к реквизиту значения штрихкода.

Третья — потеря разделителя GS при копировании через буфер обмена или при выгрузке в Excel. Для машинной обработки GS часто заменяют на явную последовательность (например, символ с кодом 29 или строку-заменитель по требованиям принимающей стороны) — уточняйте требуемый формат у получателя данных.

Типичные ошибки
01
Сканер обрезает криптохвост — в базу попадает неполный код, операции выбытия отклоняются
02
Копирование кода из представления ссылки — получается усечённая строка
03
Выгрузка в Excel без текстового формата — теряются ведущие нули GTIN
04
Ручное редактирование кода — код перестаёт проходить проверку в Честном ЗНАКе
05
Использование устаревшего релиза — ошибки разбора кодов новых товарных групп

Проверка результата и ограничения

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

Дополнительная проверка — запрос статуса кода в Честном ЗНАКе штатными средствами 1С (проверка кодов маркировки). Система корректно обрабатывает только полные коды; неполный код вернёт ошибку или не найдётся.

Ограничение: если товар уже выведен из оборота или этикетки физически недоступны, а в базе неполные коды, восстановить криптохвост самостоятельно невозможно — только через данные поставщика или оператора ЭДО по входящему документу.

Контрольные точки

Как проверить результат

Длина строки кода
Норма

Более 80 символов для групп с криптохвостом

Тревожный признак

31 символ — только GTIN и серийный номер

Наличие разделителя GS
Норма

Спецсимвол присутствует между частями кода

Тревожный признак

Части склеены без разделителя

Проверка в Честном ЗНАКе из 1С
Норма

Код находится, статус отображается

Тревожный признак

Ошибка разбора или код не найден

Итог

Что важно запомнить

Полный код маркировки хранится в справочнике штрихкодов упаковок в реквизите значения штрихкода. Полнота кода закладывается на этапе сканирования — настройте сканер на передачу криптохвоста и GS. Для отчётов и выгрузок обращайтесь к реквизиту значения, а не к представлению ссылки, и никогда не редактируйте код вручную.

Частые вопросы

Почему в документе код выглядит коротким, а в карточке — длинным?

В табличной части документа отображается представление ссылки на элемент справочника, которое 1С формирует в сокращённом виде для удобства чтения. Полное значение хранится в самом элементе справочника — откройте карточку двойным щелчком.

Можно ли получить полный код, если этикетка утеряна?

Да, если код ранее был корректно отсканирован в базу или пришёл в электронном УПД от поставщика — возьмите его из справочника штрихкодов или из входящего документа. Если код нигде не сохранён в полном виде, восстановить криптохвост невозможно.

Как выгрузить все полные коды по отгрузке в Excel?

Сформируйте запрос к табличной части «Штрихкоды упаковок» документа с выводом поля значения штрихкода (через консоль запросов или универсальный отчёт), затем сохраните таблицу. Перед вставкой в Excel задайте колонке текстовый формат, чтобы не потерять ведущие нули.

Сканер передаёт код без криптохвоста — что настроить?

В настройках сканера включите передачу полного содержимого DataMatrix и передачу символа GS (ASCII 29), проверьте суффикс окончания передачи. Точные управляющие штрихкоды для настройки есть в руководстве вашей модели сканера.

Чем полный код отличается от кода, который печатается на этикетке под DataMatrix?

Под этикеткой обычно печатается человекочитаемая строка, где разделители GS показаны условно или опущены, а скобки с идентификаторами применения (01, 21, 91, 92) добавлены для чтения. Для передачи в системы учёта нужна «сырая» строка из DataMatrix с реальными разделителями GS.

Подходит ли неполный код для розничной продажи через кассу?

Нет. Касса при продаже маркированного товара передаёт в Честный ЗНАК полный код с криптохвостом — именно по нему система идентифицирует единицу товара и проверяет подлинность. Неполный код приведёт к ошибке продажи или некорректному выбытию.