gifts2017

Обработка для сравнения-объединения ролей

Опубликовал Максим Ивирсин (Mavin) в раздел Программирование - Практика программирования

Типовой функционал сравнения-объединения конфигураций в плане Ролей дает очень скудный функционал. Данная обработка позволяет упростить процедуру обновления Ролей.

Воспользуемся стандартной возможностью выгрузкой/загрузкой файлов конфигурации. Итак, у нас имеется доработанная типовая конфигурация, которую необходимо обновить в связи с выходом нового релиза. Для обновления ролей с помощью данной обработки необходимо:

  1. Выгрузить роли типовой конфигурации текущего релиза в некоторую папку (Конфигурация – Выгрузить файлы конфигурации…);
  2. Выгрузить роли текущей доработанной конфигурации в другую папку;
  3. Выгрузить роли новой типовой конфигурации в третью папку;
  4. Создать еще одну папку, в которую потому будем помещать роли обновленной конфигурации;
  5. В обработке настроить пути ко всем четырем папкам по кнопке «Настройка папок»;
  6. Нажимаем «Обновить файлы». Список файлов заполнится всеми файлами *.xml совпадающими по именам в первых 3-х папках;
  7. Выбираем роль для сравнения, выбрав нужную сроку списка;
  8. Нажимаем «Сравнить роли». Произойдет чтение файлов с ролями и выведется дерево сравнений;
  9. Необходимо настроить, что попадет в итоговую роль. Если поставить галочку, то это означает, что данные попадут из третье роли; отсутствие галочки означает, что данные попадут из второй роли. После сравнения ролей, галочки автоматически проставятся, в зависимости от того, какая роль изменена.
  10.  Для формирования новой роли, нужно нажать «Сформировать роль». Файл сформируется в четвертой папке.
  11. В заключение необходимо загрузить новые роли (Конфигурация – Загрузить файлы конфигурации…).

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
СравнениеОбъединениеРолей.epf
.epf 17,38Kb
11.02.12
170
.epf 17,38Kb 170 Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Александр Капустин (kapustinag) 11.02.12 23:30
Нужная вещь, но чуть пораньше бы. В последней версии платформы 8.2 уже есть "продвинутое" сравнение ролей. Вашу обработку пока не скачивал. Есть дополнительные возможности по сравнению с возможностями платформы?
2. Максим Ивирсин (Mavin) 12.02.12 07:44
(1) Платформа предоставляет только визуальное сравнение ролей и ничего более. Если посмотреть на возможности сравнения модулей, то там например можем явно указать какую процедуру возьмем из новой конфигурации, а какую оставим из текущей (доработанной). Моя обработка по-сути помагает сделать объединение ролей по-объектно, т.е. указать что возьмем из новой, а что из текущей.
3. Антон Рощин (wolfsoft) 15.02.12 09:55
Пмсм, роли лучше не менять типовые, а делать свои с префиксом каким-нибудь. Меньше проблем при обновлении.
4. Максим Ивирсин (Mavin) 15.02.12 10:39
(3) Согласен. Но ситуации всякие бывают. Например в УПП роль Пользователь назначается всем пользователям и нужно добавить некоторое разграничение прав на объекты, к которым данная роль дает доступ. Тут проще и правильнее наверное доработать именно эту роль, чем пытаться либо ее дублировать, либо дорабатывать ограничения через код.
5. Антон Рощин (wolfsoft) 15.02.12 10:58
(4) А почему не скопировать роль "Пользователь", назвать её "хПользователь", назначить её всем пользователям вместо роли "Пользователь", а дальше заниматься "разграничение прав на объекты, к которым данная роль дает доступ"? При последующем обновлении нужно будет только скопировать вашу роль "хПользователь", при необходимости дополнить её нужными правами новых объектов (насколько я понял из первого комментария, отличия типовых ролей можно будет увидеть штатными средствами).
6. Максим Ивирсин (Mavin) 15.02.12 11:14
(5) Вот как раз "при необходимости дополнить её нужными правами", т.е. сюда придется переносить все изменения типовой роли Пользователь для корректной работы, а это намного тяжелее, чем просто поправить типовую роль.
Что касается "отличия типовых ролей можно будет увидеть штатными средствами", то да можно увидеть типовыми средствами, но если таких отличий много, то их все придется переносить руками.
Приведу простую аналогии с модулями: Пусть у нас есть общий типовой модуль и мы захотели доработать некоторую в нем процедуру. Мы можем либо просто доработать процедуру в типовом модуле, либо скопировать эту процедуру в наш общий модуль и уже там ее доработать, а вызов перенаправить на наш модуль. Во втором варианте (по-сути то что предлагаете вы с ролью хПользователь), помимо того, что нужно везде сделать перенаправление вызова, так и еще нужно следить, что изменят в типовой процедуре, чтобы эти изменения внести в нашу для корректной работы.
А можно поступить проще, просто немного доработать типовую. Если в новом релизе изменения не коснулись данной процедуры (при этом другие процедуры общего модуля могли изменится), то мы просто при объединении возьмем ее из нашей конфы. Если же типовая тоже была исправлена (это сразу увидим), то просто сделаем аккуратное их объединение. Я по-сути предлагаю с ролями действовать точно также.
7. Антон Рощин (wolfsoft) 15.02.12 11:31
(6) Ладно, дело личное, останемся при своих мнениях :)

