Как ограничить просмотр остатков в кассе для менеджеров в 1С:Управление торговлей 11?

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

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

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

---

Анализ проблемы и штатной ролевой модели

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

Если у пользователя есть доступ к отчету «Ведомость по денежным средствам» или права на просмотр реквизитов кассы в списках документов, он сможет увидеть общие остатки. Наша задача — разделить право на проведение операций (создание документов ПКО и РКО) и право на получение информации о текущем балансе кассы.

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

---

Способ 1. Использование механизма групп доступа и RLS (Разграничение прав на уровне записей)

Самый надежный способ ограничить видимость данных на уровне базы данных — использовать механизм RLS. Мы можем настроить систему так, чтобы менеджеры видели и могли работать только со своими операционными кассами (или кассами ККМ), в то время как основная «большая» касса предприятия будет для них полностью скрыта.

Выполним настройку по шагам:

  1. Перейдем в раздел НСИ и администрирование — Настройка пользователей и прав — Группы доступа.
  2. Создадим новую группу доступа, например, «Менеджеры-кассиры».
  3. В качестве профиля выберем типовой профиль или создадим копию профиля «Кассир», исключив из него роль ЧтениеОстатковДенежныхСредств (если используется актуальная версия конфигурации, где эта роль выделена отдельно).
  4. На вкладке Ограничения доступа для вида доступа Кассы установим значение «Все запрещены, исключения назначаются в группах доступа».
  5. В табличную часть добавим только те конкретные кассы (например, «Касса ККМ Менеджера 1»), с которыми данный сотрудник имеет право работать физически. Основную кассу офиса в этот список добавлять не нужно.

При такой настройке менеджер сможет принимать деньги от покупателей в свою локальную кассу. В конце смены деньги будут передаваться (инкассироваться) в основную кассу предприятия с помощью документа «Выемка» или «Передача ДС». Как только деньги попадают в основную кассу, менеджер полностью теряет к ним визуальный доступ.

---

Способ 2. Внедрение бизнес-процесса «Заявки на расходование денежных средств»

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

Разберем, как работает эта схема:

В разделе НСИ и администрирование — Казначейство включим опцию Заявки на расходование денежных средств. Теперь процесс работы с деньгами кардинально меняется:

Этот методический подход полностью решает проблему «самовольного» распределения финансов менеджерами, даже если они косвенно могут догадываться об остатках в кассе.

---

Способ 3. Визуальное скрытие остатков на уровне интерфейса

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

Выясним, как скрыть ненужные поля без программирования:

  1. Откроем форму списка документов (например, «Приходные кассовые ордера» или список касс).
  2. В правом верхнем углу нажмем кнопку Еще и выберем пункт Изменить форму....
  3. В открывшемся дереве элементов найдем колонки, отвечающие за отображение сумм остатков или итоговые строки. Снимем с них флажки видимости.
  4. Для того чтобы менеджер не смог вернуть эти колонки обратно через ту же настройку, администратор системы может зафиксировать настройки формы. Для этого в режиме «Конфигуратор» или через администрирование пользователей можно установить запрет на изменение формы для конкретной группы пользователей.

Также обратите внимание на настройки Рабочего места кассира (РМК). В настройках РМК присутствует отдельная функциональная опция «Отображать остаток денежного ящика». Если её отключить, кассир на фронт-офисе не будет видеть сумму в ящике до момента снятия вечернего отчета.

---

Способ 4. Программное ограничение через механизм расширений (для разработчиков)

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

Рассмотрим пример реализации программного скрытия остатков денежных средств. Создадим расширение и добавим в него обработчик события при создании формы списка касс или отчетов по денежным средствам.

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


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

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


// В расширении перехватываем получение данных для отчетов
&Вместо("ПолучитьДанныеОстатков")
Функция Расш1_ПолучитьДанныеОстатков(ПараметрыЗапроса)
    
    Если НЕ РольДоступна("ПросмотрДенежныхСредств") Тогда
        // Возвращаем пустую таблицу, чтобы предотвратить вывод остатков в отчеты
        Возврат Новый ТаблицаЗначений;
    КонецЕсли;
    
    Возврат ПродолжитьВызов(ПараметрыЗапроса);
    
КонецФункции

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

---

Резюме и рекомендации

Мы подробно разобрали различные способы скрытия остатков денежных средств от менеджеров в программе 1С:Управление торговлей 11. Выбор конкретного метода зависит от масштаба вашей компании и критичности решаемой задачи:

← На главную