При использовании контрольно-кассовой техники Атол 30Ф без установленного фискального накопителя (ФН) в программе 1С:Розница 2.2 (на базе Библиотеки подключаемого оборудования — БПО) специалисты часто сталкиваются с нештатным поведением. Касса корректно открывает и закрывает смену, однако при попытке пробить чек система аварийно завершает операцию с системной ошибкой: индекс за пределами границы массива. В отладчике при этом фиксируется статус драйвера устройства: Ошибка ФН/ЭКЛЗ.
Проанализируем техническую причину возникновения этой проблемы и разберем проверенные способы ее решения.
Выясним причину такого поведения программного кода. Механизм БПО в 1С при работе с типом оборудования ККТ с передачей данных (онлайн-кассы по требованиям 54-ФЗ) ожидает строго регламентированный набор фискальных реквизитов в ответе от драйвера после завершения печати чека (номер фискального документа, фискальный признак, номер смены, сквозной номер чека и т. д.).
Если физический фискальный накопитель в кассе отсутствует или заблокирован, драйвер возвращает ошибку выполнения фискализации либо пустой массив выходных параметров. В типовом коде обработки ответа драйвера происходит прямое обращение по индексам к элементам массива без предварительной проверки его длины. Это приводит к возникновению исключения Индекс находится за границами массива на стороне платформы 1С:Предприятие.
Рассмотрим основной способ, который позволяет задействовать кассу в качестве чекопечатающей машины (ЧПМ / АСПД) без использования фискального накопителя:
ПодключаемоеОборудование удаляем или отключаем экземпляр типа ККТ с передачей данных.Разберем альтернативный вариант, если конфигурация не поддерживает старые драйверы фискальных регистраторов или требуется полностью исключить обращения к БПО:
Посмотрим на сценарий, когда конфигурацию 1С:Розница необходимо протестировать именно по правилам 54-ФЗ с типом оборудования ККТ с передачей данных, но без покупки боевого фискального накопителя:
Таким образом, для печати нефискальных чеков без ФН оптимальным решением является перевод устройства в режим ЕНВД с подключением через тип оборудования Фискальный регистратор, либо вывод документов через Windows-драйвер принтера.