Что касается сравнения ролей, рекомендую вот эту обработку http://infostart.ru/public/14922/, она, кстати, RLS обрабатывает, в своё время мне очень помогла сэкономить время при обновлении чужой конфы с изменёнными RLS-ами. А это версия под 8.2 от того же автора http://infostart.ru/public/103851/ (ей не пользовался, пока не было необходимости).
8. Сергей Сергеев (Рамзес) 27.04.12 09:42
(5) wolfsoft,
назначить её всем пользователям вместо роли "Пользователь"

вместо не получится. Если у пользователя не будет роли "Пользователь", он не сможет войти в систему.
9. Максим Ивирсин (Mavin) 27.04.12 09:56
(8) Доработать конечно можно всякое, что и без роли "Пользователь" можно зайти. Но все-таки самое логичное в данной ситуации это доработать типовую роль "Пользователь". А далее остается только уметь обновлять эту самую Роль, что и позволяет моя обработка с наименьшими трудозатратами.
11. nk1c 05.07.13 12:44
делаю настройку папок, выгружаю туда роли в xml , нажимаю обновить файлы, но список файлов остается пустой и дерево сравнения ролей также конфа упп
12. Максим Ивирсин (Mavin) 05.07.13 13:11
(11) Для того, чтобы роль попала в список файлов, должны во-первых заполнены быть все 4 папки, во-вторых должны быть выгружены роли в первые 3 папки, причем все они попарно должны отличаться (3 роли с одним именем), а иначе можно автоматически определить какаю роль взять полностью в новую конфигурацию.
14. Sashares 14.10.13 16:58
(12) Mavin, то есть, если нужно сравнить роли 2х релизов типовой конфигурации (роли во 2 папке будут совпадать с ролями в 1), данная обработка помочь не сможет?
15. Максим Ивирсин (Mavin) 14.10.13 19:56
(14) Да, текущая реализация обработки такую ситуацию автоматически обработает и данную роль в список для сравнения не выведет. Основное предназначение было все-таки не для простого сравнения ролей, а именно при обновлении.
В вашей ситуации, если вам нужно все-таки просто сравнить 2 роли и как предлагаете 3-ю роль добавить аналогичную 1-й или 2-й, то это можно либо сделать элементарной доработкой обработки, либо в качестве 3-й роли взять любую другую роль из конфигурации.
16. Manaka (Manaka) 08.11.13 01:05
17. Максим Жохов (ZhokhovM) 30.06.14 12:08
1.Когда будет обработка на управляемой форме?
2.Нет ли возможности сократить до 3ёх папок(типовая, доработанная и пустая)?
18. Максим Ивирсин (Mavin) 30.06.14 13:19
(17) 1. А зачем это нужно? Тут ведь нет привязки к конфигурации, в которой запускается обработка. Можно всегда создать пустую конфигурацию и запустить ее в обычном приложении. Да и вообще, любую конфигурацию можно будет запустить в обычном приложении.
2. Я так понимаю, вам это нужно либо чтобы посмотреть различия в двух ролях, либо в доработанную что-то вернуть из типовой. Мне же обработка нужна была именно для целей обновления конфигураций. И если роль в типовой никак не поменялась, то мы можем спокойно взять нашу доработанную роль.
19. Максим Жохов (ZhokhovM) 02.07.14 17:34
1. А зачем это нужно? Тут ведь нет привязки к конфигурации, в которой запускается обработка. Можно всегда создать пустую конфигурацию и запустить ее в обычном приложении. Да и вообще, любую конфигурацию можно будет запустить в обычном приложении.

