В типовой конфигурации «1С:Розница 2» при выполнении операции закрытия смены в интерфейсе рабочего места кассира (РМК) система автоматически создает, проводит документ ОтчетОРозничныхПродажах и открывает его форму на экране. В ряде торговых точек регламент требует так называемого «слепого закрытия смены»: кассиры не должны видеть итоговые суммы выручки и сверять их с фактической наличностью до сдачи денег администратору или инкассаторам.
Штатного пользовательского переключателя в настройках программы для скрытия этого документа нет, поэтому разберем несколько практических способов реализации данной задачи.
Наиболее простое и быстрое решение, которое позволяет предотвратить показ документа кассирам, заключается в проверке прав пользователя при создании или открытии формы документа ОтчетОРозничныхПродажах.
Разберем по шагам логику реализации:
ПросмотрОтчетовОРП или используем существующие административные роли, такие как ПолныеПрава).ОтчетОРозничныхПродажах в обработчике ПриСозданииНаСервере или ПриОткрытии добавим проверку:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Если у текущего пользователя нет административной роли, отменяем открытие формы
Если Не РольДоступна("ПросмотрОтчетовОРП") И Не РольДоступна("ПолныеПрава") Тогда
Отказ = Истина;
Возврат;
КонецЕсли;
// Типовой код процедуры
КонецПроцедуры
При таком подходе процедура закрытия смены создаст и проведет документ в информационной базе, но сама форма кассиру показана не будет.
Проанализируем второй вариант, позволяющий полностью убрать вызов формы без изменения типовой конфигурации и без снятия ее с поддержки.
В типовой обработке закрытия кассовой смены после архивации чеков и проведения документа вызывается метод ОткрытьФорму(). С помощью механизма расширений мы можем перехватить этот вызов:
&Вместо или &ИзменениеИКонтроль, скорректируем соответствующую клиентскую процедуру, закомментировав или удалив строку вызова формы ОткрытьФорму("Документ.ОтчетОРозничныхПродажах.ФормаОбъекта", ...).Это гарантирует, что программа завершит все регламентные операции с чеками ККМ, проведет документ по регистрам и просто вернет кассира в исходное состояние интерфейса без вывода лишних окон.
Рассмотрим сопутствующие детали, которые необходимо учесть при ограничении доступа к данным закрытия смены:
ОтчетОРозничныхПродажах, типовой код закрытия смены может завершиться системной ошибкой «Нарушение прав доступа». Формирование и проведение документа должно выполняться в привилегированном режиме на сервере.