Небольшие запреты пользователям в Розница 2.3
Обратился клиент с просьбой несколько ограничить возможности кассиров в Розница 2.3.
Попросил, чтобы из внутреннего перемещения нельзя было открыть поступление:
Сделал — запретил открывать форму поступления:
&НаКлиенте Процедура дор_ПриОткрытииПеред(Отказ) Если КЭШ.ЭтоКассир() Тогда Отказ = истина; ПоказатьПредупреждение(, "У Вас недостаточно прав просматривать документ поступления"); КонецЕсли; КонецПроцедуры
Работает так:
Далее, попросил убрать возможность просматривать закупочные цены. Сделал неотключаемый фильтр по виду цен (расширение регистра сведений ЦеныНоменклатуры):
&НаСервере Процедура дор_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) //Осипов 2023-09-01 Кассиру - всегда отбор по розничной цене Если КЭШ.ЭтоКассир() Тогда ЭлементОтбора = ПолучитьОтборДинамическогоСписка(Список, "ВидЦены"); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВидЦены"); ЭлементОтбора.ПравоеЗначение = Справочники.ВидыЦен.НайтиПоРеквизиту("Идентификатор", "Розничная"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.Использование = Истина; КонецЕсли; КонецПроцедуры Функция ПолучитьОтборДинамическогоСписка(Список, Представление) Экспорт Для Каждого ЭлементОтбора ИЗ Список.Отбор.Элементы Цикл Если ЭлементОтбора.Представление = Представление Тогда Возврат ЭлементОтбора; КонецЕсли; КонецЦикла; ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.Представление = Представление; ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.Использование = ложь; Возврат ЭлементОтбора; КонецФункции
Самого кассира определяю в модуле с повторным использованием значений на время сеанса КЭШ через принадлежность к группе доступа Кассир:
Функция ДоступнаГруппаДоступа(НаименованиеГруппы) Экспорт З = Новый Запрос( "ВЫБРАТЬ | Т.Ссылка КАК Ссылка |ИЗ | Справочник.ГруппыДоступа.Пользователи КАК Т |ГДЕ | Т.Ссылка.Наименование = &Наименование | И Т.Пользователь = &Пользователь" ); З.УстановитьПараметр("Наименование", НаименованиеГруппы); З.УстановитьПараметр("Пользователь", Пользователи.ТекущийПользователь()); Выборка = З.Выполнить().Выбрать(); Возврат Выборка.Следующий(); КонецФункции Функция ЭтоКассир() Экспорт Возврат ДоступнаГруппаДоступа("Кассир"); КонецФункции
Среда: Розница 2.3.14.26 Объем: 1 час
Свежие комментарии