Управление торговлей 11.1 — настройка нестандартных ролей









Особенности настройки прав в УТ 11.1
..рано или поздно, пользователям становится недостаточно того "мощного" функционала, что придуман в УТ 11.1, и дается задание для программиста 1С, чтобы он настроил более тонкие изменения, и ограничения прав.

Эта статья — для тех, кто хочет понять, какие особенности настройки прав (ролей) в конфигурации «Управление торговлей 11.1».

Система прав в УТ 11.1 существенно отличается от ранее применявшихся в типовых конфигурациях. В качестве основы, в конфигурации разработчики создали порядка 400 (!) предопределенных ролей. Предназначено это для того, чтобы пользователи сами, без применения программиста, в свободное от основной работы время, могли «играться» с правами, и «гибко» их настраивать. Идея — прекрасная, так как настраивать и тестировать права мало кому из программистов нравится.

Конечно, вручную «прощелкивать» права разработчики нам не предлагают, для этого существует специальный режим настройки прав — профили и группы подльзователей.

Однако, рано или поздно, пользователям становится недостаточно того «мощного» функционала, что придуман в УТ 11.1, и дается задание для программиста 1С, чтобы он настроил более тонкие изменения, и ограничения прав.

Как в общем устроена система прав в УТ 11.1?

Если не прибегать к помощи программиста, настраивать права нужно так:

Разработчиками предусмотрен справочник «Профили доступа«. Заходим в него через меню «Администрирование».

В данном случае я для примера создал профиль «Менеджер продаж ХХХ», его можно видеть в правой части картинки.

Профили

 

 

Откроем карточку элемента профиля «Менеджер продаж ХХХ»

 

Карточка профиля

 

Что мы видим?  На закладке «Разрешенные роли» — перечислены права доступа из конфигуратора. 

Здесь «обычный пользователь» может настроить права досутпа, как ему пожелается.

Например, я, как обычный пользователь, пощелкал флажками, и сохранил данный профиль.

Далее надо идти в справочник «Группы доступа«.

Группы доступа

 

В этом справочнике давайте добавим новую группу

 

Группа

 

Для удобства назовем ее так же — «Менеджер продаж ХХХ«.

Чтобы группа «заработала», надо добавить в нее пользователей, что я и сделал: «Владислав» — теперь член этой группы. Для лучшего понимания, что происходит, лучше проверить другие существующие группы, если они есть, и убрать из них нашего пользователя «Владислав». Тогда все ограничения будут видны сразу.

В общем-то всё, после сохранения группы, у пользователей этой группы, появятся новые роли, и исчезнут ненужные роли.

В этом можно убедиться, войдя в конфигуратор, и открыв список пользователей.

Несомненно, потратив несколько дней, «рядовой пользователь» сможет многого добиться, в настройке ролей УТ 11.1.

Но «идем далее».

Например, из 400 предложенных ролей, нам не подходит ни одна, либо неохота в них разбираться, либо требуется некая тонкая настройка прав и шаблонов.

Далее — текст для администраторов и программистов, так как обычный пользователь не справится.

Для понимания, за что отвечает каждая роль в УТ 11.1, я пробовал разные способы, даже пытался применять разные полезные обработки, типа этой:

//infostart.ru/public/249087/

 Но, например, запустив этот отчет по ролям, я не смог дождаться окончания его работы, даже установив ограничения по выборке. Подождав около часа, я прекратил это. 

 Система из 400 ролей, это хитрое изобретение, надеюсь, его отменят в ближайшем будущем.

Давайте же посмотрим, что надо сделать, если мы хотим добавить новую роль в конфигураторе.

Войдем в конфигуратор, и скопируем роль «Полные права», в например «лПраваМенеджеровПродаж«.

Затем сделаем с нашими новыми правами то, что захотим, и попытаемся происвоить эти права нашему испытуемому пользователю.

Не все так просто, далее.

