Как решить проблемы при переходе на ФФД 1.2 в 1С: от настройки драйверов до исправления ошибок маркировки

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

Переход на формат фискальных данных (ФФД) 1.2 стал серьезным испытанием для многих технических специалистов. Основные сложности связаны с тем, что новый формат требует обязательной проверки кодов маркировки через фискальный накопитель (ФН-М) и серверы информационной системы маркировки (ИСМ). Рассмотрим по шагам, как диагностировать и устранять наиболее частые проблемы, возникающие в конфигурациях 1С (Бухгалтерия 3.0, Управление торговлей 10.3/11, Розница 2.3).

Проблема 1: Ошибка определения версии ФФД и некорректная печать чека

Часто при первом запуске после обновления ККТ до версии ФФД 1.2 в программе 1С отображается статус ??? в поле версии ФФД или возникает ошибка при попытке пробить чек. Это происходит из-за несовместимости старых версий драйверов и интеграционных библиотек (БПО) с новым форматом.

Разберем решение для касс Атол и Штрих-М:

  1. Для касс Атол необходимо установить драйвер версии не ниже 10.9.0.4 (рекомендуется 10.9.1.0 и выше). Важно обновить не только сам драйвер в операционной системе, но и интеграционную компоненту в 1С.
  2. В справочнике "Драйверы оборудования" нужно загрузить актуальный архив компоненты. Для Атол это обычно файл из поставки драйвера (папка 1C в каталоге установки ДТО 10).
  3. Для касс Штрих-М критически важно использовать компоненту, соответствующую стандарту 3.4. В настройках оборудования 1С версия драйвера должна отображаться как Штрих-М: ККТ с передачей данных в ОФД 3.4 (ФФД 1.2).

Проблема 2: Ошибка D3h «Код товара не распознан» и потеря символа GS

Проанализируем причину ошибки D3h. В ФФД 1.2 касса обязана разбирать код маркировки на составляющие. Самая частая причина «неузнаваемости» кода — отсутствие спецсимвола-разделителя GS (ASCII 29) перед идентификаторами применения 91 и 92.

Посмотрим, как исправить ситуацию на уровне оборудования и программного кода:

Основная причина потери символа GS — работа сканера штрихкода в режиме эмуляции клавиатуры (HID Keyboard). В этом режиме операционная система часто «проглатывает» непечатные символы.

  1. Переведем сканер в режим эмуляции COM-порта (USB-Serial/HID POS). Это обеспечит передачу кода в 1С «байт в байт» вместе с разделителями.
  2. В настройках драйвера сканера в 1С выберем тип 1С:Сканеры штрихкода (NativeApi).

Если перевод сканера в COM-режим невозможен, или конфигурация (например, старая УТ 10.3) всё равно обрезает символы, воспользуемся программной вставкой разделителей. Рассмотрим пример кода для вставки символа GS (ASCII 29) в DataMatrix:


// Пример модификации кода маркировки перед отправкой на ККТ
Если ТипШтрихкода = ПредопределенноеЗначение("Перечисление.ТипыШтрихкодов.GS1_DataMatrix") Тогда 
    // Вставляем разделитель перед AI 91 (позиция зависит от длины серийного номера)
    // Стандарт для многих групп: GTIN (14) + Serial (13) = 27 символов + префиксы 01 и 21
    РезультатШтрихкод = Сред(ИсходныйШтрихкод, 1, 31) + Символ(29) + 
                        Сред(ИсходныйШтрихкод, 32, 6) + Символ(29) +
                        Сред(ИсходныйШтрихкод, 38);
КонецЕсли;

Проблема 3: Статус проверки [M-] или отсутствие связи с сервером ОКП

Выясним причину, по которой чек пробивается с буквой М- вместо М+. Это означает, что локальная проверка в ФН или онлайн-проверка в ИСМ не подтвердила подлинность марки.

Проанализируем настройки связи ККТ:

  1. Проверим настройки ОКП (Оператор Криптографической Проверки). В параметрах ККТ (раздел ОИСМ в драйвере Атол или таблицы в Штрих-М) должен быть указан адрес сервера ИСМ. Для боевого режима это обычно prod01.okp-fn.ru, порт 26101.
  2. Убедимся, что сетевой экран (брандмауэр) не блокирует исходящие соединения по порту 26101.
  3. Важно знать, что локальная проверка (оффлайн) на текущий момент полноценно работает преимущественно для группы «Обувь». Для других групп (лекарства, шины, одежда) критически важна онлайн-проверка.

Особенности работы с УТ 10.3 и УПП

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

Пример формирования узла в XML для ФФД 1.2:


// В параметрах позиции чека для ФФД 1.2
// Значение должно содержать полный код маркировки с разделителями в Base64
ЗаписьXML.ЗаписатьАтрибут("GoodCodeData", КодМаркировкиВBase64);

Как вывести дополнительные данные (Покупатель, ИНН) в чек

Многие пользователи заметили, что в ФФД 1.2 при расчетах между юрлицами в чеке перестали печататься Наименование покупателя и его ИНН. Проанализируем ситуацию: в новых прошивках эти теги (1227 и 1228) передаются в электронный чек (ОФД), но не обязательны для печати на бумаге. Если клиенту требуется их видеть, используем вывод нефискальных строк через объект TextString в XML-пакете.


// Пример вывода произвольного текста в шапку чека через БПО
ЗаписьXML.ЗаписатьНачалоЭлемента("TextString");
ЗаписьXML.ЗаписатьАтрибут("Text", "Покупатель: ООО 'Ромашка'");
ЗаписьXML.ЗаписатьКонецЭлемента();

Итог: Переход на ФФД 1.2 требует не только обновления "железа", но и тонкой настройки передачи данных. Основной упор следует делать на сохранение спецсимволов GS в коде и обеспечение стабильной связи ККТ с серверами проверки марок.

← На главную