Некоторые особенности работы с настройками прав доступа пользователей в типовых конфигурациях на управляемом приложении

Публикация № 300363 04.09.14

Администрирование - Информационная безопасность

Права доступа Профили групп доступа Группы доступа роли права

Разработчики в управляемых приложениях применили новый механизм настройки прав доступа, о которых и пойдет речь.
Будут перечислены все те грабли, которые собрал автор, чтобы вы о них знали.
Наверняка, уже все знают, что из себя представляет новая система, поэтому предистория вкрадце:


Как было раньше( в обычном приложении):


Есть документ. Есть Роли - ПолныеПрава, ДокументНетДоступа, ДокументТолькоЧтение, ДокументЧтениеИРедактирование. В конфигураторе(аналогичный механизм в реж предприятия) вы выставляете пользователям эти роли и у них появляются соответствующие права доступа на документ. Все просто и скучно и даже зевать хочется.



С введением управляемого приложения разработчики решили усложнить(читается как расширить) настройки прав доступа. Теперь:
Вводная та же. Чтобы дать пользователю какие-то права на документ - сначала вам необходимо создать элемент справочника Профили групп доступа. Это некий агрегирующий(суммирующий значения) объект, который объединяет роли в группы ролей. Теоритически таких профилей можно создать сколько угодно много с различным набором ролей( N*(n-1), где N - количество ролей), но на практике количество профилей определяется количеством должностных обязанностей пользователей в организации и их гораздо меньше, чем ролей.
Создаем профили Бесправный(с ролью ДокументНетДоступа), Аудитор(с ролью ДокументТолькоЧтение), Бухгалтер(с ролью ДокументЧтениеИРедактирование).
Чтобы "привязать" эти профили к пользователям - нужно создать элементы справочника ГруппыДоступа. В типовых они создаются автоматически, когда вы отмечаете галочками профили для пользователя. Этот справочник соединяет профиль и пользователя(или нескольких пользователей).
При записи этого элемента справочника система автоматически добавляет роли (из профиля) в роли пользователя. Поэтому не стоит напрямую редактировать роли в конфигураторе, как раньше - при редактировании прав в Предприятии все роли в конфигураторе будут обновлены на роли из профилей пользователя. Кроме того, будет наблюдаться явное противоречение между набором профилей с ролями и ролями, установленными в конфигураторе.




Как хранятся роли в Профиле групп доступа, спросите вы. Ведь роли - это объекты МД, это не ссылочные типы. Отвечаю - для этого(и не только) разработчики создали служебный справочник ИдентификаторыОбъектовМетаданных, в котором хранится( в иерархии!) имена, синонимы, значения пустых ссылок всех объектов МД. Если вы хотите создать Профиль программно и добавить в него роль, то код примерно будет таким:






	РодительРоли = Справочники.ИдентификаторыОбъектовМетаданных.НайтиПоНаименованию("Роли");//ничего страшного искать по наименованию, 

	//справочник - служебный и непосредственного редактрования в нем нет

	ИдентификаторМоейРоли = Справочники.ИдентификаторыОбъектовМетаданных.НайтиПоРеквизиту("Имя","МояРоль",РодительРоли);

	Если ЗначениеЗаполнено(ИдентификаторМоейРоли) Тогда

	НайденныйИдентификаторМоейРоли = МойПрофиль.Роли.Найти(ИдентификаторМоейРоли );

	Если НайденныйИдентификаторМоейРоли= неопределено тогда

	НовСтрока = МойПрофиль.Роли.Добавить();

	НовСтрока.Роль = ИдентификаторМоейРоли;

	КонецЕсли;

	КонецЕсли;






 Но если мы добавили новую роль в конфигурации, то как она попадет в справочник? Хороший вопрос. У справочника ИдентификаторыОбъектовМетаданных есть метод, позволяющий обновлять его данные. это:


Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника(ИСТИНА,ЛОЖЬ,ЛОЖЬ);//ЕстьИзменения, ЕстьУдаленные, ТолькоПроверка 


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


Отлично. Роль добавили, идентификаторы обновили.


Но обратная связь не работает - вы в режиме предприятия назначили пользователю профиль( с созданием группы доступа), а роль у пользователя в конфигураторе не добавилась! Что делать?
За синхронизацию ролей/профилей отвечает константа ПараметрыРаботыПользователей. Если роли не обновляются в конфигураторе, следует обновить её значение:


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


Хорошо, скажите вы. А как быть, если я хочу создать группы доступа программно? Да не вопрос. Единственное ограничение - не допускаются дубли связок Профиль-Пользоваль в группах доступа. Примерный код будет таким:





	//МойПрофиль - профиль, который мы хотим добавить пользователю МойПользователь

	Если МойПрофиль = Справочники.ПрофилиГруппДоступа.Администратор Тогда // если мы хотим пользователю дать роль Администратора, 

	//то нельзя создавать новую группу доступа, надо редактировать предопределенную Администраторы

	ГруппаДоступаАдм = Справочники.ГруппыДоступа.Администраторы;

	Если ГруппаДоступаАдм.Пользователи.Найти(МойПользователь) = неопределено Тогда

	ГруппаДоступаАдмОб= ГруппаДоступаАдм.ПолучитьОбъект();

	НовСтрока = ГруппаДоступаАдмОб.Пользователи.Добавить();

	НовСтрока.Пользователь = МойПользователь;

	ГруппаДоступаАдмОб.Записать();

	КонецЕсли;

	Иначе // все прочие профили, кроме Администратора

	Запрос = новый Запрос;

	Запрос.Текст = "ВЫБРАТЬ

	|ГруппыДоступа.Ссылка

	|ИЗ

	|Справочник.ГруппыДоступа КАК ГруппыДоступа

	|ГДЕ

	|ГруппыДоступа.Профиль = &Профиль

	|И (ГруппыДоступа.Пользователь = &Пользователь

	|ИЛИ ГруппыДоступа.Пользователи.Пользователь = &Пользователь)

	|И НЕ ГруппыДоступа.ПометкаУдаления ";

	Запрос.УстановитьПараметр("Профиль",МойПрофиль);   

	Запрос.УстановитьПараметр("Пользователь",МойПользователь);

	Выборка = Запрос.Выполнить().Выбрать();

	Если НЕ Выборка.Следующий() тогда //нет такого профиля, надо создать

	МояГруппаДоступаОб = справочники.ГруппыДоступа.СоздатьЭлемент();

	МояГруппаДоступаОб.Наименование = Строка(МойПрофиль);

	МояГруппаДоступаОб.Пользователь = мойПользователь;

	Нов = МояГруппаДоступаОб.Пользователи.Добавить();

	Нов.Пользователь = МойПользователь;

	МояГруппаДоступаОб.Профиль = МойПрофиль;

	МояГруппаДоступаОб.Записать();

	КонецЕсли; //Нет такого профиля

	КонецЕсли;//профиль Администратор









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




