Имеем справочник Контрагенты с табличной частью содержащую поля МенеджерПокупателя и Статус, для ввода менеджеров и их помощников, которые работают с этим контрагентом. Поле Статус с типом перечисление, основной и помощник.
Перво-наперво нужно было чтобы менеджер и его помощники видели только своих контрагентов, для этого в роли МенеджерПоПродажам в правах на чтение поставил ограничение.
Следующим шагом в журнале "Документы контрагентов" оставляем документы контрагетов данного менеджера. Также в роли МенеджерПоПродажам в правах на чтение поставил ограничение.
После поправил отчет Продажи, чтобы не отображались продажи контрагентов для которых данный пользователь не является менеджером, сделал следующим образом:
— отчет оставил в списке справочника Контрагенты, в списке справочника Номенклатуры и в меню Отчеты.
— в модуле объекта отчета Продажи, в процедуре УстановитьНачальныеНастройки, дописал следующее.
Функция ЭтоМенеджер() вызывается из общего модуля МенеджерПоПродажам. Условились что пользователь имеющий роль МенеджерПоПродажам является менеджером, все остальные пользователи не должны иметь этой роли.
Установкой начальных настроек устанавливается отбор по контрагенту "В списке" по списку контрагентов для которых пользователь является менеджером. Чтобы пользователь не менял настройку отчета "заблокировал" кнопку "Настройка".
Таким образом, если менеджер хочет получить отчет по контрагенту, он запускает отчет из списка справочника Контрагенты, если хочет получить отчет по номенклатуре — из списка справочника Номенклатура, если по всем его контрагентам и номенклатуре из меню Отчеты.
Еще убрал "лишние" кнопки из командной панели списка справочника Контрагенты.
В роли на чтение журнала «Документы Контрагентов» добавил условие, чтобы были видны документы только «его» контрагентов.
Требовалось настроить роль МенеджераПоПродажам, с условием, что менеджер видит только «своих» контрагентов (контрагентов, для которых он является менеджером), только документы «своих» контрагентов и в отчета цифры «своих».
Перейти к публикации
По-моему, что-то не то с некоторыми запросами.
Насколько я понимаю, в них получается полное соединение таблицы Контрагенты и таб.части МенеджерПокупателя, на которое потом накладывается отбор по &ТекущийПользователь, что должно давать задвои/затрои/т.п. по контрагентам, у которых в таб.части МенеджерыПокупателя больше одного менеджера. Если это так, то, как минимум, это будет медленно работать, а как максимум, если такой запрос будет использован где-то, где получаются цифры (в отчётах/расчётах), будет врать.
Примеры настораживающих запросов:
«давать задвои/затрои/т.п. по контрагентам»
А как сделать так чтобы два или три пользователя работали в одном сеансе?…
(2) я в восторге от 1с!
оказывается она может запрос
оттранслировать в
я же был в полной уверенности что на выходе будет нечто вроде
Интересно, как она догадалась? Это где-нибудь в документации есть?
🙂 Как получил транслированный код?
Документации нет. К такому запросу пришел методом проб и ошибок.
(4) пользую технологический журнал.
Создаёшь файл «C:Program Files1cv82conflogcfg.xml» с примерно таким содержимым («Z:LOGS82» заменить на свой каталог для логов):
Показать
Ну работает — и хорошо. )))
Впрочем, если стоит задача выбрать контрагентов определённого менеджера, то я бы предложил такой вариант:
Спасибо, полезная штука
Рад, что вам пригодилось.
СПАСИБОЧКИ!!!!!!!!!!!!!!!!!!!!
Рад, что и вам пригодилось.
Спасибо, было интересно ознакомиться, хотелось бы почитать побольше материала про RLS — интересная тема
Статья интересная, но мне кажется, что можно кое что подправить
Например,
1.
2. В запросах, в частности в отчете правильнее будет использовать ВЫБРАТЬ РАЗРЕШЕННЫЕ…
Т.е. я бы ограничил список контрагентов уже с учетом RLS.
Спасибо!