УТ 11.4.14.Ограничение прав на просмотр себестоимости.
Найденные решения
(12) Вот смотри. Не так давно делал похожий (но более правильный) заказ. Надо было сделать, чтобы при любых раскладах Помощник менеджера по продажам видел только ту прибыль, что по документам с его авторством. Стандартные ограничения РЛС не подошли. Пришлось лишить в его профиле роли "Отчеты руководителя отдела продаж", сделать в расширении Роль по допуску к отчету Валовая прибыль и себестоимость продаж. А вот отчет чтобы не настраивал менеджер всегда будет отбор по этому менеджеру. Примерно так же можно убрать и ресурсы себестоимость и рентабельность
С остальными отчетами (типа Движения документов) можно поступить примерно так же.
НО. Еще раз, на мой взгляд уж принесенную прибыль своих продаж менеджер имеет право видеть.
Модуль объекта заимствованного отчета Валовая прибыль и себестоимость продаж
С остальными отчетами (типа Движения документов) можно поступить примерно так же.
НО. Еще раз, на мой взгляд уж принесенную прибыль своих продаж менеджер имеет право видеть.
Модуль объекта заимствованного отчета Валовая прибыль и себестоимость продаж
&Перед("ПриКомпоновкеРезультата")
Процедура РасшПД_ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
Если НЕ РольДоступна("ПолныеПрава")И НЕ РольДоступна("ОтчетыРуководителяОтделаПродаж") Тогда
ТекущийПользователь = ПользователиКлиентСервер.ТекущийПользователь();
НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
Эл = ПроверкаНаличияОтбора(НастройкиОтчета.Отбор.Элементы);
Если Эл.Есть Тогда
ИндОтбора = НастройкиОтчета.Отбор.Элементы.Индекс(Эл.СтрокаКоллекции);
НашОтбор = НастройкиОтчета.Отбор.Элементы[ИндОтбора];
НашОтбор.Использование = Истина;
НашОтбор.ПравоеЗначение = ТекущийПользователь;
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета);
Иначе
ПолеМенеджер = КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Менеджер");
НовыйОтбор = НастройкиОтчета.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовыйОтбор.ЛевоеЗначение = ПолеМенеджер.Поле;
НовыйОтбор.ПравоеЗначение = ТекущийПользователь;
НовыйОтбор.Использование = Истина;
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Функция ПроверкаНаличияОтбора(Коллекция)
Галка = Ложь;
Элем = Неопределено;
Для каждого Эл из Коллекция Цикл
Если Строка(Эл.ЛевоеЗначение) = "Менеджер" Тогда
Галка = Истина;
Элем = Эл;
Прервать;
КонецЕсли;
КонецЦикла;
Возврат Новый Структура ("Есть,СтрокаКоллекции",Галка,Элем);
КонецФункции
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4)Спасибо ) теперь понял что кое где что то сделали не так.
Тогда как вариант изменить типовой отчет валовая прибыль убирая с него колонки с себестоимостью и рентабельностью при компоновке результатов.
мы так ставили принудительный отбор на "запрещенную группу номенклатуры" наверняка колонки убрать для вывода тоже возможно. Еще правда остануться цены, да и в типовых куча печ.форм с анализом
Тогда как вариант изменить типовой отчет валовая прибыль убирая с него колонки с себестоимостью и рентабельностью при компоновке результатов.
мы так ставили принудительный отбор на "запрещенную группу номенклатуры" наверняка колонки убрать для вывода тоже возможно. Еще правда остануться цены, да и в типовых куча печ.форм с анализом
(5) Скопировать Роль "Отчеты по продажам" в расширение.
Убрать из скопированной роли доступ к отчету "выручка и себестоимость продаж"
Убрать из профиля менеджера по продажам роль Отчеты по продажам
Добавить менеджеру роль из расширения
Сделать в расширении простейший отчет по выручке за период
Убрать из скопированной роли доступ к отчету "выручка и себестоимость продаж"
Убрать из профиля менеджера по продажам роль Отчеты по продажам
Добавить менеджеру роль из расширения
Сделать в расширении простейший отчет по выручке за период
"Тогда как вариант изменить типовой отчет валовая прибыль убирая с него колонки с себестоимостью и рентабельностью при компоновке результатов."©
ТОгда учти, что предопределенных вариантов этого отчета вагон и телега. Предусмотреть надо очистку себестоимости во всех вариантах
ТОгда учти, что предопределенных вариантов этого отчета вагон и телега. Предусмотреть надо очистку себестоимости во всех вариантах
(9) Правильные вопросы ставишь. А еще, например, есть док Установка цен, где легко увидеть и высчитать цену закупки и наценку. А подумать, так и еще найти можно. Отсюда сомнения, может задача поставлена неправильно? Нельзя заниматься продажами и не видеть главного в результатах работы. Может лучше пусть видит всё, но только свое? Свои контрагенты или категории номенклатуры или еще что-то. Это будет более правильное решение. Ну..... или уволить на фиг менеджера которому до такой степени нет доверия
(12) Вот смотри. Не так давно делал похожий (но более правильный) заказ. Надо было сделать, чтобы при любых раскладах Помощник менеджера по продажам видел только ту прибыль, что по документам с его авторством. Стандартные ограничения РЛС не подошли. Пришлось лишить в его профиле роли "Отчеты руководителя отдела продаж", сделать в расширении Роль по допуску к отчету Валовая прибыль и себестоимость продаж. А вот отчет чтобы не настраивал менеджер всегда будет отбор по этому менеджеру. Примерно так же можно убрать и ресурсы себестоимость и рентабельность
С остальными отчетами (типа Движения документов) можно поступить примерно так же.
НО. Еще раз, на мой взгляд уж принесенную прибыль своих продаж менеджер имеет право видеть.
Модуль объекта заимствованного отчета Валовая прибыль и себестоимость продаж
С остальными отчетами (типа Движения документов) можно поступить примерно так же.
НО. Еще раз, на мой взгляд уж принесенную прибыль своих продаж менеджер имеет право видеть.
Модуль объекта заимствованного отчета Валовая прибыль и себестоимость продаж
&Перед("ПриКомпоновкеРезультата")
Процедура РасшПД_ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
Если НЕ РольДоступна("ПолныеПрава")И НЕ РольДоступна("ОтчетыРуководителяОтделаПродаж") Тогда
ТекущийПользователь = ПользователиКлиентСервер.ТекущийПользователь();
НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
Эл = ПроверкаНаличияОтбора(НастройкиОтчета.Отбор.Элементы);
Если Эл.Есть Тогда
ИндОтбора = НастройкиОтчета.Отбор.Элементы.Индекс(Эл.СтрокаКоллекции);
НашОтбор = НастройкиОтчета.Отбор.Элементы[ИндОтбора];
НашОтбор.Использование = Истина;
НашОтбор.ПравоеЗначение = ТекущийПользователь;
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета);
Иначе
ПолеМенеджер = КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Менеджер");
НовыйОтбор = НастройкиОтчета.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовыйОтбор.ЛевоеЗначение = ПолеМенеджер.Поле;
НовыйОтбор.ПравоеЗначение = ТекущийПользователь;
НовыйОтбор.Использование = Истина;
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Функция ПроверкаНаличияОтбора(Коллекция)
Галка = Ложь;
Элем = Неопределено;
Для каждого Эл из Коллекция Цикл
Если Строка(Эл.ЛевоеЗначение) = "Менеджер" Тогда
Галка = Истина;
Элем = Эл;
Прервать;
КонецЕсли;
КонецЦикла;
Возврат Новый Структура ("Есть,СтрокаКоллекции",Галка,Элем);
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот