Подсистема прав доступа к объектам с гибкими отборами (расширение)

0. 4280 02.07.20 15:45 Сейчас в теме
Возможность без доработок конкретизировать пользователям права Просмотра и Изменения объектов базы 1С, установив ограничения с помощью отборов системы компоновки данных.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ivnik 489 02.07.20 17:07 Сейчас в теме
Автору респект!
rpgshnik; keat24; DrAku1a; nanik; sapervodichka; +5 Ответить
2. Yashazz 3753 02.07.20 17:36 Сейчас в теме
Многократный баян, в т.ч. и на расширениях. Но, зная автора, его аккуратность и грамотность, одобряю наличие такой публикации. Хотя и сам такое делал не единожды)
3. tadem 02.07.20 21:27 Сейчас в теме
Здравствуйте! Вопрос- а чтоб даже в журнале не видел недоступные документы? И в отчетах?
4. sapervodichka 4280 02.07.20 21:51 Сейчас в теме
(3) это уже гораздо сложнее, т.к. требует разработки RLS ограничений доступа на уровне записей и менять в конфигурации роли
5. Tarlich 102 02.07.20 23:50 Сейчас в теме
Автор Молодец !
У самого такая же задача в разработке .
возможно ли добавить в условие произвольного кода для объекта ?
6. sapervodichka 4280 03.07.20 00:27 Сейчас в теме
(5) добавляйте в регистр строковый реквизит "ПроизвольныйКод" и в модуле расширения строчку кода Выполнить(ЗаписьРегистра.ПроизвольныйКод), как вариант
7. vik2006 124 03.07.20 07:21 Сейчас в теме
Доброго времени суток, уважаемый автор. Без граблей при установке все-таки не обходицца. Типовая (почти) Бух 3.0.79.11. Через режим предприятия ставиться отказывается. При установке через конфигуратор пишет ошибки (см. рис. 1). Ну, после небольшого танца с бубном вроде становится. Но в качестве примера выбран док Авансовый отчет и при настроке прав отбора по дате, этот отбор устанавливацца напрочь не хочет. Т.е. выбранный пользователь так и видит все документы. Т.е. отбор и ограничение прав по дате на документ не работает.
Прикрепленные файлы:
8. vik2006 124 03.07.20 07:23 Сейчас в теме
(7) хм, первый файл че та не прикрепился. добавляю.
Прикрепленные файлы:
9. vik2006 124 03.07.20 07:25 Сейчас в теме
(7) т.е. в типовой конфе бух 3.0 напрочь отсутствует Модуль МодификацияКонфигурации переопределяемый (релиз, кстатЕ, последний), приходится насильно его создавать в расширении, ну и роль одна тоже не работает, хотя это вообще решаецца просто.
10. sapervodichka 4280 03.07.20 09:36 Сейчас в теме
(7) в публикации в блоке Проверка работоспособности совместимость с 1С: Бухгалтерия предприятия (БП) мной не указывалась, в БП действительно нет модулей, которые есть в ERP, и расширение не будет работать в БП без переделки по аналогии и подстройки под особенности конфигурации бухгалтерии, но как начальный скелет для переделки текущее расширение можно использовать
11. vik2006 124 03.07.20 10:40 Сейчас в теме
(10) А в ERP отбор по дате работает?
12. sapervodichka 4280 03.07.20 10:44 Сейчас в теме
(11) "Ссылка.Дата ВидСравнения УказаннаяДата" работает (есть возможность произвольные отборы настраивать как в отчетах на компоновке данных), если нужно добавить какое-нибудь уникальное определение параметра, то смотрите как реализован Параметр.ТекущийПользователь в коде расширения
13. vik2006 124 03.07.20 14:13 Сейчас в теме
14. xten 45 07.07.20 15:49 Сейчас в теме
А будет ли работать в БП 3.0 ? очень нужно )
15. sapervodichka 4280 08.07.20 08:40 Сейчас в теме
(14) сегодня постараюсь сделать расширение для Бухгалтерии предприятия и Зарплаты и управления персоналом и прикрепить отдельными файлами. Маякну, как будет готово
16. sapervodichka 4280 08.07.20 10:31 Сейчас в теме
(14) добавил файл расширения для Бухгалтерии предприятия
17. sapervodichka 4280 08.07.20 12:23 Сейчас в теме
(16) добавил файл расширения для ЗУП
18. sapervodichka 4280 08.07.20 18:52 Сейчас в теме
(17) добавил модификацию для УТ
19. xten 45 08.07.20 20:37 Сейчас в теме
Супер!! Спасибо огромное !!!!!!!
20. VIPchik 29 04.08.20 19:26 Сейчас в теме
А возможно ли доработать так данную систему, чтобы при открытии формы списка, автоматически включался настроенный для пользователя отбор. Тогда и RLS не особо будет нужен.
21. sapervodichka 4280 04.08.20 20:22 Сейчас в теме
22. user1014429 11.08.20 15:55 Сейчас в теме
(21) Добрый день.
Перекопал модуль в расширении, нигде не нашел привязки к обработчику объекта "ПереЗаписью()"....
Мне бы вписать "ПриЗаписи()" т.к. перед записью ссылки еще не существует и отбор на изменение не срабатывает, пользователь может запросто создавать объекты...
Подскажите что-нибудь?
23. sapervodichka 4280 11.08.20 16:01 Сейчас в теме
(22) в расширении для ЕРП это общий модуль ОбновлениеИнформационнойБазы.рпд_ПроверитьОбъектОбработан().
Заимствована особенность, что метод ПроверитьОбъектОбработан() вызывается перед записью большинства объектов. Использован он т.к. в расширении нельзя создать подписку на событие, если у вас можно править конфиуграцию, то создайте подписку на событие на объекты СправочникОбъект, ДокументОбъект и в нее код аналогичный расширению встройте.
25. user1014429 11.08.20 16:41 Сейчас в теме
(23) Да, я так и понял, спасибо за ответ)
24. user1014429 11.08.20 16:34 Сейчас в теме
(22) Вопрос отпал. В вашем расширении используется только сама форма через модуль версионирования объектов, так что к созданию новых и записи новых объектов это не относится.
26. dm1006 28.08.20 12:48 Сейчас в теме
Расширение не работает
Возможно, потому не вызывается рпд_ПроверитьОбъектОбработан. Или я сделал что-то не так?
ERP 2.4.11.98
27. sapervodichka 4280 28.08.20 12:51 Сейчас в теме
(26) расширение работает, вы сделали, что то не так. Пришлите картинки:1) Как подключено расширение; 2) Картинку с настройками прав на объект
28. dm1006 28.08.20 13:15 Сейчас в теме
Расширение подключено правильно. Дело не в этом. Я нашел концы. При вызове одного объекта вызывается ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);, при вызове другого нет. В частности: справочник Номенклатура, и любой документ реализации - вызывается. Прием на работу (например) нет.
То есть расширение работает, но не для всех объектов. Почему - буду смотреть дальше
30. sapervodichka 4280 28.08.20 13:17 Сейчас в теме
(28) да не для всех, это ограничение я выше писал, как просто обойти http://forum.infostart.ru/forum24/topic243739/message2486690/#message2486690
29. dm1006 28.08.20 13:17 Сейчас в теме
Да, еще есть модуль МодификацияКонфигурации
31. sapervodichka 4280 28.08.20 13:18 Сейчас в теме
32. dm1006 28.08.20 13:24 Сейчас в теме
К сожалению, это при записи. Меня сейчас интересует ПриСозданииНаСервере. Я сделал подписку "ОбработкаПолученияФормы". Но там я сделал отбор в ФормеСписка. А хотелось бы управлять доступностью и видимостью реквизитов)
33. dm1006 28.08.20 13:47 Сейчас в теме
Похоже работает все кроме Кадры и Зарплата
34. sapervodichka 4280 28.08.20 13:50 Сейчас в теме
(33) в кадрах и зарплате нужно подвязаться на события общего модуля УправлениеСвойствами, они прописаны в формах кадровых объектов
35. dm1006 28.08.20 13:50 Сейчас в теме
36. user807121 01.09.20 13:37 Сейчас в теме
У нас стоит следующая задача:
необходимо сделать управляемое ограничение для пользователя видеть только свои документы, те которые ему доступны по правам.
Плюс сделать настройку - добавить документы другого пользователя.

