Как запустить ККТ Штрих-М на драйвере 4.15 в 1С:УТ 10.3 и настроить работу с ПСН

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

При обновлении конфигурации 1С:Управление торговлей 10.3 до актуальных релизов (например, 10.3.66.3 и выше) многие технические специалисты сталкиваются с критической проблемой при подключении торгового оборудования. После установки драйвера Штрих-М версии 4.15 и попытке инициализации кассы программа выдает предупреждение: «Штрих-М: ККТ с передачей данных: Внимание! Невозможно определить версию драйвера. Корректная работа драйвера не гарантируется». В этой статье мы подробно разберем причины этой ошибки и найдем рабочие способы восстановления работоспособности кассового узла, включая настройку патентной системы налогообложения (ПСН).

Анализ причины возникновения ошибки

Давайте проанализируем ситуацию. Начиная с версии 10.3.66.x, фирма «1С» обновила типовые обработки обслуживания ККТ. Новая версия обработки (2.60) использует идентификатор SMDrvFR1C3. Это третье поколение интеграционной компоненты «Штрих-М», работающее по технологии Native API. Оно было разработано для поддержки протоколов ФФД 1.2 и расширенной работы с маркировкой товаров.

Проблема заключается в том, что 1С пытается инициализировать объект именно через SMDrvFR1C3, но из-за несоответствия версий библиотек в макете обработки и установленного в системе драйвера (а также возможных ошибок в файле manifest.xml самой компоненты), связь не устанавливается. Платформа попросту «не видит» нужный программный интерфейс, из-за чего и возникает сообщение о невозможности определить версию.

Решение 1: Использование стабильной версии обработки обслуживания

Рассмотрим самый быстрый и надежный способ решения проблемы. Как показывает практика эксплуатации, обработка версии 2.60 часто конфликтует с драйверами линейки 4.15.x. Однако предыдущая версия обработки — 2.50 — использует идентификатор SMDrvFR1C22, который стабильно работает с драйвером 4.15 в режиме обратной совместимости.

Выполним следующие шаги для восстановления работы:

  1. Перейдем в справочник «Обработки обслуживания торгового оборудования».
  2. Заменим текущую обработку ShtrihMkkt.epf версии 2.60 на версию 2.50 (ее можно взять из предыдущих релизов конфигурации или архивов обновлений).
  3. Переподключим устройство в интерфейсе «Торговое оборудование».

Важно понимать, что при использовании версии 2.50 идентификатор объекта в свойствах драйвера будет отображаться иначе, но ошибка определения версии исчезнет, и касса начнет печатать чеки корректно. Это решение подходит для тех, кому не требуется специфический функционал ФФД 1.2 в части проверки кодов маркировки непосредственно на ККТ в режиме реального времени.

Решение 2: Программная настройка ПСН (Патент)

С 2021 года многие организации перешли с ЕНВД на ПСН. В старых версиях УТ 10.3 (и в старых обработках обслуживания) выбор патента может быть ограничен или работать некорректно. Если вы используете стабильную обработку 2.50, вам может потребоваться «заставить» систему передавать правильный код налогообложения.

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


Функция ФискализироватьЧек(Объект, ПараметрыЧека) Экспорт
    
    // Получаем текущие параметры подключения ККТ
    ПолучитьПараметрыККТ(Объект);
    
    мПараметрыПодключения.Вставить("ПараметрыРегистрации", Объект.ВыходныеПараметры);
    
    // Принудительно устанавливаем ПСН (Патент)
    // В перечислении ТипыСистемНалогообложенияККТ значение Патент обычно присутствует
    ПараметрыЧека.Вставить("СистемаНалогообложения", Перечисления.ТипыСистемНалогообложенияККТ.Патент);
    
    мВходныеПараметры.Очистить();
    мВходныеПараметры.Добавить(ПараметрыЧека);
    
    // Вызов команды драйвера
    РезультатВыполнения = ПодключаемоеОборудованиеУниверсальныйДрайверКлиент.ВыполнитьКоманду("ФискализацияЧека",
        мВходныеПараметры, мВыходныеПараметры, Объект.Драйвер, мПараметрыУстройства, мПараметрыПодключения);
        
    Если Не РезультатВыполнения Тогда
        Результат = мОшибкаНеизвестно;
        Объект.ОписаниеОшибки = мВыходныеПараметры[1];
    Иначе
        Результат = мНетОшибки;
        Объект.Вставить("ВыходныеПараметры", мВыходныеПараметры);
    КонецЕсли;
    
    Возврат Результат;
КонецФункции

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

Решение 3: Устранение конфликтов компонент (Native API)

Если вы все же намерены запустить работу именно на обработке 2.60 и идентификаторе SMDrvFR1C3, проанализируем технические нюансы регистрации DLL. Платформа 1С при запуске торгового оборудования распаковывает компоненту из макета во временную папку пользователя. Часто старые или «битые» версии компонент остаются в кэше и мешают инициализации.

Попробуем выполнить глубокую очистку:

  1. Закроем все сеансы 1С.
  2. Перейдем в каталог %AppData%\1C\1cv8\ExtCompT и полностью удалим его содержимое.
  3. Проверим разрядность. УТ 10.3 — это, как правило, 32-битное приложение. Убедитесь, что установлен 32-битный драйвер Штрих-М, даже если операционная система 64-битная.
  4. Попробуем вручную зарегистрировать библиотеку ShtrihM_KKT_1C_Base_v3.dll из папки установленного драйвера (обычно это C:\Program Files (x86)\Shtrih-M\Drivers415\Bin) с помощью команды regsvr32.

Еще один важный момент: в некоторых версиях драйвера (например, 833, 837) требуется обновление прошивки самой кассы. Если прошивка ККТ слишком старая, она может не отвечать на специфические запросы новой компоненты о версии драйвера, что и вызывает ошибку в 1С.

Дополнительные рекомендации

Выясним причину, по которой 1С иногда «теряет» идентификатор SMDrvFR1C3. Это часто связано с правами доступа к реестру Windows. При первом запуске компонента пытается прописать свои GUID в ветку HKEY_CLASSES_ROOT. Если у пользователя недостаточно прав (не является администратором), регистрация не завершается. Рекомендуется запустить 1С один раз от имени администратора при настройке торгового оборудования.

Подведем итог: если вам нужно «быстро запустить кассу» и ПСН в УТ 10.3, используйте драйвер 4.15.823 (он признан наиболее стабильным) и обработку обслуживания версии 2.50. Если же требуется поддержка всех новшеств маркировки через SMDrvFR1C3, будьте готовы к ручной замене ZIP-архива компоненты внутри обработки 2.60 на актуальную версию из дистрибутива драйвера Штрих-М.

← На главную