Раз уж пошли по программному пути, вот код, который добавляет пользователя в справочник Пользователи и ПользователяИБ в ПользователиИнформационнойБазы:


	ПользовательИБ = ПользователиИнформационнойБазы.СоздатьПользователя();

	ПользовательИБ.имя = "Иванов";

	ПользовательИБ.ПолноеИмя = "Иванов Иван Иванович";

	ПользовательИБ.АутентификацияСтандартная = ИСТИНА;

	ПользовательИБ.Пароль = "";

	ПользовательИБ.записать();

	Пользователь = Справочники.Пользователи.НайтиПоРеквизиту("ИдентификаторПользователяИБ",ПользовательИБ.УникальныйИдентификатор));

	если Пользователь.Наименование = "" Тогда

	//создаем пользователя 

	ПользовательОб = Справочники.Пользователи.СоздатьЭлемент();

	ОписаниеПользователяИБ = Пользователи.НовоеОписаниеПользователяИБ();

	ЗаполнитьЗначенияСвойств(ОписаниеПользователяИБ,ПользовательИБ);

	ОписаниеПользователяИБ.УникальныйИдентификатор =  ПользовательИБ.УникальныйИдентификатор;

	ПользовательОб.Наименование = ОписаниеПользователяИБ.ПолноеИмя; 

	ОписаниеПользователяИБ.Вставить("Действие","Записать");

	ПользовательОб.ДополнительныеСвойства.Вставить("ОписаниеПользователяИБ",ОписаниеПользователяИБ);

	ПользовательОб.записать();

	 КонецЕсли;













Если вы добавляете не программно, то добавлять нужно из режима Предприятия - тогда пользовательИБ у вас сам создатся. 
И если раньше, в обычном приложении, достаточно будет добавить польз в конфигураторе - и при заходе в Предприятие, этот польз сам создавался в спр Пользователи, то с управляемым приложением такой фокус не прокатит - система не даст зайти под пользователемИБ, которого нет в справочнике Пользователи.


Пока вроде все. Если будет что-то еще, буду дополнять.


Специальные предложения

Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. TMV 14 04.09.14 15:15 Сейчас в теме
(0) Оформление бы поправили, а так любопытно.
drygina; Anchoret; user777757; newgluk; +4 Ответить
2. gull22 88 10.09.14 10:13 Сейчас в теме
Спасибо за информацию. Плюс
3. Yimaida 35 10.09.14 12:36 Сейчас в теме
Несмотря на небольшой объем, статья достаточно содержательная. Картинки добавили бы жизни к оформлению, так же как и раскраска кода. А оформление примера кода в обработку принесло бы автору sm.
В любом случае +.
4. alyaev.a.v 10.09.14 11:50 Сейчас в теме
Инфа полезная, но оформить бы.
5. Yurcha62 78 10.09.14 08:26 Сейчас в теме
А воспользоваться обработкой "ИнструментыРазработчикаОбновлениеВспомогательныхДанных" из БСП не судьба? Зачем изобретать велосипед?
6. Stim213 405 10.09.14 12:44 Сейчас в теме
(5) Yurcha62, Обработка, безусловно, полезная, и ею стоит пользоваться, как многими другими, но только после того, когда знаешь, что она делает и зачем. В данной небольшой статье я и постарался принести это знание.
Jreil; madvaska; user1311038; user659168_xec8787; user777757; mikeA; CyberCerber; monkbest; +8 Ответить
7. meganibler 72 10.09.14 13:55 Сейчас в теме
Спасибо за статью.
Недавно потратил полдня, чтобы выяснить ровно то, что здесь описано.

Теперь, при добавлении новых объектов план действий такой:
1) Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();
2) Константы.ПараметрыРаботыПользователей.СоздатьМенеджерЗначения().ОбновитьОбщиеПараметры(ЕстьИзменения, ТолькоПроверка);
в УТ11 можно и так:
ПользователиСлужебный.ОбновитьПараметрыРаботыПользователей(ЕстьТекущиеИзменения, ТолькоПроверка);
3) Редактировать профили групп пользователей

Garik8866; JohnyDeath; chmv; ddd_l; +4 Ответить
10. Поручик 4535 17.09.14 11:50 Сейчас в теме
(7) А ещё связки этих процедур срабатывают при изменении версии конфигурации.
VasMart; drygina; +2 Ответить
11. AlexandrIII 01.11.14 13:56 Сейчас в теме
(7) А ещё связки этих процедур срабатывают при изменении версии конфигурации.