Сможете реализовать?
37. sapervodichka 4280 01.09.20 13:59 Сейчас в теме
(36) спасибо за предложение, не смогу, т.к. fulltime занят на проекте
38. NVG13 3 14.09.20 17:07 Сейчас в теме
Вечер добрый!
А ограничивать видимость подсистем имеется?
39. dsv_infostart 02.10.20 09:28 Сейчас в теме
На БП 3.0.79.21 (платформа 8.3.15.1830) не получается сделать по Примеру 1:
Документ Реализация товаров - если пользователю разрешить просмотр всего, а запись - только для склада Х, то для существующих документов - все работает так, как описано - кнопки Запись и Провести недоступны, если склад не Х. Но новый документ - можно записать и провести для любого склада. А надо бы запретить пользователю и создание с конкретного склада, а не только правку.
Не подскажете, куда копать?
40. sapervodichka 4280 02.10.20 10:25 Сейчас в теме
41. dsv_infostart 02.10.20 13:29 Сейчас в теме
(40) Жаль, что из описания не удалось понять, что в БП невозможно контролировать создание новых объектов без изменения конфигурации. Т.к. изменение конфигурации не вариант- то использовать расширение невозможно.
42. sapervodichka 4280 02.10.20 15:37 Сейчас в теме
(41) Вы сделали неправильный выводы. Это расширение - максимально универсальная заготовка. В ЕРП, КА, УТ метод обновления прописан в большинстве событий перед записью, он перехвачен и контролирует создание новых объектов. В БП немного другая картина, метод обновления не прописан в процедерах перед записью, тот ответ был написан для другого человека, который мог редактировать конфу, вы из него сделали вывод что нужно менять конфу, А ЭТО НЕ ТАК. Можно менять только расширение, легко (нажав правой кнопкой мыши на объекте - Добавить в расширение) перетаскиваете объект в расширение, добавляете в модуле объекта создать &После Процедура ПередЗаписью копируете код из расширения и для вашего объекта работает. Это стандартные вещи, которые сейчас каждый программист должен делать по щелчку (я без преувеличений).
43. sapervodichka 4280 02.10.20 15:41 Сейчас в теме
(42) либо просто перехватите любой общий метод перед записью объекта в БП и затащите его в расширение.
44. sapervodichka 4280 02.10.20 15:42 Сейчас в теме
(43) расширение работает без изменения конфигурацию Бухгалтерии и контролирует создание объекта (нужно понимать что публикация максмиально универсальная и легко настраиваемая)
45. dsv_infostart 02.10.20 16:15 Сейчас в теме
(44) понятно. Буду пытаться. Жаль, что не программист. Программирующий консультант (
46. sapervodichka 4280 02.10.20 16:16 Сейчас в теме
(45) пиши в личку, если будут вопросы, смогу проконсультировать
47. sapervodichka 4280 02.10.20 18:14 Сейчас в теме
(46) выслал в личку новое расширение
48. sapervodichka 4280 02.10.20 18:15 Сейчас в теме
Добавил обновление по расширению Бухгалтерии предприятия:

Права доступа к объектам с гибкими отборами (расширение для Бухгалтерии предприятия, версия от 02.10.2020)


1) Добавлен перехват события при записи объекта, для контроля возможности сохранения новых
dsv_infostart; +1 Ответить
49. user1475457 17.11.20 22:36 Сейчас в теме
Подскажите, а с БП Корп работать будет?
50. sapervodichka 4280 18.11.20 10:32 Сейчас в теме
(49) Да, с БП Корп 3.0 вот этот файл должен работать "Права доступа к объектам с гибкими отборами (расширение для Бухгалтерии предприятия, версия от 02.10.2020)"
51. azeraus 02.12.20 06:21 Сейчас в теме
Добрый день! На конфигурации Управление торговлей для Казахстана, редакция 3, локализация для Казахстана: "1С-Рейтинг" (3.4.4.76) платнформа 1С:Предприятие 8.3 (8.3.16.1063)
Будет ли работать?
52. AlimovaOS 07.12.20 08:58 Сейчас в теме
Добрый день, подскажите основные права вы какие даете?
т.к только с гибкими правами не запускает
54. sapervodichka 4280 07.12.20 10:07 Сейчас в теме
(52) основные права согласно профилю доступа пользователя (Профиль доступа - Группа доступа - Пользователи).
Гибкие права это лишь фильтр накладываемый сверху над стандартными правами.
Картинку со структурой настройки прав можно здесь глянуть https://infostart.ru/1c/articles/1176543/
53. AlimovaOS 07.12.20 09:29 Сейчас в теме
Мне нужно сделать интерфейс кладовщика, если не подбирать основные права то запуск не осуществляется
55. sapervodichka 4280 07.12.20 10:09 Сейчас в теме
(53) сначала нужно идти типовым путем и дать профиль доступа Кладовщик, затем уже подключать и настраивать расширение
56. AlexTol 18.02.21 13:38 Сейчас в теме
Здравствуйте!
Возможно ли адаптировать для использования в УНФ?
57. sapervodichka 4280 08.03.21 23:15 Сейчас в теме
Обновления 2021 год:

