Как исправить ошибку 'none' is not a valid integer value при пробитии чека на кассе АТОЛ в 1С:Управление торговлей 10.3?

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

При подключении и настройке онлайн-касс АТОЛ (например, АТОЛ 30Ф, 22ПТК, 77Ф и др.) в конфигурации 1С:Управление торговлей 10.3 пользователи часто сталкиваются с ситуацией, когда кассовая смена открывается и закрывается без замечаний, тест драйвера проходит успешно, однако в момент непосредственной фискализации чека возникает ошибка: 'none' is not a valid integer value.

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

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

Текст ошибки 'none' is not a valid integer value представляет собой системное исключение EConvertError, генерируемое внутри внешней компоненты драйвера ККТ (библиотеки FprnM1C.dll / FprnM1C82_54FZ.dll). Ошибка происходит в момент разбора XML-пакета чека или вызова метода передачи позиций.

Проанализируем механизм передачи данных:

  1. Конфигурация 1С формирует описание фискального чека и передает ставку «Без НДС» строковым значением none в соответствии с обновленным форматом требований к подключаемому оборудованию.
  2. Устаревшая версия внешней компоненты или внутренняя обработка ожидает на входе целочисленный номер налога или секции и пытается выполнить преобразование строки "none" в целое число с помощью функции StrToInt.
  3. Поскольку строка "none" не является числом, драйвер прерывает выполнение операции и выбрасывает критическую ошибку, блокируя печать чека.

Таким образом, проблема заключается в рассинхронизации формата передачи данных: обновленный релиз конфигурации 1С уже формирует пакет чека по новому стандарту, а используемая обработка обслуживания или библиотека драйвера кассы еще не поддерживают обработку строкового литерала none.

Способ 1. Автоматическое обновление обработки обслуживания из 1С

Наиболее простой и быстрый способ решения проблемы — обновление используемой обработки обслуживания торгового оборудования непосредственно из информационной базы через портал 1С.

Выполним следующие шаги:

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

После обновления версии обработки перезапустим сеанс 1С и повторим попытку пробития чека.

Способ 2. Ручная замена обработки обслуживания и обновление драйвера ДТО

Если на рабочем месте кассира отсутствует прямой доступ к интернету или автоматическое обновление не изменило версию компоненты, выполним обновление вручную.

Для корректной работы фискализации чеков должны одновременно выполняться два обязательных условия:

  1. На компьютере установлен общий пакет драйверов торгового оборудования АТОЛ (ДТО) актуальной версии (8.14 и выше, либо современные сборки 8.16/10.x).
  2. В конфигурацию загружена обработка обслуживания ATOLKKT.epf с версией внешней компоненты, поддерживающей строковую передачу ставок НДС.

Рассмотрим пошаговый алгоритм ручного обновления:

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

Способ 3. Очистка кэша и перерегистрация внешней компоненты

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

  1. Полностью закроем все запущенные сеансы «1С:Предприятие».
  2. Перейдем в каталоги временных файлов текущего пользователя Windows (%TEMP% и %APPDATA%\1C) и удалим временные файлы и папки кэша конфигураций.
  3. Если в системе выполнялась ручная регистрация библиотек драйвера, запустим командную строку от имени администратора и выполним перерегистрацию актуальной библиотеки FprnM1C.dll с помощью утилиты regsvr32.
  4. Запустим 1С, откроем форму настройки торгового оборудования, заново проверим тест связи с ККТ и выполним тестовую печать чека.

Программная корректировка формирования XML-пакета чека

Если возможность быстрого обновления драйвера или обработки отсутствует, а работу торговой точки необходимо восстановить немедленно, проанализируем модуль обработки обслуживания ККТ. В процедуре подготовки данных чека найдем блок, отвечающий за заполнение ставки налога позиции, и добавим перехват значения "none":


// Пример корректировки передачи ставки НДС в модуле обработки обслуживания
Если ВРег(СокрЛП(СтавкаНДС)) = "NONE" Или ВРег(СокрЛП(СтавкаНДС)) = "БЕЗ НДС" Тогда
    // Если используемая версия DLL требует числового идентификатора ставки
    ТаблицаЧека.СтавкаНДС = 0; 
Иначе
    ТаблицаЧека.СтавкаНДС = СтавкаНДС;
КонецЕсли;

Такая доработка позволит обойти несовместимость типов данных в момент вызова методов устаревшей библиотеки драйвера до проведения штатного обновления всего программно-аппаратного комплекса.

← На главную