Много прав, оказывается, жестко прописано в коде УТ, например, если пользователь, не является «полноправным» (т.е. типа нашего пользователя, имеет массу ограничений, настроенных нами в конфигураторе), то для его работы понадобится «попотеть».

Смотрим. Если мы хотим, чтобы наш пользователь, мог редактировать документ, то надо дополнительно назначить ему право «РедактированиеРеквизитовОбъектов«. Без этого УТ покажет реквизиты только для просмотра, даже если есть права редактирования.

Далее, есть несколько подобных ролей, например «Зачет оплаты», «Реализация сверх заказа» и т.д., которые придется выискивать, и дополнительно назначать.

Если заглянуть, что за роль такая «Зачет оплаты», то в конфигураторе мы не увидим в этой роли никаких настроек, она просто существует, и всё.

Но если запустить поиск по конфигурации, то обнаружится много интересного, оказывается, есть ссылки в коде типа «Если РольДоступна() Тогда».

Какие дополнительные роли вам понадобятся, придется определять самостоятельно, так как УТ на месте не стоит.

Но это еще не все, например, мы поняли, что нам понадобятся, кроме нашей новой роли, назначить пользователю еще несколько. Чтобы упростить ввод новых пользователей, и прав, добавим в справочник «Профили», в наш новый профиль «Менеджер продаж ХХХ», нашу роль, установив на нее флажок (это можно видеть на рисунке выше, где показан справочник «Профили»). Сохраним. Но. Войдем же в конфигураторе в список пользователей. Наша нетиповая новая роль «лПраваМенеджеровПродаж» не присвоилась пользователю! Все роли, есть, а новой — нет.

Оказывается, список ролей, и некоторые другие настройки, хранятся в константе «ПараметрыРаботыПользователей«.

Константа

 

Это константа типа «Хранилище значений».

Обновится она при выходе обновления, но нам ждать некогда. Пишем обработку, которая обновит эти параметры:

Код обработки прост:

&НаКлиенте
Процедура КомандаОбновитьКонстанту(Команда)
ОбновитьНаСервере();

КонецПроцедуры

&НаСервере
Процедура ОбновитьНаСервере()
Константы.ПараметрыРаботыПользователей.СоздатьМенеджерЗначения().ОбновитьОбщиеПараметры();

КонецПроцедуры

После выполнения кода, получим возможность использовать нашу новую роль в профилях доступа.

Также, замечу, в УТ есть еще один механизм настройки прав, без которого наши настройки могут не заработать — в группах доступа и профилях есть закладка — ограничения доступа. Там для «неполноправных» пользователей нужно описать, дополнительные права доступа для нужных нам основных справочников «организации», «Партнеры», «Склады». Это, так сказать, еще более «тонкая» настройка.

Таким образом, система прав в УТ 11.1 гибкая и сложная.



