Как исправить ошибку «Неверная длина поля [192]» при печати чеков с дробным количеством в 1С:Управление торговлей 11.4 на ФР АТОЛ?

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

Мы сталкиваемся с достаточно распространенной проблемой, когда при попытке пробить чек ККМ в программе 1С:Управление торговлей 11.4, содержащий товары с дробным количеством (например, 0.5 килограмма или 0.25 метра), фискальный регистратор АТОЛ выдает ошибку: «Неверная длина поля [192]». Если количество целое, чеки печатаются без проблем, что указывает на специфичность ошибки, связанной именно с дробными значениями. Давайте вместе разберем причины возникновения этой ошибки и найдем эффективное решение.

В чем заключается суть проблемы «Неверная длина поля [192]»?

Проанализируем природу этой ошибки. Фискальные регистраторы АТОЛ, как и многие другие, работают по определенным протоколам обмена данными. При передаче информации о позициях чека (наименование, цена, количество, сумма) из 1С в драйвер фискального регистратора, а затем в само устройство, каждое поле должно соответствовать заданному формату. Ошибка «Неверная длина поля [192]» прямо указывает на то, что поле с номером 192, отвечающее за количество знаков после запятой для количества товаров, не соответствует ожидаемому значению.

Причина кроется в расхождении настроек точности между 1С и самим фискальным регистратором или его драйвером. 1С может передавать дробное количество с одной точностью (например, 0.50), а драйвер или ФР ожидает другую (например, 0.500) или вообще принимает только целые значения при определенных настройках. В контексте АТОЛ, часто ФР настроен принимать количество с точностью до двух знаков после запятой, тогда как для полноценной работы с дробными единицами измерения (килограммы, метры) нам требуется точность до трех знаков (тысячных долей).

Для примера, если мы продаем 0.5 кг товара, 1С может передать это значение как 500 (умножив на 1000 для внутренней обработки), или как 0.5. Если драйвер ККТ настроен принимать всего два знака после запятой, а ему передают три (например, 0.500), или он ожидает целое число, а получает дробное, то возникает ошибка.

Основное решение: Настройка параметра 192 в драйвере АТОЛ

Самое распространенное и эффективное решение проблемы «Неверная длина поля [192]» заключается в корректной настройке параметра 192 в драйвере фискального регистратора АТОЛ. Этот параметр отвечает за количество знаков после запятой для передаваемого количества товаров в чеке. По умолчанию он может быть установлен в 0 или 2, что приводит к ошибке при попытке пробить дробное количество (например, 0.500 кг). Нам нужно изменить его значение на 3.

Рассмотрим пошаговую инструкцию по выполнению этой настройки, используя стандартную утилиту «Тест драйвера ККТ» от АТОЛ.

  1. Запуск утилиты «Тест драйвера ККТ» АТОЛ.

    Прежде всего, нам необходимо найти и запустить программу «Тест драйвера ККТ». Обычно она устанавливается вместе с драйверами фискального регистратора и находится в папке установки драйвера (например, C:\Program Files (x86)\ATOL\Drivers\bin\TestDrv.exe или через меню «Пуск» -> «АТОЛ» -> «Тест драйвера ККТ»). Убедитесь, что 1С закрыта, чтобы избежать конфликтов доступа к оборудованию, которое может монопольно использовать фискальный регистратор.

  2. Подключение к фискальному регистратору.

    После запуска утилиты, вы увидите главное окно. Мы должны убедиться, что драйвер правильно подключен к нашему фискальному регистратору. Для этого:

    1. Нажмите кнопку «Настройка свойств» (или «Параметры оборудования», название может незначительно отличаться в разных версиях драйвера).
    2. В открывшемся окне проверьте выбранный тип оборудования (например, «Фискальные регистраторы») и канал связи (COM-порт, USB, Ethernet, TCP/IP). Убедитесь, что параметры соответствуют подключенному ФР. Выбираем порт, скорость обмена данными.
    3. Нажмите «Проверка связи» или «Подключить». Если все настроено верно, вы увидите сообщение об успешном подключении и информацию о вашей ККТ (модель, заводской номер, прошивка).

  3. Переход к параметрам устройства.

    После успешного подключения, нам нужно получить доступ к низкоуровневым настройкам фискального регистратора.

    1. В главном окне «Теста драйвера ККТ» найдите раздел «Параметры оборудования», «Таблицы» или «Низкоуровневое программирование». В зависимости от версии драйвера и модели ФР, путь может отличаться.
    2. Нас интересуют параметры, которые хранятся непосредственно в памяти ККТ.

  4. Нахождение и изменение параметра 192.

    Мы ищем параметр с номером 192. Этот параметр отвечает за «Количество знаков после запятой для количества».

    1. В разделе «Параметры оборудования» или похожем, вы увидите список различных параметров. Найдите параметр под номером 192. Он может быть подписан как «Количество знаков после запятой для количества» или просто «Кол-во».
    2. Текущее значение этого параметра, скорее всего, будет 0 или 2. Наша задача — изменить его на 3. Это позволит фискальному регистратору корректно обрабатывать количества с тремя знаками после запятой (например, 0.500).
    3. Если вы используете версию драйвера, где параметры представлены в виде таблиц, вам может понадобиться перейти в раздел «Таблицы», выбрать «Таблицу 2» (она часто содержит настройки итогов и точности) и найти строку, соответствующую параметру 192. Измените его значение на 3.

  5. Сохранение изменений.

    После того как вы изменили значение параметра 192 на 3, обязательно сохраните эти изменения в фискальном регистраторе. Обычно для этого есть кнопка «Записать», «Установить» или «Применить» в окне настроек. Без сохранения изменения не будут применены, и проблема не исчезнет. Для некоторых ФР может потребоваться перезагрузка (выключить/включить) после сохранения.

  6. Проверка работы в 1С.

    После всех настроек закройте утилиту «Тест драйвера ККТ». Запустите 1С:Управление торговлей и попробуйте пробить чек с дробным количеством товара. В большинстве случаев ошибка «Неверная длина поля [192]» должна исчезнуть, и чек будет распечатан корректно.