Затем чтобы заменять фрагменты MRG в ролях(в закладке "Шаблоны" И "Ограничение доступа к данным"). Ну или чтобы выгружать файлы конфигурации в определенную папку, а обработкой брать из этой папки файлы, анализировать их и потом грузить их обратно.
2. Я так понимаю, вам это нужно либо чтобы посмотреть различия в двух ролях, либо в доработанную что-то вернуть из типовой. Мне же обработка нужна была именно для целей обновления конфигураций. И если роль в типовой никак не поменялась, то мы можем спокойно взять нашу доработанную роль.

В типовой что-то поменялось по сравнению моей конфигурацией, мне нужно быстро объединить роли с приоритетом новой конфигурации поставщика.
20. Максим Ивирсин (Mavin) 02.07.14 20:37
(19)
Затем чтобы заменять фрагменты MRG в ролях(в закладке "Шаблоны" И "Ограничение доступа к данным"). Ну или чтобы выгружать файлы конфигурации в определенную папку, а обработкой брать из этой папки файлы, анализировать их и потом грузить их обратно.

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

Вот тут то вам как раз и нужно знать данные старой типовой конфигурации. Ведь типовое объединение ролей с приоритетом каким-нибудь тоже осуществляется на основании того, что известны данные всех 3-х конфигураций.
21. Anatolii Karasev (KapasMordorov) 02.07.14 22:33
(17)
Сравнение нескольких ролей, УФ и обычная форма.
http://infostart.ru/public/256247/
Объединения нет.
22. Максим Ивирсин (Mavin) 03.07.14 07:50
(21) KapasMordorov, Насколько понимаю, ваша обработка помогает более наглядно проанализировать какую-то роль, чтобы потом вручную можно было ее доработать. Для целей обновления ее тоже конечно можно использовать, но вот все найденные различия тогда вам придется переносить вручную.
С помощью моей обработки обновление можно практически делать в автоматическом режиме. Руками приходится вмешиваться совсем редко, причем делается это тоже в самой обработке и достаточно просто.
23. Максим Жохов (ZhokhovM) 03.07.14 10:15
(21) KapasMordorov, да, нет объединения - это плохо, а в остальном - неплохо.
24. Андрей Григорьев (Borisych) 21.07.14 18:52
Хотел сам такую обработку писать, буду проверять как этой разработкой пользоваться. СПАСИБО!
25. Николай Шурбин (Niko_la) 18.11.14 15:42
Мне не совсем понятно следующее.
Допустим, имеется у меня конфа с измененными ролями. Её необходимо обновить до актуального релиза.
Выгружу роли соответственно в 3 папки. В каком положении необходимо расставить галки для того чтобы в результирующих ролях были и новые типовые и чтобы не затерялись старые измененные права. Нужно ли после "сравнения ролей" вручную что то проставлять для получения требуемого мне результата?
26. Максим Ивирсин (Mavin) 18.11.14 18:49
(25) В дереве сравнения колонки расположены в следующем порядке: типовая старая, доработанная, типовая новая. Брать данные естественно подразумевается либо из доработанной, либо из новой типовой. Назначение галочки примерно такое же как назначение галочки в диалоге сравнения-объединения - галочки нет, берем из 2-й колонки (доработанная); галочка есть, берем из 3-й колонки. По-умолчанию галочки устанавливаются в зависимости от того, в какой конфигурации было изменение. Если для какого-то узла было двойное изменение, то в данном случае ячейка в колонке Узел закрасится сиреневым цветом и плюс к этому аналогично закрасятся ячейки - родители. Тем самым если после сравнения ячейка корня дерева не закрашена сиреневым, то не присутствует узлов с двойным изменением и тем самым можно сразу автоматически формировать итоговый файл.
27. Максим Жохов (ZhokhovM) 23.03.16 12:49
Скачал вашу обработку. Подпилил ее немного, теперь у меня можно 2 каталога указывать, например, типовая и доработанная, и узнать какие права нужно добавлять с любой ролью для любых объектов. На УФ в закладке "Сравнение ролей" http://infostart.ru/public/367989/
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа