Как в 1с 8 УТ ограничить Менеджеров компании в работе только со своими Контрагентами

Миниатюра

 

Добрый день, читатель! Я покажу тебе, как в 1с УТ (Управление Торговлей, редакция 10.3) ограничить Сотрудников компании (Менеджеров) при работе в 1с только определенными Контрагентами.

Например, при заведении Заказа Покупателя (или Поставщика) менеджер может видеть и создавать документы только по определенным Контрагентам. Это сделано для удобства работы отдела продаж, когда за каждым Менеджером в отделе закреплен определенный круг Клиентов. Другие менеджеры не могут видеть и менять чужие заказы, так как в них указаны не их Контрагенты (не закрепленные за ними).

Думаю я понятно объяснил что я хочу вам показать.

Проблемы организации работы в 1с на Предприятии и путь решения

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

Я предложил клиенту изменить работу в 1с таким образом, что у Менеджера в 1с вообще не было возможности работать не со своим Контрагентом. Права на Контрагентов назначает начальник отдела продаж. У Менеджера нет вообще ни какой возможности, ни одной лазейки работать не со своим Контрагентом. НУ разве что на уровне СУБД, но туда его никто не пустит.

Итак, для тех, кто не в курсе, есть такая возможность в 1с — «Права на уровне записей».

Все изображения статьи в одном окне

Пример для понимания, что такое Права на уровне записей

Например, у нас есть Заказ №1, в котором указан Контрагент №1, закрепленный за Менеджером №1. В этом случае Менеджер №2, за которым Контрагент №1 НЕ ЗАКРЕПЛЕН, не сможет не только открыть и посмотреть Контрагента как справочник, или увидеть его в списке, он не сможет даже открыть ЗАКАЗ №1, в котором указан Контрагент №1.

Это достигается с помощью механизма доступа на уровне записей.

Начнем внедрение в 1с!

Начнем изменение 1с УТ (Управление Торговлей), редакция 10.3 чтобы у нас все вышеперечисленное заработало.

Итак, начнем!

1.1. Ограничение доступа к Контрагентам на уровне записей у Менеджера при заведении Заказа Покупателя 1.1. Ограничение доступа к Контрагентам на уровне записей у Менеджера при заведении Заказа Покупателя

На скриншоте показана ситуация, когда Менеджер в 1с открывает список Заказов, создает новый документ и открывает список Контрагентов из документа.

В списке Контрагентов видно, что он может видеть и выбирать в Заказ только Контрагентов из своего круга.

Круг Контрагентов закрепляется за каждым Менеджером руководителем отдела Продаж.

2.1. Роль Менеджер По Продажам 2.1. Роль Менеджер По Продажам

В роли МенеджерПоПродажам, которая закреплена за каждым пользователем Менеджер видно что у Заказов в настройках чтения, добавления, изменения создан шаблон, по которому определяется правомочность доступа на уровне записи.

Таким образом, если в Заказе указан чужой, не закрепленный за Менеджером Контрагент, то Менеджер не сможет увидеть и открыть данный Заказ!

2.2. Роль Менеджер По Продажам доступ к Контрагентам 2.2. Роль Менеджер По Продажам доступ к Контрагентам

Интересная фишка! Я такое решение нашел, не додумался самостоятельно!

Права на справочник Контрагенты ВООБЩЕ СНЯТ! Т.е. чтобы у Менеджера был доступ к Контрагентам, надо это прописать программно.

Таким образом все лазейки Менеджеру закрыты. Это сделано для гарантии. Потому что менеджеры — народ ушлый! они ищут лазейки в 1с и находят неожиданные дыры в безопасности. Чтобы Программисту не влетело по шапке, надо все эти лазейки на корню пресечь!

Теперь Программист имеет ПОЛНЫЙ контроль над доступом к Контрагентам. Если не прописать доступ программно, то его не будет!

Этим мы и займемся!

3. Настраиваем регистр Сведений Настройки Прав доступа пользователей 3. Настраиваем регистр Сведений Настройки Прав доступа пользователей в режиме 1с Предприятие

Добавим записи в регистр у каждого Менеджера.

В объекте Доступа Выберем созданный элемент справочника «Группы доступа к контрагентам». Назовем созданный элемент по имени пользователя.

В качестве пользователя выберем (создадим, если нет) элемент справочника «Группы пользователей» с наименованием Пользователя

4. Вноми изменения в код обработки НастройкаПравДоступа 4. Вносим изменения в код обработки НастройкаПравДоступа.

В фукцию ПолучитьСписокОбластейДанных(ТипДанных) и процедуру ПередОткрытием(Отказ, СтандартнаяОбработка) вносим строки, как показано на скриншоте.

Вот код функции и процедуры с изменениями:

 

4. Вноми изменения в общий модуль НастройкаПравДоступа 4.1. Вносим изменения в общий модуль НастройкаПравДоступа

Во код с изменениями:

5. Для роли в доступе добавляем шаблон ограничений 5. Для роли в доступе добавляем шаблон ограничений
5.1. Для роли в доступе добавляем шаблон ограничений 5.1. Для роли в доступе добавляем шаблон ограничений
5.2. Для роли в доступе добавляем шаблон ограничений 5.2. Для роли в доступе добавляем шаблон ограничений
5.3. Для роли в закладке Шаблоны доступа добавляем описание шаблонов 5.3. Для роли в закладке «Шаблоны доступа» добавляем описание шаблонов

Вот код шаблона «ОрганизацияВШапкеКонтрагентВШапке»

 

Вот код шаблона «ОрганизацияВШапкеКонтрагентВШапке_Запись»

 

 

Вот и все! Все настроено и прекрасно работает!

Если у вас будут вопросы, пишите, постараюсь ответить!

На этом все, счастливо!

Теги: , , , , , ,

>