18 Comments

  1. gendal

    Если разработчики из 1С сами бы попробовали понастраивать роли при внедрении, они бы поняли, что это дело нужно как-то упрощать

    Reply
  2. amblik

    Согласен с автором и gendal.

    Хотя и дана возможность настраивать и изменять права, но не факт, что после сделанных изменений все сработает корректно и не будет выскакивать сообщение типа нарушения прав доступа.

    Reply
  3. idhas

    Вот спасибо за обработку, а то заходил всегда роли в конфигураторе менял.

    Reply
  4. jobkostya1c8

    Интересно изложено. Учту опыт

    Reply
  5. andpal
    Какие дополнительные роли вам понадобятся, придется определять самостоятельно, так как УТ на месте не стоит.

    Да, 1С добавляет новые роли, и если мы используем свои профили групп доступа и тщательно их однажды настроили, то после обновления все надо проверить тщательно еще раз. Так у нас, однажды пропали все разделы с панели разделов у пользователей со «своими» профилями, оказалось появились новые роли, которые управляют разделами («Раздел продажи» и т.п.)

    Reply
  6. stas1kbob

    спасибо, статья помогла

    Reply
  7. trumanl

    Также можно например воспользоваться обработкой «ИнструментыРазработчикаОбновлениеВспомогательныхДанных» с ИТС или конфигурации БСП. Выбрать подсистему «Управление доступом» и обновить.

    И кроме обновление константы «Параметры работы пользователей», нужно обновить еще как минимум «Параметры ограничения доступа» и справочник «Идентификаторы объектов метаданных».

    Возможно, поэтому лучше использовать обработку.

    Reply
  8. for_sale

    Весь этот механизм — полная бредятина. Для чего его было создавать — непонятно. Вернее, понятно — хотелось гибкости, но непонятно — зачем делать всё настолько ректально?

    Один из многочисленных примеров — в обработке ИнструментыРазработчикаУправлениеДоступом есть кнопка — «Сформировать код», которая формирует код, который нужно засунуть в типовой модуль. Просто жесть — мало того, что модуль на поддержке, так ещё и получается, что без программирования вообще ничего не обновишь!

    П.С. по теме статьи — добавил в существующий профиль новую роль, но пользователям она не добавилась. Сделал всё так, как описано, но после применения этого кода

    Константы.ПараметрыРаботыПользователей.СоздатьМенеджерЗначения().ОбновитьОбщиеПараметры();

    всё равно ничего не взлетело, роль всё равно не зацепилась за пользователей.

    Reply
  9. stas1kbob

    (8) получилось сделать? в последних релизах даже с этим кодом перестали присваиваться

    Reply
  10. Indifference

    А не могли бы вы подсказать что нужно сделать для редакции 11.0?

    Reply
  11. it.chernov

    Что бы роль появилась необязательно пользоваться обработкой достаточно прописать параметр при запуске

    /С ЗапуститьОбновлениеИнформационнойБазы

    или вот так

    Reply
  12. Spacer

    (8) for_sale, может быть у вас пользователи полноправные?

    Тоже столкнулся с такой проблемой. Заметил что если у пользователя уже есть роль «ПолныеПрава»,

    то новые роли ему не добавляются.

    Reply
  13. Lapitskiy

    Механизм «совершенствуется» с каждой новой БСП, поэтому возможно надо что-то еще нажать теперь 🙂

    Я обычно пользуюсь обработкой с ИТС «Обновление вспомогательных данных», должно помочь.

    Reply
  14. fixin

    чэрэсчур сложная и гибкая, я бы сказал

    Reply
  15. Andryza

    (14)Зато очень удобная, на самом деле. Убедился в этом. Да, конечно приходится время потратить, но зато дает возможность без изменений в конфигураторе, достаточно тонко настроить различные права пользователей. Я не так давно сталкивался, настройкой занимался наверное в течении месяца, 30 профилей доступа настраивал со всеми вытекающими )

    Reply
  16. FarFar

    Я верно понимаю, что выполнение «Константы.ПараметрыРаботыПользователей.СоздатьМенеджерЗначения().ОбновитьОбщиеПараметры()» требует монопольного режима?

    Reply
  17. FarFar

    Да, залез в нашу версию УТ 11 (11.1.9.66), черным по русскому написано в этой процедуре:

    Если ТолькоПроверка ИЛИ МонопольныйРежим() Тогда
    СнятьМонопольныйРежим = Ложь;
    Иначе
    СнятьМонопольныйРежим = Истина;
    УстановитьМонопольныйРежим(Истина);
    КонецЕсли;
    
    НедоступныеРолиПоТипамПользователей = НедоступныеРолиПоТипамПользователей();
    
    ВсеРоли = ВсеРоли();
    
    Блокировка = Новый БлокировкаДанных;
    ЭлементБлокировки = Блокировка.Добавить(«Константа.ПараметрыРаботыПользователей»);
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;

    Показать

    Reply
  18. Homyak

    Большое спасибо, очень помогло!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *