При обновлении прошивки контрольно-кассовой техники (ККТ) АТОЛ, в частности модели 25Ф, пользователи часто сталкиваются с тем, что привычная работа в 1С:Управление нашей фирмой (УНФ) прерывается критической ошибкой. Проблема проявляется при попытке открытия смены: система выдает сообщение «Access violation at address ... in module 'FprnM1C.dll'». При этом тест драйвера может проходить успешно, а смена в самой кассе может даже закрываться, но полноценная работа в 1С становится невозможной.
В данной статье мы разберем причины возникновения этой ошибки, рассмотрим пошаговый алгоритм перехода на современный драйвер и выясним, как правильно настроить сетевое подключение ККТ для работы с нескольких рабочих мест.
Для начала проанализируем ситуацию. Основная причина ошибки Access violation кроется в архитектурных изменениях программного обеспечения АТОЛ. Современные прошивки ККТ (так называемая Платформа 5.0) используют принципиально иной протокол обмена данными, базирующийся на JSON-интерфейсе. Старые драйверы 8-й и 9-й серий, к которым относится библиотека FprnM1C.dll, не обучены работе с этим протоколом.
Когда 1С пытается вызвать функции из старой библиотеки, та отправляет запрос кассе, получает ответ в новом формате, «теряется» в структуре данных и пытается обратиться к неверному адресу памяти. Это и приводит к аварийному завершению работы модуля. Единственным верным решением здесь является полный переход на Драйвер торгового оборудования (ДТО) версии 10.х.
Прежде чем устанавливать новое ПО, необходимо тщательно очистить операционную систему и кэш 1С от следов старых драйверов. Если этого не сделать, 1С может продолжать обращаться к старой библиотеке по инерции. Рассмотрим последовательность действий:
%AppData%\Roaming\1C\1cv8\ExtCompT) и удалите оттуда все файлы, содержащие в названии Fprn или Atol. Это очистит локальный кэш компонент.%AppData%\Local\1C\1cv8\).Теперь перейдем к установке актуального драйвера. На текущий момент стабильными считаются версии 10.4.x и выше. Разберем важный нюанс: разрядность драйвера должна соответствовать разрядности клиента 1С, а не разрядности Windows. Если у вас установлен 32-битный клиент 1С (что часто встречается в версии 1.6.16), необходимо устанавливать KKT_10.x.x_installer_x86.exe.
После установки выполним базовую проверку:
COM-порт или USB. Если касса в сети — TCP/IP.Поскольку конфигурация УНФ 1.6.16 довольно старая, она может не иметь встроенного шаблона для ДТО 10. В этом случае нам потребуется ручная настройка:
Atol_KKT_10.zip и находится в подпапке 1C внутри каталога установки драйвера).После этого создайте новый экземпляр подключаемого оборудования, выбрав созданный драйвер, и выполните настройку параметров (порт, скорость, пароли доступа).
Одной из главных проблем, описанных в теме, является невозможность достучаться до кассы с других рабочих мест. В новых прошивках механизм работы по сети изменился. Рассмотрим два способа решения:
Если ваша ККТ АТОЛ 25Ф подключена к роутеру патч-кордом (Ethernet), выполним следующие действия:
Если касса подключена к одному из ПК по USB, мы можем сделать этот ПК сервером:
EthernetOverTransport или EoT).Рассмотрим подробнее протокол EthernetOverTransport (EoT). В отличие от старого EoU, который требовал отдельной службы для передачи данных в ОФД, EoT работает внутри основного канала связи драйвера. Это значительно упрощает настройку: касса обменивается данными с 1С и ОФД через один и тот же порт. Однако для корректной работы EoT критически важно, чтобы в 1С был выбран именно 10-й драйвер, так как более ранние версии этот протокол не поддерживают.
Если вы столкнулись с тем, что «поиск не находит кассу», проанализируем настройки брандмауэра Windows. Часто порты 5555 или 7778 блокируются системой безопасности. Добавьте соответствующие правила для входящих соединений, чтобы разрешить трафик для драйвера АТОЛ.
Таким образом, решив проблему с Access violation путем обновления драйвера, мы не только возвращаем работоспособность системе, но и переходим на более надежный и современный протокол обмена данными, который обеспечит стабильную работу ККТ в долгосрочной перспективе.