В процессе эксплуатации торгового оборудования в решениях на платформе 1С:Предприятие довольно часто возникает крайне неприятная ситуация: кассовый аппарат (фискальный регистратор или онлайн-ККТ) успешно настраивается в программе, корректно пробивает чеки и выполняет все операции, но ровно до тех пор, пока пользователь не закроет 1С. После перезапуска программы связь с кассой полностью пропадает, а настройки подключения (в частности, номер COM-порта, скорость и таймаут) сбрасываются до значений по умолчанию. Кассирам приходится заново заходить в параметры торгового оборудования, прописывать COM-порт вручную, что парализует работу торговой точки.
Особенно часто с этой проблемой сталкиваются пользователи классических конфигураций на обычных формах, таких как «Управление торговлей», редакция 10.2 и 10.3, работающих на платформе 1С:Предприятие 8.2 или 8.3 в режиме совместимости. В этой статье мы подробно разберем технические причины этого сбоя и разработаем пошаговый план действий для его окончательного устранения.
Для того чтобы эффективно решить проблему, нам необходимо понять физику процесса взаимодействия платформы 1С, драйвера торгового оборудования и операционной системы Windows. Рассмотрим основные причины, по которым настройки COM-порта могут «слетать» при перезапуске сеанса.
1. Наличие дубликатов динамической библиотеки драйвера (DrvFR.dll) в системе
Это самая распространенная причина, с которой сталкиваются ИТ-специалисты. Драйвер ККТ «Штрих-М» представляет собой внешнюю компоненту, физически реализованную в виде файла библиотеки DrvFR.dll. При установке официального программного обеспечения от производителя библиотека регистрируется в системе и располагается в каталоге программы (например, C:\Program Files (x86)\SHTRIH-M\Drivers\).
Однако часто при ручной настройке или переносе базы данных администраторы копируют файлы DrvFR.dll и DrvFR.lic непосредственно в каталог платформы 1С (папка bin), в каталог шаблонов или даже в папку самой базы данных. При запуске 1С обращается к реестру Windows для инициализации COM-объекта. Если в системе зарегистрировано несколько разных версий этой библиотеки, возникает конфликт: настройка оборудования происходит с использованием одной библиотеки, а при старте нового сеанса 1С инициализирует совершенно другую копию (например, из папки bin платформы), у которой в параметрах прописан дефолтный порт (обычно COM1). Именно поэтому настройки, сохраненные в рамках одного сеанса, бесследно исчезают при следующем запуске.
2. Ограничение прав доступа пользователя в операционной системе Windows (UAC)
Параметры подключения торгового оборудования драйвер «Штрих-М» сохраняет не только во внутренней структуре базы данных 1С, но и в системном реестре Windows. Путь хранения настроек по умолчанию для текущего пользователя выглядит следующим образом: HKEY_CURRENT_USER\Software\SHTRIH-M\DrvFR\. Если операционная система работает с включенной службой контроля учетных записей (UAC), а пользователь Windows, под которым запущена 1С, не обладает правами локального администратора, операционная система блокирует или виртуализирует запись в эту ветку реестра.
В результате в процессе работы 1С параметры временно удерживаются в оперативной памяти или виртуальном кэше реестра, но при закрытии процесса 1С операционная система уничтожает эти временные данные. При повторном запуске драйвер считывает незаполненную ветку реестра и сбрасывает настройки на первоначальные.
3. Специфика работы виртуальных COM-портов при подключении по USB
Современные фискальные регистраторы подключаются к компьютерам через USB-интерфейс. Для того чтобы старая программа (такая как УТ 10.2) смогла взаимодействовать с кассой, в операционной системе устанавливается специальный VCOM-драйвер (Virtual COM Port), который эмулирует стандартный последовательный порт. Здесь кроются две проблемы:
4. Использование терминального режима работы (RDP)
Если база данных 1С:Управление торговлей развернута на сервере терминалов, а пользователи работают через удаленные рабочие столы (RDP), возникает конфликт идентификации рабочих мест. В старых конфигурациях 1С настройки торгового оборудования в регистре сведений привязываются к **имени компьютера** (имени рабочей станции). На сервере терминалов все сессии пользователей могут определяться под одним и тем же системным именем сервера. В результате настройки оборудования одного пользователя начинают перезаписывать параметры другого пользователя при каждом новом входе в систему.
---
Проанализировав все возможные причины сбоя, перейдем к практическим шагам по устранению неполадки. Выполним эти шаги последовательно, чтобы гарантированно локализовать и устранить источник проблемы.
Первым делом нам необходимо избавиться от хаотично скопированных файлов библиотек драйвера, которые могут перехватывать обращение платформы 1С.
DrvFR.dll.DrvFR.dll и файлы лицензий DrvFR.lic (если они есть) изо всех директорий, за исключением дистрибутивов. Особое внимание уделим следующим папкам:
C:\Program Files (x86)\1cv8\8.X.X.X\bin\C:\Windows\System32\ и C:\Windows\SysWOW64\После того как система полностью очищена от старых библиотек, выполним чистую установку драйвера ККТ.
C:\Program Files (x86)\SHTRIH-M\Drivers\).
regsvr32 "C:\Program Files (x86)\SHTRIH-M\Drivers\DrvFR.dll"
При успешном выполнении команды система должна выдать информационное сообщение о том, что регистрация прошла успешно. Это гарантирует, что при обращении 1С к COM-объекту операционная система будет вызывать именно эту, единственную и актуальную версию библиотеки.
Чтобы операционная система не блокировала сохранение настроек порта, предоставим пользователю Windows полные права на соответствующую ветку реестра.
Win + R, введем команду regedit и нажмем Enter для запуска редактора реестра.HKEY_CURRENT_USER\Software\SHTRIH-M\ (для 32-битных систем) или дополнительно проверим ветку HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\SHTRIH-M\ (для 64-битных систем).SHTRIH-M (или вложенный раздел DrvFR) и выберем пункт «Разрешения...».Для предотвращения изменения номеров портов операционной системой и обеспечения стабильного подключения кассы по USB выполним следующие настройки в диспетчере устройств.
devmgmt.msc в строке «Выполнить»).Теперь проведем финальную настройку оборудования непосредственно в информационной базе 1С:Управление торговлей.
Для надежности выполним тестовый перезапуск программы. Закроем 1С:Управление торговлей, подождем несколько секунд и откроем программу заново. Попробуем выполнить любую операцию с кассой (например, снять X-отчет). Связь должна установиться мгновенно, без повторного запроса настроек COM-порта.
---
Если после выполнения всех вышеописанных шагов параметры порта все равно сбрасываются при перезапуске, проанализируем нестандартные сценарии.
Конфликт в терминальном режиме (RDP): Если работа ведется на сервере терминалов, убедимся, что в карточке торгового оборудования в 1С не включена общая настройка для всех рабочих мест. В УТ 10.2/10.3 каждое рабочее место должно иметь уникальный идентификатор. Рекомендуется настроить подключение кассы локально на каждом ПК, а на сервере использовать проброс COM-портов через RDP-клиент (в параметрах подключения RDP на вкладке «Локальные ресурсы» должна стоять галочка «Порты»).
Скрипты очистки кэша: Обратимся к системному администратору компании и выясним, не настроена ли на рабочем компьютере автоматическая очистка кэша 1С при входе пользователя в систему (например, через бат-файлы или политики GPO). При жестком удалении папок в каталогах AppData\Local\1C и AppData\Roaming\1C стираются также локальные файлы настроек пользователя, что неизбежно приводит к обнулению привязок оборудования.
Используя предложенный нами комплексный подход, мы сможем гарантировать стабильную и бесперебойную работу ККТ «Штрих-М» в конфигурации 1С:Управление торговлей без раздражающих сбросов параметров подключения.