Как настроить выбытие лекарственных средств через ККМ: технические аспекты и решение проблем

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

Автоматизация выбытия маркированных медикаментов при розничной продаже через ККМ — это сложный процесс, который требует не только правильной настройки оборудования, но и корректной передачи фискальных данных. Давайте вместе разберемся, как реализовать этот механизм и почему возникают основные сложности при обмене данными с системой «Честный ЗНАК».

Понимание процесса выбытия через ККТ

Первое, что необходимо уяснить: выбытие через ККМ — это не мгновенное списание товара из вашего личного кабинета в системе маркировки. Процесс строится на цепочке передачи данных: ККТ -> ОФД -> ИС МДЛП (Честный ЗНАК). Система маркировки обрабатывает чеки в асинхронном режиме. Поэтому первым делом, если вы видите, что товар не списался в тот же день, не спешите перенастраивать код — вполне вероятно, что данные находятся в очереди на обработку.

Для отслеживания статуса выбытия используйте раздел «Реестр КИЗ, ожидающих вывода из оборота по ОФД» в личном кабинете «Честного ЗНАКа». В этом реестре данные могут появляться с задержкой от нескольких дней.

Техническая реализация передачи тегов в 1С

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


// Пример корректной передачи тегов маркировки после операции
Если Маркировка = 1 Тогда
    ДрайверККМ.TagNumber = 1084;
    ДрайверККМ.FNBeginSTLVTag;
    my_TagID = ДрайверККМ.TagID;
    
    ДрайверККМ.TagNumber = 1085;
    ДрайверККМ.TagType = 7;
    ДрайверККМ.TagValueStr = "mdlp";
    ДрайверККМ.FNAddTag;
    
    ДрайверККМ.TagNumber = 1086;
    ДрайверККМ.TagType = 7;
    ДрайверККМ.TagValueStr = "sid" + Отдел.ИД + "&";
    ДрайверККМ.FNAddTag;
    
    ДрайверККМ.FNSendSTLVTag;
    Маркировка = 0;
КонецЕсли;

Если ПустоеЗначение(СГТИН) = 0 Тогда
    гтин = Сред(СокрЛП(СГТИН), 1, 14);
    серия = Сред(СокрЛП(СГТИН), 15, 13);
    ДрайверККМ.MarkingType = 17485; // Тип маркировки для лекарств
    ДрайверККМ.GTIN = гтин;
    ДрайверККМ.SerialNumber = серия;
    ДрайверККМ.FNSendItemCodeData;
    
    // Тег 1191 для передачи данных о маркировке
    ДрайверККМ.TagNumber = 1191;
    ДрайверККМ.TagType = 7;
    ДрайверККМ.TagValueStr = "mdlp";
    ДрайверККМ.FNSendTagOperation;
КонецЕсли;

Проблема передачи тегов НДС (1199 и 1200)

Одной из частых причин отказа системы маркировки в списании товара является отсутствие данных об НДС. Даже если ваша организация работает на спецрежиме (например, УСН) и не является плательщиком НДС, система «Честный ЗНАК» при обработке чеков по схеме 10511 ожидает получения информации о ставке и сумме налога.

Чтобы решить эту проблему, необходимо следовать следующим правилам:

  1. Для тега 1199 (ставка НДС) установите значение 6, что соответствует статусу «НДС не облагается».
  2. Для тега 1200 (сумма НДС) передавайте не ноль, а полную стоимость предмета расчета.

Важно помнить, что при таких значениях сумма НДС в ИС МДЛП не передается как налоговый платеж, но обязательна для самого факта завершения цепочки выбытия. Если кассовый аппарат или драйвер не позволяют передать эти теги, проверьте актуальность прошивки ККТ и версию используемого драйвера (рекомендуется использование версий АТОЛ 10.8 и выше).

Рекомендации по диагностике

Если вы столкнулись с тем, что выбытие не происходит, выполните следующие шаги:

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

← На главную