На ИТС об этом пишут в доках по внедрению/разработке БСП:

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

Соответственно в процессе разработки необходимо учитывать, что для «вступиления в силу» перечисленных изменений необходим запуск обработчиков (перед проверкой текущей разработки).

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

user811769; drygina; +2 Ответить
16. Spacer 312 05.01.16 14:27 Сейчас в теме
(7) meganibler, что-то мне это не помогает.:(
Добавил свою роль, обновил справочник "ИдентификаторыОбъектовМетаданных",
обновил константу "ПараметрыРаботыПользователей", отредактировал профили групп доступа,
а роль у пользователя так и не появилась.
and60; amatoravg; solary; real_MaxA; mm_84; +5 Ответить
20. Gureev 17.11.16 23:31 Сейчас в теме
(16) Spacer,
Добавил свою роль, обновил справочник "ИдентификаторыОбъектовМетаданных",
обновил константу "ПараметрыРаботыПользователей", отредактировал профили групп доступа,
а роль у пользователя так и не появилась.


надо пометить группу доступа на удаление, и снять пометку.
Так бывает когда группы созданы до того, как выполнены эти действия.
Student1C; cheiser1982; boardone; Orlando Skibraves; +4 Ответить
8. monkbest 112 10.09.14 15:07 Сейчас в теме
Отличная статья. Жаль что в 3.0ных решениях есть еще грабли. Недавно на них наступил на примере ЗУП 3.0.
Коротко следующее:
Я хотел дать пользователю права на один отчет. Все оказалось не так просто.

1. При запуске программа охренеть сколько всего читает и проверяет. В роль пришлось включить много служебных справочников, несколько общих форм и регистров сведений.
2. отчет на компановке требует не "чтение", а "просмотр". А значит пользователь через расшифровки может залезть внутрь и увидеть лишнее
3. При правах на просомотр, если справочник был в интерфейсе, то он в нем и останется, а задача стоялала в интерфейсе оставить только отчет. Пришлось править командный интерфейс.

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

И вообще в ЗУП 3.0 более 140 ролей типовых - они в 1С совсем охренели.
madvaska; Tolpinski; Garik8866; freeek; AndreykO; CratosX; nikolka75; ZVN; mikeA; Ksho; tvark; Дмитрий74Чел; +12 Ответить
12. trumanl 12 25.11.14 17:10 Сейчас в теме
(8) monkbest, в ЗУП 3.0 если быть точным, 243 роли !!!! это кошмар какой-то.
на каждый "пшик" - роль.
13. monkbest 112 26.11.14 11:16 Сейчас в теме
(12) trumanl, видимо, от релиза к релизу их число растет:)
user717534; +1 Ответить
9. Lapitskiy 990 12.09.14 04:31 Сейчас в теме
Вот здесь я подробно с картинаками описывал: статья про УТ 11
14. ZhokhovM 422 25.02.15 15:58 Сейчас в теме
Минус за плохое оформление.
15. stas1kbob 67 20.03.15 15:52 Сейчас в теме
статья хорошая! будет ли обновление? 1сники что- то заново нагородили в ролях
17. chmv 11.02.16 09:59 Сейчас в теме
18. Strange Device 307 14.08.16 21:18 Сейчас в теме
При работе с правами, похоже, есть еще одна хитрость, если у пользователя установлены Полные права, а Вы хотите добавить права, которые будут работать отдельно, скажем, на новые реквизиты конфигурации хотелось бы задавать права полностью отдельно, то бишь независимо от наличия или отсутствия полных прав у пользователя, то оказывается, что установка галки в базе данных не изменяет доступность данной дополнительной роли в конфигураторе :-( , то бишь приходится либо самому устанавливать эту галку в конфигураторе, либо отказываться от таких "дополнительных" прав. При этом, если полных прав у пользователя нет, то все работает нормально. Данное замечание актуально не только для дополнительных прав, но и для типовых... Идея, конечно понятна, зачем нужна куча галок, если достаточно одной "ПолныеПрава", но честно сказать такой вариант несколько затрудняет администрирование дополнительных объектов...
bestsader; Terve!R; freeek; AndreykO; Дмитрий_кдс; doda666; HLighter2; onetone; Асов; CratosX; amatoravg; Yakud3a; solary; nbeliaev; svilsa; +15 Ответить
21. solary 175 31.01.17 08:21 Сейчас в теме
(18)
установлены Полные права, а Вы хотите добавить права, которые будут работать отдельно, скажем, на новые реквизиты конфигурации хотелось бы задавать права полностью отдельно, то бишь независимо от наличия или отсутствия полных прав у пользователя, то оказывается, что установка галки в базе данных не изменяет доступность данной дополнительной роли в конфигураторе :-( , то бишь приходится либо самому устанавливать эту галку в конфигураторе, либо отказываться от таких "дополнительных" прав. При этом, если полных прав у пользователя нет, то все работает нормально. Данное замечание актуально не только для дополнительных прав, но и для типовых... Идея, конечно понятна, зачем нужна куча галок, если достаточно одной "ПолныеПрава", но честно сказать такой вариант несколько затрудняет админист


Спасибо! А я всю голову сломал, что не так.
31. 7OH 32 04.09.19 14:29 Сейчас в теме
(18) Да, если есть ПолныеПрава - другие удаляются при записи профилей или групп.
Как это красиво обойти БЕЗ добавления в коде "ИЛИ РольДоступна("МоиПолныеПрава")" ?
32. Terve!R 11.11.19 13:48 Сейчас в теме
(31) так роль не будет доступна, в конфигураторе все галки с доп ролей снимаются((
Замучился уже ставить галки на место.
Видимо придется убирать полные права у всех, но у администратора то они должны быть, получается все равно галка у доп роли будет слетать?((
Может найти где-то это место где удаляются эти галки при записи профиля ролей?

Вот нашел тут решение:
Создать группу ролей по нужной роли и в коде РольДоступна("МояРоль") менять на РольДоступнаПоГруппе("МояРоль")
38. muzzombie 23.12.20 12:45 Сейчас в теме
(32) Здравствуйте! Спасибо за решение! А в чем может быть причина, если 1С 8.3 понимает оператор "РольДоступна", но знать не знает про "РольДоступнаПоГруппе"? Выдает ошибку.
39. 7OH 32 23.12.20 12:48 Сейчас в теме
(38) автор поста забыл указать видимо, что эту функцию ещё надо создать где-то в общем модуле с галкой глобальный
19. nadegda-tere 06.10.16 07:33 Сейчас в теме
Обновление константы:
Константы.ПараметрыРаботыПользователей.СоздатьМенеджерЗначения().ОбновитьОбщиеПараметры();

Отрабатывает только при установке монопольного режима. Поэтому чтобы собственные роли отработали (встали галочки у ролей в конфигураторе) при создании пользователя потребуется зайти в монопольном режиме.
Как этого можно избежать?
22. ya.Avoronov 111 13.02.17 10:57 Сейчас в теме
Очень полезная статья, спасибо!
23. fokin 11.05.17 18:18 Сейчас в теме
просто мрак
из простого и доступного метода сделать дикие грабли

а за статью спасибо, помогло
Stivens; Асов; +2 Ответить
24. uno-c 176 28.06.17 20:26 Сейчас в теме
Теоритически таких профилей можно создать сколько угодно много с различным набором ролей( N*(n-1), где N - количество ролей)

Теоретически количество профилей с различным набором ролей =2^N, в т.ч. однин пустой профиль (без ролей)
25. psy_sln 19.07.17 10:12 Сейчас в теме
Спасибо за статью, роль добавил, взлетело. Но есть такой вопрос: моя новая роль должна открывать доступ к одному справочнику с использованием RLS, т.е. хотелось бы заполнять вкладку "Ограничения доступа" для моего справочника, но не понятно как будут передаваться значения от туда в шаблоны RLS... Буду рад любой информации по данной теме :)
26. servisbox 17 28.11.17 08:31 Сейчас в теме
Отлично, благодарю. Инфа то, что нужно, второй день ковырял сам, пока не наткнулся на Вас.
27. Sergoninfostarru 2 07.04.18 01:09 Сейчас в теме
Хорошая статья. А как поступать с разными доступами до ролей для пользователя, созданного в Конфигураторе и пользователя, созданного в Предприятии? На примере УТ : в Конфигураторе - до 40 доступных ролей (Администратор системы, ..., Чтение электронных документов) можно выбрать для пользователя, созданного в Конфигураторе, а для Предприятия - можно выбрать только группу доступа - Администраторы, остальные группы нужно создавать самостоятельно.
Так получается, что сначала необходимо создать пользователя в Предприятии, а потом зайти в Конфигуратор и настроить доступные роли пользователя? Но тогда возникает большая проблема : если в Предприятии пользователя редактировали (например, изменили имя), то все настроенные доступные роли в Конфигураторе слетают и остается только "Администратор системы".
28. Stim213 405 07.04.18 08:36 Сейчас в теме
(27)
Лучший Отдать $m + – Ответить
27. Сергей (Sergoninfostarru) 2 07.04.18 01:09
Хорошая статья. А как поступать с разными доступами до ролей для пользователя, созданного в Конфигураторе и пользователя, созданного в Предприятии? На примере УТ : в Конфигураторе - до 40 доступных ролей (Администратор системы, ..., Чтение электронных документов) можно выбрать для пользователя, созданного в Конфигураторе, а для Предприятия - можно выбрать только группу доступа - Администраторы, остальные группы нужно создавать самостоятельно.
Так получается, что сначала необходимо создать пользователя в Предприятии, а потом зайти в Конфигуратор и настроить доступные роли пользователя? Но тогда возникает большая проблема : если в Предприятии пользователя редактировали (например, изменили имя), то все настроенные доступные роли в Конфигураторе слетают и остается только "Администратор системы".


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

1С считает, что раз у пользователя есть полные права(Администратор системы), то никаких других прав ему давать не следует. И это в общем-то логично. Но вы хотите для пользователей с полными правами вести раздельный управленческий учет.
Вариант: в Предприятии назначаете пользователю Полные права+ваши управленческие роли.И т.к. в Конфигураторе у пользователя будет только Полные права, заменяете свой код с РольДоступна("МояУправленческаяРоль") на функцию, которая определяет, есть ли для текущего пользователя группа с этой ролью РольДоступнаПоГруппе("МояУправленческаяРоль") .
33. Terve!R 11.11.19 13:50 Сейчас в теме
(28)
РольДоступнаПоГруппе("МояУправленческаяРоль")

Спасибо! Всю голову сломал уже с этими слетающими галками у пользователей с полными правами!
34. Terve!R 11.11.19 14:50 Сейчас в теме
(28) Стало понятнее, но вот только в УТ 11.4 не ничего такого типа "РольДоступнаПоГруппе"
Имелось ввиду, что нужно самому такую функцию писать?
muzzombie; +1 Ответить
37. muzzombie 23.12.20 12:44 Сейчас в теме
(28)
РольДоступнаПоГруппе

Здравствуйте! Спасибо за решение! А в чем может быть причина, если 1С 8.3 понимает оператор "РольДоступна", но знать не знает про "РольДоступнаПоГруппе"? Выдает ошибку.
29. johnnyshut23 66 30.04.18 21:55 Сейчас в теме
Хорошая публикация, спасибо! воспользуюсь!
30. leksv 12.03.19 16:00 Сейчас в теме
РодительРоли = Справочники.ИдентификаторыОбъектовМетаданных.НайтиПоНаименованию("Роли");//ничего страшного искать по наименованию,

//справочник - служебный и непосредственного редактрования в нем нет
ИдентификаторМоейРоли = Справочники.ИдентификаторыОбъектовМетаданных.НайтиПоРеквизиту("Имя","МояРоль",РодительРоли);

Почему то ошибка выходит при поиске по реквизиту. "Имя" = "БазовыеПрава"; "МояРоль" = "Базовые права" (тип ОбъектМетаданных)
35. catlina 11.03.20 02:11 Сейчас в теме
Не нашла в бухгалтерии 3.0.75.109 константы ПараметрыРаботыПользователей. Что-то поменялось?
40. Xershi 1257 16.03.21 16:44 Сейчас в теме
(35) код из старой базы:
// Процедура обновляет общие параметры работы пользователей при изменении конфигурации.
// 
// Параметры:
//  ЕстьИзменения - Булево (возвращаемое значение) - если производилась запись,
//                  устанавливается Истина, иначе не изменяется.
//
Процедура ОбновитьОбщиеПараметры(ЕстьИзменения = Неопределено, ТолькоПроверка = Ложь) Экспорт
	
	УстановитьПривилегированныйРежим(Истина);
	
	Если ТолькоПроверка ИЛИ МонопольныйРежим() Тогда
		СнятьМонопольныйРежим = Ложь;
	Иначе
		СнятьМонопольныйРежим = Истина;
		УстановитьМонопольныйРежим(Истина);
	КонецЕсли;
	
	НазначениеРолей = НазначениеРолей();
	ПроверитьНазначениеРолей(НазначениеРолей);
	
	ВсеРоли = ВсеРоли();
	
	Блокировка = Новый БлокировкаДанных;
	ЭлементБлокировки = Блокировка.Добавить("Константа.ПараметрыРаботыПользователей");
	ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
	
	НачатьТранзакцию();
	Попытка
		Блокировка.Заблокировать();
		
		Параметры = Неопределено;
		ЕстьТекущиеИзменения = Ложь;
		СтандартныеПодсистемыСервер.ОбновитьПараметрРаботыПрограммы("ПараметрыРаботыПользователей",
			"НазначениеРолей", НазначениеРолей, ЕстьТекущиеИзменения, ТолькоПроверка, Параметры);
		
		Если Не (ТолькоПроверка И ЕстьТекущиеИзменения) Тогда
			СтандартныеПодсистемыСервер.ОбновитьПараметрРаботыПрограммы("ПараметрыРаботыПользователей",
				"ВсеРоли", ВсеРоли, ЕстьТекущиеИзменения, ТолькоПроверка, Параметры);
		КонецЕсли;
		
		ЗафиксироватьТранзакцию();
	Исключение
		ОтменитьТранзакцию();
		Если СнятьМонопольныйРежим Тогда
			УстановитьМонопольныйРежим(Ложь);
		КонецЕсли;
		ВызватьИсключение;
	КонецПопытки;
	
	Если ЕстьТекущиеИзменения Тогда
		ЕстьИзменения = Истина;
	КонецЕсли;
	
	Если Не (ТолькоПроверка И ЕстьТекущиеИзменения) Тогда
		СтандартныеПодсистемыСервер.ПодтвердитьОбновлениеПараметраРаботыПрограммы(
			"ПараметрыРаботыПользователей", "НазначениеРолей");
		
		СтандартныеПодсистемыСервер.ПодтвердитьОбновлениеПараметраРаботыПрограммы(
			"ПараметрыРаботыПользователей", "ВсеРоли");
	КонецЕсли;
	
	Если СнятьМонопольныйРежим Тогда
		УстановитьМонопольныйРежим(Ложь);
	КонецЕсли;
	
КонецПроцедуры
Показать

Похоже сейчас нужно использовать регистр сведений "ПраваРолей".
РегистрыСведений.ПраваРолей.ОбновитьДанныеРегистра();

Но для расширение со своей ограниченной ролью в режиме совместимости 8.3.12 не помогло. Как итог профиль сделал.
Роль в конфигураторе назначил.
36. visusby 5 22.05.20 08:57 Сейчас в теме
41. AnryMc 811 14.09.21 09:16 Сейчас в теме
Спасибо! Узнал новое...

З.Ы. И ещё узнал новое слово: "противоречение" ;-)
Оставьте свое сообщение

См. также

Права доступа в 1С:Документооборот 2.1 Промо

Информационная безопасность Документооборот и делопроизводство Документооборот и делопроизводство v8 ДО Бесплатно (free)

В программе 1С:Документооборот ред 2.1 механизм системы прав доступа сильно изменился. С одной стороны, права доступа в данной версии стали проще и быстрее, с другой стороны - права по рабочим группам объектов теперь могут противоречить политикам доступа. Разберемся в данной статье как работает механизм прав доступа в 1с документообороте 2.1.

16.09.2016    87661    vlush78    0    

Использование Gatekeeper для авторизации доступа к HTTP публикации сервера 1С

Системное администрирование Информационная безопасность WEB v8 Бесплатно (free)

В статье опишу вариант настройки Keycloack и GoGatekepper для авторизации доступа к HTTP публикации сервера 1С

22.10.2021    327    malikov_pro    0    

Как доработать производительный RLS

Роли и права v8 1cv8.cf Россия Бесплатно (free)

Неоднократно в последнее время поступали задачи, когда требовалось доработать новый производительный RLS. В своей статье Ретунский Александр, программист компании АО «Корпоративные ИТ-проекты» (официальный партнер ИнфоСофт) опишет последовательность действий при доработке нового RLS, ключевые моменты и сложности, с которыми столкнулся. В Интернете статей или инструкций, которые подробно и просто описывают – как доработать производительный RLS, не так много и автор делиться своим опытом. В данной статье не будут описаны различия и плюсы/минусы между стандартным и производительным RLS, в Интернете по этому вопросу есть много информации.

18.10.2021    1991    Alexsandr_Retunskiy    4    

Добавление нового вида доступа в конфигурациях, построенных на БСП

БСП (Библиотека стандартных подсистем) Роли и права v8::Права 1cv8.cf Бесплатно (free)

Прочитаете и решите: надо оно вам или лучше по старинке. Рассмотрен простой вариант без групп доступа.

05.08.2021    1226    xrrg    2    

Доработки RLS. Примеры шаблонов. (в т.ч исключения из ограничений) Промо

Информационная безопасность v8 Бесплатно (free)

Допиливаем шаблоны RLS. Даем доступ пользователям к некоторым объектам

19.06.2013    70426    EvilDoc    38    

Статистика для кадровика

Роли и права v8 v8::СПР v8::Права ЗУП3.x Россия БУ Бесплатно (free)

Вызов отчетов статистики П-4 для кадровика.

05.05.2021    464    VladSmall2020    0    

Подготовка отчетности за 2020 год в условиях ограничений на уровне записей RLS в УПП 1.3

Регламентированная отчетность Роли и права v8 УПП1 Россия БУ НДС Бесплатно (free)

Если предприятие использует ограничения на уровне записей RLS в УПП 1.3 и ограничение на доступ к организациям, бухгалтерскую отчетность за 2020 год (конкретно Пояснения. Раздел 5 "Дебиторская и кредиторская задолженность") сформировать невозможно пользователю, у которого нет прав на чтение всех платежных поручений и кассовых ордеров по всем организациям. Происходит ошибка "У пользователя недостаточно прав на исполнение операции над базой данных.". Данная статья предлагает решение этой проблемы.

29.03.2021    821    ksnik    0    

Как убрать/заблокировать давно удаленных пользователей из Системы взаимодействия

Роли и права v8 1cv8.cf Россия Бесплатно (free)

Данная статья будет служить как вспомогательная человеку, столкнувшемуся на своем пути с Системой взаимодействия, и особо особенному человеку, у кого конфигурация 1С:Предприятие 8. Автосервис (1.6.16.153).

22.01.2021    881    user1135816    0    

Восстановление пароля в 1С 8.3

Пароли v8 1cv8.cf Бесплатно (free)

Здравствуйте, коллеги! Сегодня поговорим о восстановлении паролей 1С и трудностях, которые могут возникнуть у пользователя в процессе. Сейчас, если пользователь забыл пароль, ему необходимо обращаться к администратору базы, чтобы он сбросил его, назначив новый самостоятельно, либо поставив флаг о том, что при удачной авторизации пользователь может придумать новый пароль самостоятельно. Данная процедура занимает много времени как у пользователя, так и у администратора, отвлекая его от других дел.

22.12.2020    8683    Koder_Line    5    

Использование утилиты RING для проверки информации о программных лицензиях

Сервисные утилиты Защита ПО v8 Бесплатно (free)

В 1С есть утилита для проверки файлов с лицензиями 1С. Утилита существует довольно давно, но информация по ней разбросана, малопонятна и много где устарела, поэтому опишу свой опыт установки утилиты и работы с ней. Работаем под Windows.

16.12.2020    14609    budidich    16    

Информационная безопасность 1С: Памятка для Обновлятора 1С

Защита ПО Пароли v8 БП3.0 Бесплатно (free)

— Три магнитофона, три кинокамеры заграничных, три портсигара отечественных, куртка замшевая... три...

10.12.2020    3896    Indgo    63    

Доступ на уровне записей в типовых конфигурациях. Настройка доступа пользователей с разделением по подразделениям/складам – практический пример

Роли и права v8 v8::Права 1cv8.cf Бесплатно (free)

Многим известно, что в современных конфигурациях, разработанных с использованием БСП, имеются широкие возможности для настройки прав доступа. В частности, реализован функционал разделения доступа на уровне записей (RLS). Однако администратор(разработчик) при планировании схемы доступа в организации неминуемо столкнется со сложностями, если временами путается в понятиях: Группы пользователей/Группы доступа/Профили групп доступа. В статье представлен принцип решения типичной задачи – ограничения прав пользователя на просмотр/изменение информации «чужих» складов и подразделений в конфигурации 1С: Управление торговлей 11.4.

25.11.2020    7808    Sergey1CSpb    5    

Настраиваем PWA приложение на платформе 8.3.18 с бесплатным действительным сертификатом SSL

Информационная безопасность ИТ-инфраструктура IIS v8 1cv8.cf Бесплатно (free)

Вышла платформа 8.3.18 с поддержкой PWA приложений. Получаем БЕСПЛАТНЫЙ действительный сертификат SSL. Настраиваем прогрессивное веб приложение для опубликованной бухгалтерии 3.0 на IIS сервере.

18.10.2020    6737    IamAlexy    32    

RLS добавление ограничения доступа к данным по произвольному справочнику через штатные механизмы

БСП (Библиотека стандартных подсистем) Информационная безопасность Роли и права v8 КА2 Россия УУ Бесплатно (free)

Решал задачу ограничения доступ к объектам по справочнику "Банковские счета" штатными средствами БСП. Конфигурация КА 2.2. В остальных на БСП должно работать так же. Хотел сделать инструкцию для себя на будущее, решил поделиться.

05.08.2020    3703    ER34    2    

Изменение RLS в ЗУП 3.1 для ограничения доступа к списку сотрудников

Роли и права v8 v8::Права ЗУП3.x Россия Бесплатно (free)

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

10.07.2020    4075    Zhilyakovdr    0    

Безопасность мобильных приложений 1С, взгляд по диагонали

Информационная безопасность Мобильная разработка v8::Mobile 1cv8.cf Бесплатно (free)

Что приходит первое в голову при словах «1С Предприятие»? Даже тем, кто далек от ИТ, представляется большущий компьютер (а тем, кто недалек, стойка двух-юнитных серверов), рядом слушает музыку сервера (как вариант просто музыку) сисадмин, за стеной в опен-спейсе менеджеры принимают заказы и бухгалтерия, сдающая отчетность. «Зарплата, зарплата!»: слышны их радостные крики. «И кадры»: уточняет HR. Да, все верно. Это 1С. Кто в теме, напомнит про крики не совсем приятные: «Все тормозит! Сделайте что-нибудь, #тыжпрограммист». И борющихся за живучесть ИТ-шников. В обычном офисном потоке дел, редко кто задумывается о безопасности. А тех, кто задумывается, прошу под кат…

05.06.2020    4668    capitan    33    

Тестируем быстро. Запуск сеанса под другим пользователем за 6 секунд!

Роли и права Пароли v8 v8::Права 1cv8.cf Бесплатно (free)

Как часто вам приходится запускать отладку под другим пользователем? Сколько времени у вас занимает запуск "чужого" сеанса? Убрать (если имеется) у себя аутентификацию ОС, сбросить пароль пользователя и восстановить его потом и т.д. Есть простой и действенный код, который поможет запускать сеансы под другим пользователем без ручной смены параметров аутентификации.

06.05.2020    5337    feva    22    

Права пользователя исключительно на просмотр (чтение) для УТ 11.4

Роли и права v8 v8::Права УТ11 Россия Бесплатно (free)

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

21.11.2019    10792    Aleksandr55555    8    

Типичные ошибки при разработке прав доступа

Роли и права v8 v8::Права Бесплатно (free)

Рассмотрим самые распространенные ошибки в разработке прав доступа.

02.10.2019    25695    YPermitin    57    

Проверка наличия роли у пользователя

Роли и права v8 v8::Права 1cv8.cf Бесплатно (free)

Допустим, мы добавили новую роль в конфигурацию. Потом добавили её в профиль группы доступа и назначили соответствующую группу доступа пользователю. Однако, в конфигурациях на основе БСП все известные программные проверки данной роли при включении пользователя в предопределенную группу доступа "Администраторы" не работают. В статье приведено решение данной задачи.

29.06.2019    41604    ni_cola    28    

Назад в прошлое! Небольшие заметки по администрированию пользователей в УПП

Роли и права v8 УПП1 Бесплатно (free)

Небольшие заметки по функционалу "Администрирование пользователей" конфигурации "Управление производственным предприятием" версии 1.3. Затрагиваются такие темы как: роли, профили доступа, дополнительные права, настройки пользователей и ограничения доступа на уровне записей (RLS).

06.06.2019    16465    YPermitin    21    

Подсистема БСП «Управление доступом», основные объекты и регистры

БСП (Библиотека стандартных подсистем) Роли и права v8 v8::УФ v8::Права 1cv8.cf Бесплатно (free)

Основные принципы работы подсистемы «Управление доступом» из состава БСП. Виды доступа, ограничение доступа на уровне записей. Описание основных объектов и регистров, используемых подсистемой.

23.05.2019    32647    ids79    9    

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

Практика программирования БСП (Библиотека стандартных подсистем) Роли и права v8 v8::Права Бесплатно (free)

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    64422    ids79    11    

Влияние настройки роли на потребление памяти

Роли и права v8::Права 1cv8.cf Бесплатно (free)

На днях разбирался с проблемой с потреблением памяти процессами конфигуратора и rphost. Как оказалось - причина в настройках ролей. Один поворот не туда, и настройки роли приводят к чрезмерному потреблению оперативки.

29.01.2019    14347    mickey.1cx    15    

Использование утилиты ring для выяснения данных о программных лицензиях

Информационная безопасность v8 Бесплатно (free)

Использование утилиты ring для управления программными лицензиями без ее установки на компьютер пользователя.

22.12.2018    12886    Vovan58    20    

Доработка RLS для УНФ

Роли и права v8::Права 1cv8.cf Бесплатно (free)

Инструкция для тех, кто столкнулся с RLS на управляемых формах впервые и не знает, с чего начать.

14.05.2018    18182    FesenkoA    10    

Решение проблемы автоматического утверждения расчета кадровиком документов. Разграничение прав кадровиков и расчетчиков. ЗУП 3.1

Информационная безопасность Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 v8::СПР v8::Права ЗУП3.x БУ Бесплатно (free)

Статья посвящена тем, кто столкнулся с проблемой автоматической установки "Расчет утвердил". Также рассматривается решение проблемы с отображением ФОТ и оклада у кадровика. Добавление роли ЧтениеДанныхДляНачисленияЗарплатыРасширенная кадровику без последствий для расчетчика.

04.04.2018    29082    leaderonex    25    

Проверка безопасности установленных паролей

Информационная безопасность v8 Бесплатно (free)

Код выводит не установленные пароли, а так же очень простые (1, 123) пароли пользователей. Список можно пополнять.

08.03.2018    10241    nomadon    13    

Информирование об утечке базы 1С

Информационная безопасность v8 1cv8.cf Бесплатно (free)

Когда работаешь в крупном холдинге, количество сотрудников, имеющих доступ к базам 1С неизменно растет. Рано или поздно появится задача по контролю утечки баз 1С. Конечно мы применим все меры по предотвращению утечки баз, но и информирование о случаях утечки тоже не повредит.

03.03.2018    14806    dima_home    81    

Отключаем предупреждения безопасности в 1С 8.3.9 и выше вручную

Информационная безопасность v8 v8::УФ v8::Права 1cv8.cf Бесплатно (free)

Как включить/выключить механизм защиты от опасных действий реализованный в новой версии платформы 1С:Предприятие 8.3.9. Одним из нововведений новой версии платформы 1С:Предприятие 8.3.9 стал механизм от опасных действий. После установки новой версии платформы 1С (начиная версии 8.3.9.2033) при попытке открыть внешнюю обработку или расширение программа выдает сообщение..

01.11.2017    56540    webresurs    12    

Управление доступом: роли, права, профили, группы доступа, функциональные опции, RLS

Роли и права v8::Права Бесплатно (free)

В 1С достаточно много механизмов, отвечающих за доступ к данным. Группы доступа, профили групп доступа, роли, права доступа, функциональные опции, RLS. Иногда сложно сразу понять, зачем все это нужно, как эти элементы друг с другом связаны и как ими пользоваться.

11.10.2017    120680    ekaruk    17    

Многофакторная авторизация. Шаблон проектирования для «1С:Предприятие 8». На примере API «Приватбанка» для юр. лиц

Информационная безопасность Обмен с банком v8 Бесплатно (free)

Многим из читателей знакомы понятия стандартов разработки и шаблонов проектирования. Для платформы «1С:Предприятие 8» на сайте its.1c.ru описаны базовые стандарты оформления кода и некоторые полезные примеры, но отсутствует информация об высокоуровневых абстракциях. Почти у каждого банка есть реализация обмена с конфигурациями «1С:Предприятие 8», но анализировать код, а тем более реализацию без слёз невозможно. Данная статья предлагает использовать некий шаблон оформления кода для многофакторной авторизации.

11.09.2017    13554    pbazeliuk    6    

Как создать свой профиль доступа в пользовательском режиме в 1С:Бухгалтерии 3.0

Информационная безопасность v8 БП3.0 Россия Бесплатно (free)

Допустим, есть следующая задача. Нужно добавить нового пользователя «Анна» в базу 1С:Бухгалтерия 3.0. При этом Анна должна только выставлять и распечатывать Счета на оплату. При этом все остальные документы и справочники только для просмотра. Т.е. добавлять новую номенклатуру и контрагентов она не может. Обязательное условие - не изменять типовую конфигурацию.

06.09.2017    18632    alfanika    4    

Копирование групп доступа между пользователями

Информационная безопасность v8 УТ11 Бесплатно (free)

Доработки, позволяющие переносить группы доступа между пользователями. Подходит для Управление торговлей для Украины, редакция 3.1, Управление торговлей, редакция 11.1 и, я думаю, для других конфигураций, написанных на базе БСП.

03.09.2017    9659    Pervuy    0    

1001-й способ ограничить пользователей 1С

Информационная безопасность v8 v8::Права Розница Бесплатно (free)

Описан еще один способ ограничить пользователя 1С, при помощи подписки на события

13.07.2017    14750    donpadlo    39    

Этюды по программированию. Разграничение прав

Роли и права v8 v8::Права Бесплатно (free)

Задача: Имеется конфигурация на базе Библиотеки Стандартных Подсистем(БСП) -практически любая стандартная конфигурация 1С. Есть, к примеры заказы покупателей. Есть группы менеджеров, каждая из которых должна иметь доступ только к заказам своей группы.

29.04.2017    14692    milkers    8    

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

Информационная безопасность v8 Бесплатно (free)

При постоянной доработке конфигураций в больших коллективах иногда возникает ситуация, когда программист поместил новые объекты в базу, а права на них дать забыл. При этом обновлять базу не позволяет бизнес. Что же делать? Есть небольшая хитрость.

06.04.2017    32840    Silenser    55    

Генерация паролей 1С 8.3 (код, инструкция)

Практика программирования Информационная безопасность v8 Бесплатно (free)

Инструкция по самостоятельному написанию генерации пароля в 8.3. Может кому-нибудь пригодится, т.к. весь материал на ИС за монетку а делать-то на самом деле нечего

22.07.2016    21362    Tommy82    18    

ubuntu + 1Cv8. Как правильно задать права доступа к базе в терминальном режиме

Информационная безопасность v8 Бесплатно (free)

Очень часто возникает проблема с установкой прав доступа в Linux. Один пользователь заходит в базу 1С нормально, а вот второго уже не пускает. Решение проблемы очень простое.

30.03.2016    23484    viptextil    14    

Готовим конфигурацию "Бухгалтерия предприятия 3.0" к аудиторской проверке

Информационная безопасность v8 БП2.0 Россия Бесплатно (free)

Бывают такие ситуации, что, предоставляя данные для аудиторской проверки, мы переживаем, как бы проверяющие не узнали чего лишнего. В этой статье я расскажу, как скрыть документы и ограничить отчеты по периоду на примере конфигурации "Бухгалтерия предприятия 3.0"

21.03.2016    11086    duhh    14    

Ограничение доступа к справочнику Склады для УТ 10.3

Информационная безопасность v8 УТ10 Россия Бесплатно (free)

Краткая инструкция простого метода, как ограничить видимость складов для определенных пользователей в УТ 10.3.

25.12.2015    20789    Viktor_Ermakov    9