Как правильно вести учет GTIN и кодов маркировки в программе 1С:Розница. Аптека 2.2?

Пользователь 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

Интеграция с системой маркировки Честный Знак (в частности, МДЛП — Мониторинг движения лекарственных препаратов) вносит серьезные коррективы в привычный товарный учет розничной аптеки. При переходе на конфигурацию 1С:Розница. Аптека 2.2 у многих пользователей и администраторов возникает путаница: где именно указывать GTIN, как связаны характеристики с сериями, зачем нужен реквизит GTIN в характеристиках номенклатуры и где физически хранятся отсканированные коды DataMatrix.

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

Архитектура учета лекарственных препаратов в 1С:Розница. Аптека

Для начала проанализируем, как строится классический аптечный учет в решениях на платформе 1С. В отличие от обычной розницы, лекарственные препараты требуют жесткого серийного контроля. Это обусловлено не только контролем сроков годности, но и государственным регулированием цен на жизненно необходимые и важнейшие лекарственные препараты (ЖНВЛП).

В конфигурации 1С:Розница. Аптека учет организован следующим образом:

Возникает логичный вопрос: если учет завязан на характеристики, то где должен храниться GTIN (Global Trade Item Number) — глобальный номер торговой единицы?

Где правильно указывать GTIN: в карточке товара или в характеристике?

Давайте выясним назначение реквизитов. GTIN для маркируемых лекарств должен указываться строго в карточке номенклатуры.

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

Почему дублировать GTIN в характеристиках (сериях) не нужно? GTIN — это глобальный идентификатор самого лекарственного средства (его формы выпуска, дозировки, фасовки у конкретного производителя). Он абсолютно одинаков для миллионов упаковок из разных серий и партий. Меняться от серии к серии он не может.

Что за поле «GTIN, записываемый эмитентом в КиЗ ГИСМ» в характеристиках?

При изучении формы характеристики в 1С:Розница. Аптека можно обнаружить реквизит GTIN, записываемый эмитентом в КиЗ ГИСМ. Это поле часто вводит в заблуждение начинающих специалистов.

Важно понимать: это поле не имеет никакого отношения к маркировке лекарств в системе МДЛП. Это устаревший («legacy») реквизит, оставшийся в библиотеках интеграции 1С со времен запуска маркировки меховых изделий (шуб) контрольно-идентификационными знаками (КиЗ) с RFID-чипами. В меховой отрасли характеристики товара (цвет, размер, тип меха) напрямую определяли конкретный чип, который эмитент программировал для изделия.

При работе с лекарственными препаратами и кодами формата DataMatrix данное поле в характеристиках заполнять не требуется. Оставьте его пустым.

Как устроен код DataMatrix и где он хранится в базе данных 1С?

Каждая индивидуальная упаковка лекарственного средства снабжается уникальным двухмерным кодом DataMatrix. Давайте разберем его структуру. Код содержит:

  1. GTIN товара (14 символов, начинается с идентификатора применения 01);
  2. Индивидуальный серийный номер упаковки (13 символов, начинается с идентификатора 21);
  3. Ключ проверки (4 символа, идентификатор 91);
  4. Код проверки / криптохвост (44 символа, идентификатор 92).

Совокупность первых двух элементов (GTIN + Серийный номер) образует так называемый SGTIN (Serialized GTIN) — полностью уникальный ключ конкретной пачки лекарства.

Посмотрим, как программа управляет этими кодами внутри базы данных. Хранить миллиарды символов криптохвостов в рабочей базе нецелесообразно, так как это приведет к катастрофическому росту размера базы (блокировке работы СУБД) и замедлению системы. Поэтому в 1С реализована следующая схема:

Почему GTIN в DataMatrix может не совпадать с обычным штрихкодом EAN-13 на коробке?

В процессе работы вы обязательно столкнетесь с ситуацией, когда линейный штрихкод EAN-13 на коробке визуально отличается от GTIN, зашитого в DataMatrix. Рассмотрим, почему это происходит:

Рассмотрим пример поискового алгоритма, который выполняет система 1С при сканировании штрихкода в рабочем месте кассира (РМК):


Процедура ОбработатьСканированиеКода(ДанныеСканирования)
    // Извлекаем чистый штрихкод из сканера
    СтрокаКода = ДанныеСканирования.Значение;
    
    // Проверяем тип считанного штрихкода
    Если ЭтоКодDataMatrix(СтрокаКода) Тогда
        // Парсим код по стандартам GS1
        СчитанныйGTIN = ПолучитьGTINИзDataMatrix(СтрокаКода);
        СерийныйНомер = ПолучитьСериюИзDataMatrix(СтрокаКода);
        
        // Ищем номенклатуру по GTIN в регистре штрихкодов
        НайденнаяНоменклатура = Справочники.Номенклатура.НайтиПоРеквизиту("GTIN", СчитанныйGTIN);
        
        Если НЕ ЗначениеЗаполнено(НайденнаяНоменклатура) Тогда
            НайденнаяНоменклатура = НайтиНоменклатуруПоШтрихкоду(СчитанныйGTIN);
        КонецЕсли;
        
        // Ищем подходящую серию (характеристику)
        НайденнаяХарактеристика = НайтиХарактеристикуПоСерии(НайденнаяНоменклатура, СерийныйНомер);
        
        ДобавитьТоварВДокумент(НайденнаяНоменклатура, НайденнаяХарактеристика);
    Иначе
        // Обрабатываем стандартный линейный штрихкод EAN-13
        ОбработатьЛинейныйШтрихкод(СтрокаКода);
    КонецЕсли;
КонецПроцедуры

Практический процесс: как это работает при приемке и продажах?

Рассмотрим, как теоретические знания работают на практике при выполнении повседневных операций в аптеке.

1. Поступление товара (акцептирование)

При получении маркированных лекарств от поставщика аптека использует схему прямого или обратного акцепта в рабочем месте МДЛП:

2. Продажа лекарств через Рабочее место кассира (РМК)

В момент реализации покупателю кассир сканирует код DataMatrix с пачки лекарства. Программа 1С выполняет следующие действия:

  1. Сканер считывает всю строку кода маркировки и передает ее в платформу 1С.
  2. Программа выделяет из строки GTIN и серийный номер.
  3. По GTIN моментально определяется карточка номенклатуры.
  4. По серии (если она зашита в код маркировки и связана с характеристикой) автоматически подтягивается нужная характеристика со своей розничной ценой.
  5. Товар добавляется в чек. При пробитии чека код передается на фискальный накопитель ККТ и через ОФД уходит в Честный Знак (МДЛП), списывая конкретную единицу товара с баланса вашей аптеки.

Таким образом, правильное понимание структуры хранения данных исключает ошибки при первоначальном заполнении базы. Заполняйте GTIN в карточке номенклатуры, используйте характеристики исключительно для учета физических серий и сроков годности, и логика интеграции с МДЛП в "1С:Розница. Аптека" будет работать корректно и полностью в автоматическом режиме. Для последующего контроля актуальности остатков подойдет обработка для сверки итогов базы 1С с контуром МДЛП.

← На главную