Как настроить печать чеков из 1С на онлайн-кассе Атол без фискального накопителя?

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

При автоматизации торговых точек иногда возникает потребность использовать онлайн-кассу (например, Атол 30Ф или Атол 11Ф) для внутренних нужд или в переходный период без установки фискального накопителя (ФН). В таких сценариях кассовый аппарат должен выполнять роль обычного принтера чеков или чекопечатающей машины (ЧПМ).

Однако при попытке типовой печати чеков из конфигураций 1С (таких как 1С:Розница или 1С:Управление торговлей) пользователи часто сталкиваются с ошибкой Индекс находится за границами массива при проведении документа Чек ККМ, а также с некорректным отображением системы налогообложения (СНО) на чековой ленте. Разберем детально причины такого поведения и рассмотрим все способы настройки оборудования.

Почему касса без ФН выдает ошибку при пробитии Чека ККМ?

Проанализируем механику взаимодействия платформы 1С и кассового оборудования. Типовая Библиотека подключаемого оборудования (БПО) при пробитии фискального чека через документ Чек ККМ выполняет жесткий сценарий фискализации:

  1. 1С отправляет в драйвер ККТ команду открытия фискального документа с составом позиций.
  2. Драйвер передает команду в ККТ, где чек должен быть записан в память ФН.
  3. После печати драйвер возвращает в 1С структуру фискальных параметров (номер фискального документа, фискальный признак, номер смены, номер чека).
  4. Модули БПО обращаются к возвращенному массиву данных для записи реквизитов фискализации в базу 1С.

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

При этом печать из документа Реализация товаров и услуг или печать товарного чека может работать штатно, так как в этих режимах касса вызывается как устройство печати текстовых нефискальных документов (слип-чеков), где обратного ответа с фискальными реквизитами не требуется.

Способ 1. Подключение ККТ в режиме принтера чеков Windows

Самый надежный и стабильный способ использовать онлайн-кассу без ФН — перевести ее в режим обычного принтера документов. В этом случае касса исключается из состава фискальных регистраторов БПО, а печать выполняется через стандартные драйверы печати операционной системы.

  1. Установим на рабочий компьютер драйвер принтера чеков от производителя оборудования (для касс Атол используется специализированный драйвер принтера чеков Windows).
  2. Убедимся, что устройство корректно определилось в оснастке Устройства и принтеры операционной системы и может напечатать тестовую страницу.
  3. В настройках торгового оборудования 1С отключим устройство из раздела ККТ с передачей данных.
  4. Добавим оборудование с типом Принтер чеков или настроим печать товарных чеков/накладных напрямую на выбранный Windows-принтер через стандартные табличные документы.

Способ 2. Переключение кассы в протокол ESC/POS

Многие модели ККТ (включая Атол 11Ф и 30Ф) поддерживают режим прямой печати по стандартному протоколу ESC/POS через виртуальный COM-порт. Это позволяет отправлять команды форматирования текста напрямую в печатающую головку кассы.

  1. Запустим утилиту Тест драйвера ККТ (версии 8.x или 10.x).
  2. Перейдем в раздел Параметры ККТ и переключим рабочий протокол устройства в режим ESC/POS.
  3. В конфигурации 1С в справочнике подключаемого оборудования добавим устройство с типом Принтер чеков, указав драйвер 1С:Принтер чеков (ESC/POS) и настроив параметры подключения к соответствующему COM-порту.

Способ 3. Программная корректировка модулей БПО в 1С

Если на рабочем месте кассира (РМК) критически важно сохранить привычный процесс оформления продаж через документ Чек ККМ, потребуется доработка обработки ответа фискализации в модулях торгового оборудования.

Разберем, как обойти ошибку переполнения границ массива. В процедуре обработки результатов фискализации чека необходимо предусмотреть проверку заполненности выходных параметров от драйвера:


// Пример проверки структуры ответа от ККТ без ФН
Если ВыходныеПараметры = Неопределено Или ВыходныеПараметры.Количество() = 0 Тогда
    // Заполняем массив фиктивными значениями для нефискального режима
    ВыходныеПараметры = Новый Массив();
    ВыходныеПараметры.Добавить("000000000000"); // Фиктивный номер ФД
    ВыходныеПараметры.Добавить("0000000000");   // Фиктивный ФПД
    ВыходныеПараметры.Добавить(1);              // Номер смены
    ВыходныеПараметры.Добавить(1);              // Номер чека за смену
КонецЕсли;

Такая заглушка предотвратит падение транзакции документа Чек ККМ, и чек будет успешно закрыт в учетной системе.

Корректировка системы налогообложения (СНО) на чеке

Часто при нефискальной печати на кассе Атол в чеке выводится надпись СНО: ОСН, даже если в 1С для организации задана УСН или ЕНВД. Это происходит потому, что нефискализированная ККТ игнорирует тег 1055 (применяемая система налогообложения) из пакета данных 1С и берет значение по умолчанию из внутренней таблицы настроек.

Для исправления СНО выполним следующие действия:

  1. Откроем утилиту Тест драйвера ККТ и установим связь с кассой.
  2. Перейдем в раздел Параметры ККТ (или таблицы настроек оборудования).
  3. Найдем секцию Системы налогообложения или СНО по умолчанию.
  4. Установим флаг напротив требуемой системы (например, УСН Доход или ЕНВД) и снимем признак с ОСН.
  5. Сохраним параметры в энергонезависимую память кассового аппарата.

После применения настроек касса будет печатать корректную СНО даже при формировании нефискальных документов.

← На главную