Подсистема прав доступа к объектам с гибкими отборами с фильтрами в формах списков (расширение для УТ, ERP и КА, версия от 08.03.2021)

1) Добавлены фильтрации форм списка и выбора документов (закрытые фильтрами просмотра документы не будут видны в динамических списках)

Администратор например, видит все, а пользователь только ограниченно, согласно фильтра просмотра.
58. VIPchik 29 18.03.21 16:51 Сейчас в теме
(57) В расширении есть вот такой заимствованный справочник: рздИерархияПользователей, но его нет в типовой ERP
61. sapervodichka 4280 18.03.21 20:32 Сейчас в теме
(58) извиняюсь, завтра исправление опубликую и всем вышлю в личку
59. zvetta 18.03.21 19:15 Сейчас в теме
Здравствуйте! При подключении расширения (Управление торговлей, редакция 11 (11.4.13.57) (Критичная) : Не найден объект Справочник.рздИерархияПользователей
60. sapervodichka 4280 18.03.21 20:32 Сейчас в теме
(59) извиняюсь, завтра исправление опубликую и всем вышлю в личку
62. zvetta 18.03.21 20:48 Сейчас в теме
63. sapervodichka 4280 19.03.21 01:58 Сейчас в теме
Подсистема прав доступа к объектам с гибкими отборами с фильтрами в формах списков (расширение для УТ, ERP и КА, версия от 18.03.2021)

Исправил ошибку, всем кто скачал с ошибкой разослал. Ещё раз извиняюсь, за косяк =)
64. Vadim_Dol 03.04.21 11:18 Сейчас в теме
Здравствуйте! В конфигурации ЗУП 3.1 не работает с объектом "Начисления (План видов расчета)". С документами все Ок.
65. sapervodichka 4280 04.04.21 11:45 Сейчас в теме
(64) Перехватите вызов обработчика в расширение ПриСозданииНаСервере как &После из формы Начисления, туда вставьте вызов одноименного метода расширения ПриСозданииНаСервере из общего модуля расширения
66. Vadim_Dol 04.04.21 15:41 Сейчас в теме
67. Sergey101081 08.04.21 15:02 Сейчас в теме
Сильно сказывается на производительность?
68. Sergey101081 08.04.21 22:43 Сейчас в теме
Помогите со справочником Номенклатура. Учетная система - 1С:ERP Управление предприятием 2 (2.4....).
Задача: не показывать в ФормеСписка и ФормеВыбора номенклатуру с определенным Видом номенклатуры

