Как отключить открытие Отчета о розничных продажах при закрытии кассовой смены в 1С:Розница?

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

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

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

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

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

Разберем по шагам логику реализации:

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Если у текущего пользователя нет административной роли, отменяем открытие формы
    Если Не РольДоступна("ПросмотрОтчетовОРП") И Не РольДоступна("ПолныеПрава") Тогда
        Отказ = Истина;
        Возврат;
    КонецЕсли;

    // Типовой код процедуры
    
КонецПроцедуры

При таком подходе процедура закрытия смены создаст и проведет документ в информационной базе, но сама форма кассиру показана не будет.

Способ 2. Отключение вызова формы через расширение конфигурации

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

В типовой обработке закрытия кассовой смены после архивации чеков и проведения документа вызывается метод ОткрытьФорму(). С помощью механизма расширений мы можем перехватить этот вызов:

  1. Подключим расширение для конфигурации.
  2. Добавим в расширение обработку закрытия смены или форму РМК, где инициируется завершение смены.
  3. Используя директиву &Вместо или &ИзменениеИКонтроль, скорректируем соответствующую клиентскую процедуру, закомментировав или удалив строку вызова формы ОткрытьФорму("Документ.ОтчетОРозничныхПродажах.ФормаОбъекта", ...).

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

Важные нюансы настройки «слепого закрытия смены»

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

  1. Настройка прав на уровне метаданных: если полностью отобрать у роли кассира право на просмотр документа ОтчетОРозничныхПродажах, типовой код закрытия смены может завершиться системной ошибкой «Нарушение прав доступа». Формирование и проведение документа должно выполняться в привилегированном режиме на сервере.
  2. Чековая лента (Z-отчет): фискальный регистратор при закрытии смены по умолчанию печатает итоговый отчет с суммами выручки. Чтобы кассир не видел итоги на чеке, необходимо через драйвер ККТ настроить шаблон отчета о закрытии смены (отключить печать счетчиков и финансовых итогов, если данная возможность поддерживается прошивкой ККТ).
  3. Автоматическая инкассация: чтобы исключить ручной ввод кассиром суммы из отчета, в настройках кассы ККМ рекомендуется настроить автоматическую выемку всей наличности при закрытии смены.
← На главную