При подключении онлайн-касс АТОЛ (например, популярной модели АТОЛ 30Ф) к конфигурациям 1С на обычных формах, таким как Управление торговлей 10.3, специалисты нередко сталкиваются с критическим сбоем при попытке пробить чек. При этом тест устройства в настройках торгового оборудования проходит успешно, кассовые смены открываются и закрываются штатно, однако при вызове фискализации документа появляется системная ошибка: "Возможны расхождения ИБ и ФР. Access violation at address ... in module FPRNM1~1.DLL. Read of address 00000000".
В этой статье мы подробно разберем, почему возникает такое исключение, проанализируем лог драйвера ККТ и пошагово рассмотрим все способы устранения неисправности.
Проанализируем техническую сторону проблемы. Ошибка Access violation (нарушение прав доступа к памяти) означает, что внешняя динамическая библиотека драйвера ККТ (FprnM1C.dll / FPRNM1~1.DLL) попыталась обратиться к несуществующей области памяти по нулевому адресу (0x00000000). Выясним основные факторы, приводящие к этому сбою:
Чек ККМ, Приходный кассовый ордер или в учетной политике организации не задана система налогообложения либо она не совпадает с СНО, зарегистрированной в фискальном накопителе (ФН), алгоритм передачи параметров терпит сбой.%TEMP% под именами вида v8_XXXX_XX.tmp. Если в системе параллельно установлены драйверы разных версий или закэшировались старые библиотеки, происходит сбой адресации.EoU (Ethernet over USB), отправляющей данные в ОФД. Если служба или конфигурация настроены на одинаковые порты, драйвер теряет связь в момент выполнения низкоуровневых операций.Главным решением проблемы с передачей некорректных структур данных является обновление конфигурации. В релизах УТ 10.3.40.1 и ранее логика работы с ККТ с передачей данных содержала ошибки формирования фискального пакета.
Выполним следующие действия:
1С:Управление торговлей как минимум до релиза 10.3.41.1 или более актуального. Начиная с этой версии, разработчики полностью переработали алгоритм определения порядка налогообложения в документе Чек ККМ, а также правила выгрузки номенклатурного состава для документов Приходный кассовый ордер и Оплата от покупателя платежной картой.AtolKKt. Рекомендуется использовать актуальную версию обработки из комплекта поставки обновленной конфигурации или с официального сайта поддержки пользователей 1С.После обновления релиза необходимо правильно настроить реквизиты организации и кассы. Проанализируем настройки базы данных:
Если обновление выполнено, но ошибка Access violation с указанием модуля v8_...tmp сохраняется, устраним конфликт закэшированных динамических библиотек:
1cv8.exe.%TEMP%..tmp (особенно начинающиеся с v8_), а также временные файлы логов.%APPDATA%\1C\1Cv8 и %LOCALAPPDATA%\1C\1Cv8 (удалим папки с буквенно-цифровыми GUID).Разберем проверку подключения оборудования по интерфейсу USB:
ATOL USB Virtual COM (COM3) и ATOL USB Virtual COM (COM4)).settings.xml службы EthOverUsb указан второй порт (передача данных в ОФД). Номера портов не должны пересекаться.Последовательное выполнение этих шагов полностью устраняет ошибку нарушения доступа к памяти и обеспечивает стабильную печать чеков в соответствии с 54-ФЗ.