При работе с маркированными лекарственными препаратами в конфигурации "1С:Медицина. Больничная аптека" возникает ситуация: продажа на кассе проходит успешно, чек печатается, но данные о выбытии марки не поступают в систему "Честный ЗНАК". Причина — в фискальном чеке отсутствует обязательный для ФФД 1.2 тег 1163 "Код товара". Разберем по шагам, почему это происходит и как провести диагностику, чтобы устранить проблему.
Проанализируем типичную ситуацию: используется связка из 1С, ККТ АТОЛ с прошивкой под ФФД 1.2 и драйвером версии 10.x. Все компоненты, казалось бы, настроены, сканер читает код Data Matrix корректно, но на выходе в ОФД и ЦРПТ данные не поступают. Это указывает на то, что проблема кроется не в физическом оборудовании, а в логике взаимодействия программного обеспечения.
Первое и самое важное, что нужно понять — это фундаментальное отличие формата фискальных данных 1.2 от предыдущих версий (1.05, 1.1). Если раньше для передачи кода маркировки использовался тег 1162, то в ФФД 1.2 его заменил тег 1163 "Код товара".
Ключевой момент заключается в том, что тег 1163 — это составной тег, или контейнер. Он сам по себе не содержит значения, а включает в себя другие теги, которые уже и определяют тип маркировки товара. Это было сделано для универсальности, так как один и тот же товар может подлежать разным видам маркировки (например, ортопедическая обувь может быть и товаром легкой промышленности, и медицинским изделием).
Для системы МДЛП (лекарственные препараты) внутри контейнера 1163 должен находиться тег 1305 "КТ GS1.M". Именно его наличие в данных, передаваемых на ККТ, и является подтверждением корректной обработки марки.
Вывод: при диагностике проблемы в логах драйвера или ККТ нужно искать не упоминание тега 1163, а именно наличие тега 1305. Если его нет, значит, 1С по какой-то причине не передает полный код маркировки в драйвер кассы.
Чтобы найти источник сбоя, необходимо последовательно проверить всю цепочку передачи данных: от настроек 1С до логов ККТ. Рассмотрим этот процесс подробно.
Это первый и самый важный этап, который позволит локализовать проблему. Нам нужно понять, доходят ли данные о маркировке от 1С до драйвера ККТ. Логи драйвера АТОЛ находятся в папке: %USERPROFILE%\AppData\Roaming\ATOL\drivers10\logs.
fptr1C.log, fptr10.log, device_debug.log.По результатам поиска возможны два сценария:
Поддержка ФФД 1.2 в отраслевых конфигурациях, таких как "Медицина. Больничная аптека", внедрялась постепенно. Старые релизы могут не содержать необходимого функционала для корректной работы с новым форматом. Указанная в проблеме версия 2.2.8.9 является достаточно старой и с высокой вероятностью не имеет полноценной поддержки ФФД 1.2.
Решение: необходимо обновить конфигурацию "1С:Медицина. Больничная аптека" до последнего актуального релиза. Перед обновлением обязательно ознакомьтесь с описанием изменений к релизу (файл UpdInfo.txt) и убедитесь, что в нем явно заявлена полная поддержка работы с маркировкой по ФФД 1.2.
Даже в обновленной конфигурации работа с маркировкой может быть отключена или настроена неверно. Проверим основной параметр.
В настройках интеграции с ИС МП (МДЛП) должен быть установлен флаг "Выполнять проверку средствами ККТ". Эта настройка является ключевой. Именно она активирует механизм, при котором 1С передает полный код маркировки Data Matrix (включая криптографическую часть) на кассовый аппарат. Далее ККТ самостоятельно проверяет код через свой фискальный накопитель (ФН-М) и, в случае успеха, формирует в чеке реквизит со значением [М+] и включает в фискальные данные тег 1305.
Если этот флаг снят, 1С может не передавать код на ККТ, и, соответственно, тег 1305 не будет сформирован.
Иногда проблема кроется на самом первом этапе — считывании кода. Для корректной обработки ККТ должна получить полный код маркировки, без искажений.
GS1 (ASCII 29). Некоторые сканеры в режиме эмуляции клавиатуры могут заменять этот символ на другой или вовсе его отбрасывать. Это приводит к тому, что 1С получает "битый" код и не может его корректно обработать. Рекомендуется перевести сканер в режим эмуляции COM-порта, так как он обеспечивает наиболее надежную передачу данных.Как проверить: перед пробитием чека, после сканирования товара, воспользуйтесь встроенными в 1С инструментами (например, формой подбора и проверки маркированной продукции) чтобы увидеть, какая именно строка была получена от сканера. Сравните ее с тем, что должно быть. Если вы обнаружите расхождения в остатках на складе и в системе мониторинга, вам может пригодиться конфигурация «Инвентаризация МТ из ЧЗ».
Этот пункт, как правило, выполняется в первую очередь, но его важность нельзя недооценивать.
Таким образом, проблема отсутствия тега 1163 при продаже маркированных лекарств почти всегда сводится к тому, что система 1С не передает в ККТ тег 1305. Наиболее вероятные причины этого:
План действий должен быть следующим: в первую очередь, обновите конфигурацию 1С до актуальной версии. Затем проверьте и включите указанную настройку. Если проблема сохраняется, последовательно пройдитесь по остальным пунктам диагностики: проверьте логи драйвера на наличие тега 1305, убедитесь в корректной работе сканера и актуальности ПО для ККТ. Такой комплексный подход позволит гарантированно найти и устранить причину сбоя. В случаях возникновения сложностей с остатками товаров на складе, рекомендуется провести инвентаризацию маркированных товаров, чтобы данные в системе соответствовали фактическим. Для проведения такой сверки можно использовать конфигурацию для инвентаризации маркированных товаров из Честного ЗНАКа.