При обновлении конфигурации 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 самой компоненты), связь не устанавливается. Платформа попросту «не видит» нужный программный интерфейс, из-за чего и возникает сообщение о невозможности определить версию.
Рассмотрим самый быстрый и надежный способ решения проблемы. Как показывает практика эксплуатации, обработка версии 2.60 часто конфликтует с драйверами линейки 4.15.x. Однако предыдущая версия обработки — 2.50 — использует идентификатор SMDrvFR1C22, который стабильно работает с драйвером 4.15 в режиме обратной совместимости.
Выполним следующие шаги для восстановления работы:
ShtrihMkkt.epf версии 2.60 на версию 2.50 (ее можно взять из предыдущих релизов конфигурации или архивов обновлений).Важно понимать, что при использовании версии 2.50 идентификатор объекта в свойствах драйвера будет отображаться иначе, но ошибка определения версии исчезнет, и касса начнет печатать чеки корректно. Это решение подходит для тех, кому не требуется специфический функционал ФФД 1.2 в части проверки кодов маркировки непосредственно на ККТ в режиме реального времени.
С 2021 года многие организации перешли с ЕНВД на ПСН. В старых версиях УТ 10.3 (и в старых обработках обслуживания) выбор патента может быть ограничен или работать некорректно. Если вы используете стабильную обработку 2.50, вам может потребоваться «заставить» систему передавать правильный код налогообложения.
Разберем, как внести изменения в код обработки. Нам необходимо найти функцию, отвечающую за фискализацию чека, и принудительно установить систему налогообложения. Рассмотрим пример модификации кода во внешней обработке:
Функция ФискализироватьЧек(Объект, ПараметрыЧека) Экспорт
// Получаем текущие параметры подключения ККТ
ПолучитьПараметрыККТ(Объект);
мПараметрыПодключения.Вставить("ПараметрыРегистрации", Объект.ВыходныеПараметры);
// Принудительно устанавливаем ПСН (Патент)
// В перечислении ТипыСистемНалогообложенияККТ значение Патент обычно присутствует
ПараметрыЧека.Вставить("СистемаНалогообложения", Перечисления.ТипыСистемНалогообложенияККТ.Патент);
мВходныеПараметры.Очистить();
мВходныеПараметры.Добавить(ПараметрыЧека);
// Вызов команды драйвера
РезультатВыполнения = ПодключаемоеОборудованиеУниверсальныйДрайверКлиент.ВыполнитьКоманду("ФискализацияЧека",
мВходныеПараметры, мВыходныеПараметры, Объект.Драйвер, мПараметрыУстройства, мПараметрыПодключения);
Если Не РезультатВыполнения Тогда
Результат = мОшибкаНеизвестно;
Объект.ОписаниеОшибки = мВыходныеПараметры[1];
Иначе
Результат = мНетОшибки;
Объект.Вставить("ВыходныеПараметры", мВыходныеПараметры);
КонецЕсли;
Возврат Результат;
КонецФункции
Обратите внимание: Если в вашей конфигурации отсутствует значение Перечисления.ТипыСистемНалогообложенияККТ.Патент, вы можете передать числовое значение напрямую. Для ПСН в протоколе Штрих-М это значение обычно соответствует 16 (в двоичном представлении это 5-й бит).
Если вы все же намерены запустить работу именно на обработке 2.60 и идентификаторе SMDrvFR1C3, проанализируем технические нюансы регистрации DLL. Платформа 1С при запуске торгового оборудования распаковывает компоненту из макета во временную папку пользователя. Часто старые или «битые» версии компонент остаются в кэше и мешают инициализации.
Попробуем выполнить глубокую очистку:
%AppData%\1C\1cv8\ExtCompT и полностью удалим его содержимое.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 на актуальную версию из дистрибутива драйвера Штрих-М.