Добавил в код:

ИначеЕсли Найти(Форма.ИмяФормы, "Справочник.") > 0
И (Найти(Форма.ИмяФормы, ".Форма.ФормаСписка") > 0 ИЛИ Найти(Форма.ИмяФормы, ".Форма.ФормаВыбора") > 0)
И (Форма.Элементы.Найти("Список") <> Неопределено ИЛИ Форма.Элементы.Найти("СписокСтандартныйПоискНоменклатура") <> Неопределено ИЛИ Форма.Элементы.Найти("СписокРасширенныйПоискНоменклатура") <> Неопределено)
И (ТипЗнч(Форма.Элементы.Найти("Список")) = Тип("ТаблицаФормы") ИЛИ ТипЗнч(Форма.Элементы.Найти("СписокСтандартныйПоискНоменклатура")) = Тип("ТаблицаФормы") ИЛИ ТипЗнч(Форма.Элементы.Найти("СписокРасширенныйПоискНоменклатура")) = Тип("ТаблицаФормы")) Тогда

ИмяФормыСтроками = СтрЗаменить(Форма.ИмяФормы, ".", Символы.ПС);
Если (Форма.ИмяФормы = "Справочник.Номенклатура.Форма.ФормаСписка" ИЛИ Форма.ИмяФормы = "Справочник.Номенклатура.Форма.ФормаВыбора") Тогда
рпд_СкопироватьОтборКомпоновкиДанных(Форма.СписокНоменклатура, "Справочник." + СтрПолучитьСтроку(ИмяФормыСтроками, 2));
Иначе
рпд_СкопироватьОтборКомпоновкиДанных(Форма.Список, "Справочник." + СтрПолучитьСтроку(ИмяФормыСтроками, 2));
КонецЕсли;

