В процессе автоматизации розничной торговли часто возникает ситуация, когда денежный ящик, подключенный к фискальному регистратору, исправно открывается по нажатию специальной кнопки в РМК (Рабочее место кассира), но при этом "молчит" во время фактической печати чека или выбора оплаты наличными. Особенно остро этот вопрос стоит перед пользователями базовых версий конфигураций, где внесение изменений в программный код невозможно. Разберем детально, как решить эту задачу, проанализируем настройки оборудования и выясним причины такого поведения системы.
Для начала проанализируем, как именно происходит управление денежным ящиком. Важно понимать, что команда на открытие может исходить из двух источников:
Если в вашем случае кнопка "Открыть ДЯ" работает, это означает, что физическое соединение исправно и драйвер понимает команду. Отсутствие открытия при печати чека говорит о том, что либо 1С не посылает нужную команду в этом бизнес-процессе, либо в самой кассе отключена функция автоматического открытия по завершении операции.
Поскольку в 1С:Розница (особенно базовой) настройки могут быть ограничены, самым надежным методом является "программирование" самой кассы через драйвер. Это заставит ККТ открывать ящик при печати любого чека, независимо от того, что "думает" об этом 1С. Рассмотрим по шагам, как это сделать в ДТО 8.11 (Драйвер торгового оборудования):
Устройство включено).Важно: Проверьте также параметры импульса в этой же таблице. Если значение длительности импульса слишком мало, электромагнитный замок ящика может просто не успеть сработать, хотя щелчок будет слышен.
Выясним, включена ли поддержка денежного ящика в самой системе 1С. Иногда флаг в настройках оборудования влияет на то, будет ли драйвер активировать дополнительные команды при печати. Пройдем по пути:
Иногда помогает переключение модели в настройках 1С. Например, если Атол 30Ф работает некорректно, попробуйте выбрать модель "Атол 11Ф" или универсальный драйвер "Атол:ККТ с передачей данных в ОФД (54-ФЗ)". Протоколы у этих моделей схожи, но логика формирования команд в 1С может отличаться, что решит проблему с импульсом.
Если вы используете версию ПРОФ и имеете возможность вносить изменения в конфигурацию, можно принудительно добавить команду открытия ящика в процедуру печати чека. Рассмотрим пример логики, которую необходимо внедрить в модуль формы РМК или в общие модули обработки торгового оборудования. Выясним, где происходит завершение оплаты.
Обычно это процедура, связанная с методом ПечатьЧека(). Мы можем добавить вызов команды открытия перед или после печати:
// Пример логики вызова открытия ящика через объект драйвера
Если ОбъектДрайвера.Открыт Тогда
Результат = ОбъектДрайвера.ОткрытьДенежныйЯщик(ПараметрыПодключения.ИДУстройства);
Если Не Результат Тогда
ТекстОшибки = "";
ОбъектДрайвера.ПолучитьОшибку(ТекстОшибки);
ЗаписатьЛог("Не удалось открыть ДЯ: " + ТекстОшибки);
КонецЕсли;
КонецЕсли;
Однако помните, что в современных типовых конфигурациях на БСП (Библиотека стандартных подсистем) прямое обращение к драйверу не приветствуется. Нужно использовать программный интерфейс МенеджерОборудованияКлиент.
Проанализируем аппаратную часть. Модель Атол 30Ф — это бюджетное решение. У нее есть специфическая особенность: разъем для денежного ящика выдает напряжение 24 Вольта. Если ваш денежный ящик рассчитан на 12 Вольт, он может работать нестабильно: открываться через раз или не открываться вовсе при большой нагрузке на блок питания (которая как раз возникает в момент печати чека).
Также стоит обратить внимание на распиновку. Если при нажатии кнопки "Открыть ДЯ" в 1С всё работает, значит, кабель обжат правильно. Но если вы используете переходники или самодельные кабели, убедитесь, что сигнал Open Drawer попадает на нужный контакт разъема RJ-11. У Атола это обычно 2-й и 5-й контакты.
Для быстрого решения без программирования выполните следующие действия:
Таким образом, мы выяснили, что наиболее вероятная причина — отключенная опция в памяти самого фискального регистратора. Настройка таблиц кассы является наиболее эффективным способом решения проблемы для 1С:Розница Базовая.