Переход на формат фискальных данных (ФФД) 1.2 — это сложный процесс, который затрагивает взаимодействие конфигурации 1С, драйвера ККТ и прошивки самой кассы. Одной из самых распространенных проблем при пробитии чеков с маркированным товаром (когда требуется оперативный ввод в оборот товаров легкой промышленности) является сообщение "Ошибка программирования реквизита 1162". Рассмотрим подробнее, почему это происходит и как настроить систему для корректной работы.
Проанализируем ситуацию: реквизит 1162 (Код товара) использовался в ФФД версии 1.05 и 1.1 для передачи кода маркировки. Однако в новом формате ФФД 1.2 этот реквизит был исключен и заменен структурированным тегом 1163. Если ваша касса уже фискализирована под ФФД 1.2 (используется ФН-М), а программное обеспечение (1С или драйвер) пытается отправить данные в старом формате через тег 1162, касса выдает ошибку программирования реквизита.
Разберем по шагам, какие компоненты должны быть обновлены для успешной работы:
Часто простого обновления недостаточно, так как 1С может продолжать использовать старую внутреннюю компоненту драйвера. Рассмотрим, как принудительно обновить компоненту 10.9.0.4 в вашей базе.
Шаг 1: Подготовка файлов. Скачайте актуальный драйвер с сайта АТОЛ. В архиве найдите папку 1C, в которой находится файл компоненты (обычно это zip-архив с именем типа AtolMarkingCloud_v10.zip).
Шаг 2: Удаление старых данных. Выполним очистку кэша компонент, чтобы система не подтягивала старые версии. Пройдем по пути C:\Users\ИмяПользователя\AppData\Roaming\1C\1cv8\ExtCompT и удалим все файлы, связанные с АТОЛ (fptr10.dll и аналогичные).
Шаг 3: Обновление в 1С. Зайдем в раздел Администрирование — Печатные формы, отчеты и обработки — Внешние компоненты. Найдем драйвер АТОЛ и удалим его запись. После этого перейдем в Подключаемое оборудование — Драйверы оборудования, добавим новый драйвер, выбрав тип "ККТ с передачей данных" и загрузив ранее подготовленный архив из папки 1C драйвера АТОЛ.
Шаг 4: Настройка параметров. После установки драйвера нажмем кнопку "Настроить". Важно убедиться, что поле "Версия требований" приняло значение 3.4. Если там указано 3.2, это означает, что компонента осталась старой и поддержка ФФД 1.2 не будет работать корректно.
После устранения ошибки 1162 может возникнуть следующая преграда: "Контрольная марка не проверена". Это означает, что касса не смогла получить подтверждение от информационной системы маркировки (ИСМ). Выясним причину этой ситуации. При возникновении этой проблемы можно задействовать расширение для отмены проверки маркированного товара в ОИСМ на кассе.
Посмотрим на настройки в драйвере ККТ (через Тест драйвера АТОЛ):
Важный нюанс: Чтобы в чеке печатался признак [M+], проверка должна успешно пройти и в фискальном накопителе, и на серверах "Честного знака". Если вы видите только [M], значит, онлайн-проверка не сработала.
Бывают ситуации, когда даже на немаркированном товаре 1С пытается сформировать данные для тега 1162, что приводит к ошибке. Проанализируем программное решение этой проблемы. Если вы программист и вам нужно быстро "починить" продажи для товаров без маркировки, можно внести правки в общий модуль МенеджерОборудованияВызовСервера. В качестве альтернативного решения можно использовать обработку для продажи без кода маркировки через документ Чек ККМ.
Рассмотрим пример "костыля", который блокирует передачу пустого или некорректного кода маркировки в драйвер:
// В процедуре ЗаписатьДанныеКодаТоварнойНоменклатуры
// Находим блок формирования GoodCodeData (тег 1162)
// Реквизит кода товара (1162) для стандарта 3.2 и выше в ККТ передается в готовом виде.
Если НЕ ПустаяСтрока(РеквизитКодаТовара) Тогда
// Добавим проверку: если товар не маркированный, не пишем секцию
Если Позиция.ЭтоМаркированныйТовар Тогда
ЗаписьXML.ЗаписатьНачалоЭлемента("GoodCodeData");
ЗаписьXML.ЗаписатьАтрибут("MarkingCode", XMLСтрока(РеквизитКодаТовара));
ЗаписьXML.ЗаписатьКонецЭлемента;
КонецЕсли;
КонецЕсли;
Также обратим внимание на ситуацию с префиксами внутренних штрихкодов. Если система ошибочно принимает внутренний штрихкод (например, начинающийся на 22) за код маркировки, она пытается его разобрать и передать в ККТ. В этом случае поможет условие, исключающее такие коды из обработки функцией РазобратьШтриховойКодТовара.
При переходе на ФФД 1.2 часто "отваливается" продажа алкоголя с ошибкой 1309 (Превышена длина наименования или ошибка единиц измерения). Выясним причину: ФФД 1.2 требует строгого соответствия единиц измерения для подакцизных товаров.
Практический совет: попробуйте изменить последовательность действий кассира. Сначала сканируйте обычный штрихкод товара (EAN13), а затем — акцизную марку. В некоторых релизах Розницы именно такой порядок позволяет корректно сформировать структуру чека без возникновения ошибки 1309.
Подведем итог: исправление ошибки реквизита 1162 — это комплексная работа. Начните с обновления прошивки и драйвера, затем обязательно проверьте версию компоненты в ExtCompT, и только если штатные методы не помогают, прибегайте к корректировке программного кода в части формирования XML-пакета для ККТ.