Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 09:50

Ограничение по отбору в отчете СКД

Автор Alter, 14 мар 2019, 10:51

0 Пользователей и 1 гость просматривают эту тему.

Alter

Добрый день! написан отчет на скд "продажи за период", где в качестве параметра отбора присутствует менеджер (т.е. пользователь). Нужно сделать так, чтобы каждый менеджер мог сформировать отчет только по своим продажам, т.е. мог выбрать только себя в отборе, а при попытке выбрать другого пользователя выводился либо пустой отчет, либо сообщение об ошибке.
При этом у пользователя с полными правами была бы возможность вывести отчет по любому менеджеру, либо всем сразу.
Буду очень благодарна за любые подсказки, как это сделать)

LexaK

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

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

#Если ТолстыйКлиентОбычноеПриложение Тогда
НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
НастройкиОтчета.ПараметрыДанных.УстановитьЗначениеПараметра("Сотрудник", ПараметрыСеанса.ТекущийСотрудник); //или где у вас там Текущий Пользователь?
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета);
#КонецЕсли
КонецПроцедуры

если помогло нажмите: Спасибо!

Alter

Цитата: LexaK от 14 мар 2019, 12:05
так отбор по Менеджеру вообще уберите с формы отчета, а само значение подставляйте
а потом в процедуре программно задайте параметр, примерно так

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

#Если ТолстыйКлиентОбычноеПриложение Тогда
НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
НастройкиОтчета.ПараметрыДанных.УстановитьЗначениеПараметра("Сотрудник", ПараметрыСеанса.ТекущийСотрудник); //или где у вас там Текущий Пользователь?
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета);
#КонецЕсли
КонецПроцедуры


Спасибо! А программно - это в модуле самого отчета?
В принципе получается задать пользователя в конструкторе самого запроса, т.е. задав параметр ПартнерОсновнойМенеджер = &Менеджер, а в выражении параметра &Менеджер указав Пользователи.ТекущийПользователь.
Но в этом случае не получается задать видимость отчета по всем менеджерам для конкретных пользователей. Т.е, например, руководитель хочет видеть продажи по всем менеджерам, но его самого в списке менеджеров нет.
Как можно задать условие, чтобы для конкретного текущего пользователя не было ограничений по выводу данных?


LexaK

ЦитироватьВ принципе получается задать пользователя в конструкторе самого запроса, т.е. задав параметр ПартнерОсновнойМенеджер = &Менеджер, а в выражении параметра &Менеджер указав Пользователи.ТекущийПользователь.
или так, вариантов множество
ЦитироватьНо в этом случае не получается задать видимость отчета по всем менеджерам для конкретных пользователей. Т.е, например, руководитель хочет видеть продажи по всем менеджерам, но его самого в списке менеджеров нет.
так сделайте отбор через ИЛИ
Где
...
и ( Сотрудник = &Менеджер или &ЭтоРуководитель = Истина )


если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск