Как исправить ошибку индекс за пределами границы массива при печати чека на Атол 30Ф без ФН в 1С:Розница

Программист 1С v8.3 (Управляемые формы) 1С:Розница Торговля и дистрибуция
← На главную

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

Проанализируем техническую причину возникновения этой проблемы и разберем проверенные способы ее решения.

Причина возникновения ошибки в 1С

Выясним причину такого поведения программного кода. Механизм БПО в 1С при работе с типом оборудования ККТ с передачей данных (онлайн-кассы по требованиям 54-ФЗ) ожидает строго регламентированный набор фискальных реквизитов в ответе от драйвера после завершения печати чека (номер фискального документа, фискальный признак, номер смены, сквозной номер чека и т. д.).

Если физический фискальный накопитель в кассе отсутствует или заблокирован, драйвер возвращает ошибку выполнения фискализации либо пустой массив выходных параметров. В типовом коде обработки ответа драйвера происходит прямое обращение по индексам к элементам массива без предварительной проверки его длины. Это приводит к возникновению исключения Индекс находится за границами массива на стороне платформы 1С:Предприятие.

Способ 1. Перевод ККТ в режим ЕНВД и подключение в качестве фискального регистратора

Рассмотрим основной способ, который позволяет задействовать кассу в качестве чекопечатающей машины (ЧПМ / АСПД) без использования фискального накопителя:

  1. Перевод ККТ в нефискальный режим: с помощью сервисной утилиты производителя переводим кассу Атол 30Ф в режим работы ЕНВД/АСПД (принтер документов).
  2. Установка совместимого драйвера: для работы в классическом режиме фискального регистратора без передачи данных устанавливаем драйвер торгового оборудования (например, проверенную версию ДТО 8.11 или совместимый драйвер АСПД).
  3. Настройка подключаемого оборудования в 1С: в справочнике ПодключаемоеОборудование удаляем или отключаем экземпляр типа ККТ с передачей данных.
  4. Добавление нового устройства: создаем запись с типом оборудования Фискальные регистраторы, выбираем соответствующий обработчик обслуживания драйвера и настраиваем COM-порт подключения.
  5. Тестирование печати: открываем смену и выполняем тестовую печать чека из рабочего места кассира (РМК). В данном режиме программа не ожидает криптографических реквизитов онлайн-чека, и документ выводится корректно.

Способ 2. Подключение кассы как Windows-принтера чеков

Разберем альтернативный вариант, если конфигурация не поддерживает старые драйверы фискальных регистраторов или требуется полностью исключить обращения к БПО:

  1. Установка драйвера печати: устанавливаем стандартный текстовый Windows-драйвер принтера чеков для устройств Атол.
  2. Настройка шаблона в 1С: в программе 1С настраиваем вывод товарных чеков или нефискальных квитанций через табличные документы, направляемые на установленный Windows-принтер.
  3. Печать документов: печать позиций, итогов и штрихкодов выполняется средствами макета 1С без вызова фискальных команд кассового ядра.

Способ 3. Использование массогабаритного макета (МГМ ФН) для целей тестирования

Посмотрим на сценарий, когда конфигурацию 1С:Розница необходимо протестировать именно по правилам 54-ФЗ с типом оборудования ККТ с передачей данных, но без покупки боевого фискального накопителя:

  1. Установка МГМ: устанавливаем в разъем кассы тестовый макет накопителя — МГМ ФН.
  2. Технологическая регистрация: регистрируем кассу в тестовом режиме с указанием тестовых реквизитов ОФД.
  3. Штатная работа: в 1С подключаем кассу как современную онлайн-ККТ через актуальные версии ДТО (9.х / 10.х). В этом случае драйвер возвращает полноценные массивы параметров, и ошибка разбора ответа не возникает.

Таким образом, для печати нефискальных чеков без ФН оптимальным решением является перевод устройства в режим ЕНВД с подключением через тип оборудования Фискальный регистратор, либо вывод документов через Windows-драйвер принтера.

← На главную