но, что то пошло не так...

Со справочником Договоры с контрагентами работает... (в списке отображаются только то, что надо)
Прикрепленные файлы:
71. sapervodichka 4280 11.04.21 11:59 Сейчас в теме
(68) привет, скажу что формы номенклатуры довольно сложные в ЕРПях, возможно, происходит пересечение с типовым отбором по виду номенклатуры, который встроен в форму списка номенклатуры. Надо отладчиком разбирать ситуацию... вот так из головы не смоделирую. Но вижу что ты сам кодируешь значит сможешь разобраться. Если что-то будет в голове прокрутить, то пиши
69. chg 11.04.21 11:38 Сейчас в теме
Добрый день.

Ограничение по компаниям работает на просмотр и создания в рамках одной базы?
70. sapervodichka 4280 11.04.21 11:56 Сейчас в теме
72. Sergey101081 20.04.21 00:44 Сейчас в теме
Подскажите, а зачем в функции рпд_ПолучитьСсылкуИзФормы(Форма) сделано через попытка-исключение?
73. chng 20.04.21 22:46 Сейчас в теме
А на управлении холдингом, будет работать?
74. sapervodichka 4280 21.04.21 00:01 Сейчас в теме
(73) да, на УХ 3.0 будет (на управляемых формах, на Консолидации не будет - она старовата, не на БСП)
75. AloneCorsar 21.04.21 09:42 Сейчас в теме
(74) На холдинге 3.1 не работает. Текст ошибки, версия конфигурации и платформы во вложении.
Прикрепленные файлы:
76. sapervodichka 4280 21.04.21 16:23 Сейчас в теме
(75) конфы такой у меня нет, поэтому перехватите другой модуль СобытияФорм.ПриСозданииНаСервере, УправлениеСвойствами.ПриСозданииНаСервере или любой другой, который вызывается в модулях форм документов в событии ПриСозданииНаСервере. И в него скопируйте код из МодификацияКонфигурацииПереопеределяемый.ПриСозданииНаСервере
77. Sergey101081 27.04.21 16:35 Сейчас в теме
Есть проблемка... Какое условие можно придумать чтобы при создании нового документа копированием можно было с ним работать (вносить изменения)? Сейчас ограничение такое: см.скриншот. И при создании нового путем копирования редактировать документ нельзя хотя статус у создаваемого документа "К обеспечению"
Прикрепленные файлы:
78. Sergey101081 27.04.21 16:38 Сейчас в теме
Условие Ссылка.Проведен = Истина не работает(
Ссылка.Номер Не заполнено - не работает(

Если одно из этих условий Сгруппировать в Группу И с условием со скриншота
79. Sergey101081 27.04.21 17:20 Сейчас в теме
Какая цель приследуется этой строкой
СтруктураПрав = рпд_ПраваДоступаКОбъекту(?(ЗначениеЗаполнено(ЗначениеКопирования), ЗначениеКопирования, рпд_ПолучитьСсылкуИзФормы(Форма)));

При копировании сохранить те же права как и у копируемого объекта? Какая логика изначальна заложена для данной строчки?
80. Sergey101081 27.04.21 17:57 Сейчас в теме
Новая задачка: Документ записан, не проведен, в статусе К выполнению. Пользователь теперь не может его провести. Какое условие, в дополнение к тому, что на скриншоте выше (77 сообщение) добавить, чтобы он смог таки его провести. А вот уже проведенный в статусе К выполнению изменять нельзя.
81. sapervodichka 4280 27.04.21 20:59 Сейчас в теме
(
80)
Попытка
		Если ЗначениеЗаполнено(Форма.Объект.Ссылка)
			ИЛИ ЗначениеЗаполнено(Форма.Параметры.ЗначениеКопирования)
			ИЛИ ЗначениеЗаполнено(Форма.Параметры.Основание) Тогда
			Возврат; //Контролируем только новые объектов, которые не копируются и не вводятся на основании
		КонецЕсли;
	Исключение
		Возврат;
	КонецПопытки;
Показать
82. Sergey101081 28.04.21 09:18 Сейчас в теме
Неверное надо отрицание НЕ: Если НЕ ЗначениеЗаполнено(Форма.Объект.Ссылка)

И все таки вопрос актуален в плане, что не выполняется условие:
Прикрепленные файлы:
83. sapervodichka 4280 28.04.21 11:01 Сейчас в теме
(82) попробуйте поменяйте код контроля в расширении, если есть в настройке сравнение на признак Проведен, то анализировать РежимЗаписиДокумента.Проведение и другие режимы по разному.
84. Sergey101081 28.04.21 15:31 Сейчас в теме
(83)

Ничего не надо менять в коде.
Помогло такое ограничение (поигрался в консоле запросов и нашел нужный вариант)
Прикрепленные файлы:
sapervodichka; +1 Ответить
85. gerasimovaol@rambler.ru 94 30.04.21 14:39 Сейчас в теме
Добрый день! А возможно ли распространить ограничение
и на пользователей с правами Администратор?
"Примечание: На пользователей с ролью "Полные права" ограничения не действуют." - читала.
86. gerasimovaol@rambler.ru 94 30.04.21 14:52 Сейчас в теме
Бухгалтерия предприятия, редакция 3.0 (3.0.89.47) Добавлены дополнительные сведения к справочнику затрат, например "Для статистики" и "Для тарифов", с помощью которых выполняется дополнительная группировка данных. Возможно ли ограничить доступ к значению дополнительных сведений элемента справочника "Для статистики" , а для "Для тарифов" дать возможность редактировать.
Или справочник "Договора" добавлены дополнительные сведения "ИдентификаторДоговораВнегейПрограммы". Возможно ли пользователям запретить редактировать если значение доп.сведений заполнено?
И тот же вопрос - А возможно ли распространить ограничение
и на пользователей с правами Администратор?
Оставьте свое сообщение
Вопросы с вознаграждением