Дополнительные проверки и возможные причины (если основное решение не помогло)

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

Актуальность драйвера ККМ

Первым делом всегда следует убедиться, что вы используете актуальную версию драйвера фискального регистратора АТОЛ. Устаревшие драйверы могут иметь ошибки или не поддерживать новые протоколы обмена данными, что особенно актуально при обновлении версий 1С. Проверьте сайт производителя АТОЛ на наличие последних версий драйверов и, при необходимости, обновите их. После обновления всегда рекомендуется перезагрузить компьютер и заново выполнить настройку параметра 192, так как в новом драйвере настройки могут сброситься или измениться.

Настройки точности в самой 1С

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

  1. Использование отладчика для анализа передаваемых данных.

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

    В конфигурациях на управляемых формах, таких как УТ 11.4, за взаимодействие с подключаемым оборудованием отвечает подсистема «Библиотека подключаемого оборудования» (БПО). Откройте конфигуратор, найдите общий модуль ПодключаемоеОборудованиеКлиентСервер или ПодключаемоеОборудованиеВызовСервера. В нем найдите процедуры, отвечающие за печать строк чека, например, ПечатьСтрокиТаблицыЧекаККМ или ПечатьТовараВЧеке.

    Поставьте точку останова перед вызовом метода драйвера ККМ (например, Драйвер.ПечатьСтроки(...)) и посмотрите, какое значение переменной, передающей количество, имеет в этот момент. Если 1С передает 0.5, а ФР через драйвер ожидает 500 (умноженное на 1000), то мы можем увидеть несоответствие. В таких случаях, возможно, потребуется небольшая доработка кода для умножения количества на 1000 перед передачей в драйвер, или обеспечение того, чтобы данные передавались с нужной точностью.

  2. Проверка макетов драйверов ККМ.

    В некоторых случаях, особенности работы с ФР могут быть заложены в макетах драйверов. В конфигурации 1С можно найти объекты МакетыДрайверовККМ. Эти макеты могут содержать специфические настройки или шаблоны для взаимодействия с различными моделями фискальных регистраторов. Изучите соответствующий макет для вашего АТОЛ, возможно, там есть параметры, влияющие на точность или формат передачи количества. Изменение макетов – это более сложная задача, требующая глубоких знаний 1С и протоколов ККТ.

  3. Параметр 191 (Количество знаков после запятой для цены).

    Хотя ошибка «Неверная длина поля [192]» явно указывает на проблему с количеством, иногда некорректная настройка параметра 191 «Количество знаков после запятой для цены» также может косвенно влиять на процесс печати чека. Убедитесь, что этот параметр установлен в разумное значение (обычно 2). Это менее вероятно, но стоит иметь в виду как дополнительную проверку.

  4. «Использовать драйвер ККМ без подключаемого оборудования».

    В некоторых ситуациях, для диагностики, можно попробовать в 1С в настройках пользователя снять или установить галку «Использовать драйвер ККМ без подключаемого оборудования» (этот путь может быть: РМК -> Настройки пользователя). Это скорее «костыль» или диагностический шаг, который может помочь временно обойти проблему или сузить круг поиска, но не является системным решением. Он может изменить способ взаимодействия 1С с драйвером, что в свою очередь повлияет на передачу данных. Однако, мы рекомендуем сосредоточиться на системных решениях, таких как настройка ФР.

Заключение

В абсолютном большинстве случаев, ошибка «Неверная длина поля [192]» при печати чеков с дробным количеством на фискальных регистраторах АТОЛ в 1С:Управление торговлей 11.4 решается корректной настройкой параметра 192 в драйвере АТОЛ на значение 3. Мы подробно рассмотрели все шаги по выполнению этой настройки через утилиту «Тест драйвера ККТ», а также проанализировали дополнительные возможные причины и пути решения. Следуя этим рекомендациям, вы сможете наладить бесперебойную работу вашего торгового оборудования и корректно пробивать чеки с любым типом количества товаров.

← На главную