При интеграции фискальных регистраторов АТОЛ (в частности, популярных моделей АТОЛ 55Ф или АТОЛ 30Ф) с платформой 1С 7.7 (конфигурация «Торговля и Склад») специалисты часто сталкиваются со специфической ситуацией: внешняя компонента подключена, касса успешно пробивает чеки, однако после перезапуска 1С 7.7 связь с ККМ теряется, а параметры подключения не сохраняются. Кроме того, в меню Сервис — Параметры привычная вкладка настройки ККМ может менять свое название или вовсе отсутствовать.
Рассмотрим подробнее причины возникновения этой проблемы и разберем по шагам порядок действий для её устранения.
Выясним, как платформа 1С 7.7 и драйверы ККМ хранят настройки торгового оборудования. При первичной инициализации внешняя компонента драйвера пытается создать конфигурационные файлы торгового оборудования (в частности, файл 1stRozn.txt) в системном каталоге Windows (C:\Windows\) или в рабочей папке пользователя информационной базы.
Если сеанс 1С запущен под учетной записью Windows без прав администратора или в системе включен механизм UAC (User Account Control), ОС блокирует прямую запись в системные папки. В результате Windows перенаправляет запись в каталог виртуализации VirtualStore (C:\Users\<Имя_пользователя>\AppData\Local\VirtualStore), из-за чего при повторном входе 1С 7.7 не может прочитать сохраненные параметры.
Для решения этой проблемы выполним следующие шаги:
Платформа 1С 7.7 является 32-разрядным (x86) приложением. В 64-битных операционных системах Windows запуск утилиты regsvr32 из командной строки по умолчанию активирует 64-битную версию системного регистратора. Библиотека драйвера FprnM1C.dll, зарегистрированная таким способом, оказывается недоступной для 32-битного процесса 1С.
Проанализируем правильный порядок регистрации внешней компоненты:
SysWOW64, выполнив команду:
C:\Windows\SysWOW64\regsvr32.exe "C:\PathToDll\FprnM1C.dll"
В новых версиях драйверов АТОЛ (серии ДТО 8) название закладки в меню Сервис — Параметры может измениться с «ККМ» на «Свойство» или «Драйвер ККТ». Это штатное поведение внешних компонент. Если визуальная страница настроек не отображается или работает некорректно, вызвать окно настройки свойств фискального регистратора можно программно из обработки обслуживания (например, fr_comm.ert).
Посмотрим на пример вызова страницы свойств драйвера ККТ из кода 1С 7.7:
// Создание объекта драйвера
ОбъектККМ = СоздатьОбъект("AddIn.FPrnM45");
// Вызов визуальной страницы свойств драйвера
ОбъектККМ.ShowProperties();
// Или используем русскоязычный аналог метода:
// ОбъектККМ.ПоказатьСтраницуСвойств();
Разберем еще одну частую причину, почему при запуске 1С 7.7 сбрасывается подключение ККМ. Если перед запуском 1С открывалась сервисная утилита «Тест драйвера ККТ» и в ней остался установлен флаг «Устройство включено», утилита монопольно захватывает COM-порт (физический или виртуальный USB-COM).
При старте 1С 7.7 пытается инициализировать кассу, получает отказ доступа к COM-порту и автоматически сбрасывает флаг активности оборудования в настройках торгового оборудования. Перед запуском 1С обязательно снимем флаг подключения устройства в тесте драйвера и закроем сервисную утилиту.
Если в вашей конфигурации используется доработанная обработка обслуживания кассы fr_comm.ert, убедимся в правильности инициализации программного идентификатора (ProgID) при вызове метода СоздатьОбъект():
Процедура ПриОткрытии()
Если ЗагрузитьВнешнююКомпоненту("FprnM1C.dll") = 0 Тогда
Сообщить("Не удалось загрузить внешнюю компоненту FprnM1C.dll!");
Возврат;
КонецЕсли;
Попытка
ЗагруженнаяКасса = СоздатьОбъект("AddIn.FPrnM45");
Исключение
Сообщить("Ошибка создания COM-объекта драйвера ККМ!");
КонецПопытки;
КонецПроцедуры
Соблюдение правил регистрации 32-битных библиотек, обеспечение прав доступа к персональным каталогам пользователей и корректное закрытие сторонних утилит тестирования позволяют полностью решить проблему со сбросом настроек АТОЛ 55Ф в 1С 7.7.