При обновлении парка кассовой техники или прошивок существующих аппаратов Атол до актуальных версий (так называемая Платформа 5.0 или ID серии 10), пользователи классических конфигураций, таких как 1С:Управление торговлей 10.3, часто сталкиваются с критической ошибкой. При попытке открыть смену или прочитать параметры фискализации система выдает сообщение: Неизвестная ошибка (Access violation at address ... in module 'FprnM1C.dll'). Рассмотрим подробно, почему это происходит и как настроить стабильную работу оборудования.
Первым делом проанализируем ситуацию. Ошибка Access violation в модуле FprnM1C.dll однозначно указывает на то, что 1С пытается взаимодействовать с кассой через старый драйвер АТОЛ ДТО 8.х. Однако прошивки «нового поколения» (ID 10-7733 и выше) базируются на Платформе 5.0.
Главная техническая особенность Платформы 5.0 заключается в том, что она оптимизирована для работы исключительно с 10-й версией драйвера (DTO 10). Старая библиотека FprnM1C.dll просто не понимает структуру ответов от новой прошивки ККТ, что приводит к некорректному обращению к памяти и аварийному завершению работы компоненты. Прохождение «Теста устройства» в настройках торгового оборудования при этом может быть успешным, так как базовые команды проверки связи еще поддерживаются, но полноценные фискальные операции (открытие смены, чеки) блокируются.
Выясним, какие действия необходимы для исправления ситуации на уровне системного ПО. Использование драйверов версии 8 или 9 с Платформой 5.0 более не является целесообразным. Разберем шаги по установке:
COM-объектов.Конфигурация «Управление торговлей 10.3» была разработана задолго до появления 10-го драйвера. Стандартные обработки, встроенные в старые релизы (например, ATOL_kkt.epf), не умеют обращаться к объектам 10-го драйвера. Нам необходимо интегрировать поддержку из современной БПО (Библиотеки подключаемого оборудования).
Рассмотрим подробнее, где взять нужные компоненты. Начиная с релизов БПО 2.0.6 и выше, в состав включен драйвер «АТОЛ:ККТ с передачей данных в ОФД (54-ФЗ) 10.x». Для успешной работы нам потребуется:
.epf, который поддерживает работу с библиотекой fptr10.dll.Проанализируем программный аспект: новая компонента использует другой программный идентификатор (ProgID) для создания объекта драйвера. Вместо старого обращения к AddIn.FPrnM45, новая обработка будет инициализировать объект 10-й версии. Если вы занимаетесь доработкой самостоятельно, обратите внимание на вызов метода:
// Пример инициализации в новом драйвере
Попытка
ОбъектДрайвера = Новый ("AddIn.Atol_KKT_10");
Исключение
Сообщить("Не удалось загрузить драйвер АТОЛ 10");
КонецПопытки;
Одной из скрытых причин ошибки при открытии смены является версия Формата Фискальных Данных (ФФД). В прошивках ID 10 (Платформа 5.0) реализован жесткий запрет на работу с устаревшим форматом ФФД 1.0.
Если ваша касса была зарегистрирована ранее под ФФД 1.0, то при обновлении прошивки до ID 10 она может перестать выполнять фискальные операции в 1С. Посмотрим на чек информации о ККТ: если там значится ФФД 1.0, необходимо выполнить процедуру перерегистрации ККТ без замены ФН через утилиту регистрации Атол. В качестве причины выберите «Изменение параметров регистрации» и установите флаг «ФФД 1.05». Без этого шага 1С будет получать отказ от кассы при попытке записи реквизитов чека.
Если после всех манипуляций ошибка Access violation сохраняется, проанализируем системные настройки:
regsvr32 fptr10.dll (указав полный путь к файлу в папке установленного драйвера).Для устранения ошибки подключения Атол 22Ф с прошивкой ID 10 в 1С:УТ 10.3 необходимо выполнить комплекс мер: отказаться от 8-й версии драйвера в пользу 10.х, обновить файл обработки обслуживания (взяв его из свежих релизов БПО) и убедиться, что касса переведена на формат ФФД 1.05. Только совокупность этих действий позволит избежать ошибок обращения к памяти и обеспечит стабильную печать чеков в соответствии с актуальными требованиями законодательства.