Почему в 1С 7.7 сбрасываются настройки ККТ АТОЛ и как их сохранить

Программист 1С v7.7 Торговля и дистрибуция
← На главную

При подключении фискальных регистраторов и онлайн-касс АТОЛ (например, моделей АТОЛ 55Ф, 22Ф и других) к платформе 1С 7.7 разработчики часто сталкиваются с неприятным поведением: при каждом старте сеанса конфигурация сбрасывает выбранную модель устройства на значение по умолчанию. В результате кассиру или администратору приходится каждый раз вручную открывать окно свойств драйвера, заново выбирать порт, модель аппарата и параметры связи.

Разберем причины такого сбоя, выясним разницу между библиотеками драйверов торгового оборудования АТОЛ и рассмотрим правильный способ инициализации объекта в коде 1С 7.7.

В чем причина сброса параметров кассы

Проанализируем ситуацию: в дистрибутиве драйверов торгового оборудования (ДТО 8) поставляется несколько разных внешних компонент и программных интерфейсов, предназначенных для разных версий платформы «1С:Предприятие»:

  1. Библиотека FprnM1C82_54FZ.dll и объект AddIn.FPrnM8: Этот комплект создан по требованиям стандарта «1С:Совместимо» для современных конфигураций на базе 1С 8.2 и 8.3 (Библиотека подключаемого оборудования — БПО). Он рассчитан на то, что параметры подключения упаковываются управляющей системой в XML-структуру и передаются специализированными методами БПО. Платформа 1С 7.7 не обладает встроенными механизмами для взаимодействия с этим форматом, поэтому при создании объекта AddIn.FPrnM8 параметры не связываются с профилем пользователя 1С и при каждом запуске обращаются к нулевому дефолтному профилю устройства.
  2. Библиотека FprnM1C.dll и объект AddIn.FprnM45: Это классическая внешняя компонента для 1С 7.7, поддерживающая стандартную для старых конфигураций интеграцию торгового оборудования. При использовании этой компоненты окно настроек доступно в системном меню платформы «Сервис — Параметры», а сохраненные значения привязываются непосредственно к профилю пользователя в информационной базе.

Если в коде 1С 7.7 загружается компонента для «восьмерки» или создается общий OLE-объект AddIn.FPrnM8, настройки не подхватываются штатными диалогами платформы, что и приводит к постоянному сбросу параметров на модель по умолчанию.

Как правильно инициализировать кассу в 1С 7.7

Посмотрим на ошибочный вариант инициализации, который часто приводит к потере настроек:


// Ошибочный вариант: использование компоненты и объекта от 1С 8
итог = ЗагрузитьВнешнююКомпоненту("C:\Program Files\ATOL\Drivers8\Bin\FprnM1C82_54FZ.dll");
Если итог <> 0 Тогда
    Попытка
        ECR = СоздатьОбъект("AddIn.FPrnM8");
    Исключение
        Предупреждение("Ошибка при создании объекта AddIn.FPrnM8");
    КонецПопытки;
КонецЕсли;

Разберем правильный вариант подключения. Для корректного сохранения параметров необходимо использовать библиотеку FprnM1C.dll и зарегистрированный объект AddIn.FprnM45:


// Корректный вариант для 1С 7.7
ПутьКДрайверу = "FprnM1C.dll"; // Если dll лежит в каталоге BIN платформы 1С 7.7
Если ЗагрузитьВнешнююКомпоненту(ПутьКДрайверу) <> 1 Тогда
    // Если файла нет в каталоге платформы, пробуем абсолютный путь установки ДТО
    ПутьКДрайверу = "C:\Program Files\ATOL\Drivers8\Bin\FprnM1C.dll";
    Если ЗагрузитьВнешнююКомпоненту(ПутьКДрайверу) <> 1 Тогда
        Предупреждение("Не удалось загрузить внешнюю компоненту FprnM1C.dll!");
        СтатусВозврата(0);
        Возврат;
    КонецЕсли;
КонецЕсли;

Попытка
    ECR = СоздатьОбъект("AddIn.FprnM45");
Исключение
    Предупреждение("Не удалось создать объект торгового оборудования AddIn.FprnM45!");
    СтатусВозврата(0);
    Возврат;
КонецПопытки;

После смены программного идентификатора на AddIn.FprnM45 настройки драйвера становятся доступны для сохранения через стандартные механизмы торгового оборудования 1С 7.7, а выбранная модель ККТ перестает сбрасываться.

Где хранятся настройки и как проверить реестр

Параметры работы драйвера АТОЛ сохраняются в реестре операционной системы Windows. Если даже при использовании правильной компоненты параметры сбрасываются, проверим ветку реестра текущего пользователя:

HKEY_CURRENT_USER\Software\ATOL\Drivers\8.0\FprnM

Обратим внимание на следующие особенности:

  1. Права доступа: Если сеанс 1С 7.7 запущен под пользователем с ограниченными правами или в терминальном окружении (RDP), запись в системный реестр может блокироваться политиками безопасности либо перенаправляться в подраздел VirtualStore.
  2. Программная передача параметров: Чтобы сделать работу кассы полностью независимой от диалоговых окон и системного реестра, все параметры связи (номер COM-порта, скорость передачи бод, модель устройства) можно задавать непосредственно программным кодом перед установкой связи:
    
    ECR.Model = 67; // Код модели для АТОЛ 55Ф в ДТО 8
    ECR.PortNumber = 3; // Номер COM-порта
    ECR.BaudRate = 115200; // Скорость соединения
    ECR.DeviceEnabled = 1; // Подключение к аппарату
    Если ECR.ResultCode <> 0 Тогда
        Сообщить("Ошибка подключения ККТ: " + ECR.ResultDescription);
    КонецЕсли;
    

Разница между режимом принтера и фискальным режимом

При тестировании кассовых доработок разработчики нередко переводят аппарат в нефискальный режим или режим чекового принтера. Важно учитывать, что при переходе в боевой фискальный режим поведение ККТ существенно меняется:

  1. Контроль обязательных реквизитов (тегов ФФД): В тестовом режиме аппарат может печатать произвольный текст и чеки без полных реквизитов. В боевом режиме при наличии установленного фискального накопителя драйвер выполнит строгую проверку чека. Отсутствие обязательных параметров (ФИО и ИНН кассира, система налогообложения, признаки способа и предмета расчета) вызовет ошибку драйвера и блокировку печати чека.
  2. Сверка ставок НДС и систем налогообложения: Коды налоговых ставок и применяемая система налогообложения (СНО) в боевом режиме строго сверяются с регистрационными данными фискального накопителя. Если из 1С передать ставку или СНО, не зарегистрированную в ККТ, операция завершится ошибкой.
  3. Связь с ОФД: В фискальном режиме включается счетчик неотправленных документов. Если касса не передает чеки оператору фискальных данных более 30 дней, фискальный накопитель полностью блокирует проведение любых кассовых операций до устранения неполадок со связью.
← На главную