1С:Предприятие
:: 1С:Предприятие 8 общая
|
|
| ||
ДенисЧ 08.12.20 - 13:09 | Есть базы БП3 (с доработками, в т.ч. и ролями)
Периодически слетают права - в предприятии галка есть, в конфигураторе нет. И РольДоступна() говорит, что нет. Если поставить в конфигураторе - работает. До следующего раза. Знаю, что в БСП надо раздавать права через справочник. Так и стараемся делать. Хочется узнать, в чём причина? Что нужно сделать, чтобы устранить источник проблемы? | ||
RomanYS 1 - 08.12.20 - 13:12 | (0)
1. Права раздавать из предприятия 2. Если есть "полные" права, то другие роли будут отключены 3. Если 1. и 2. мимо, нужно смотреть конкретику | ||
ДенисЧ 2 - 08.12.20 - 13:14 | (1) Полных прав, разумеется, у тех, у кого слетают, нет.
Какую конкретику именно смотреть? На что внимание обращать? | ||
Lexandr 3 - 08.12.20 - 15:03 | Не знаю, как в этом конкретном случае, но установка прав в режиме клиента устанавливает роли, которые прописаны в настройках набора профилей доступа. И если в профиле роль отключена, то и при записи прав эта роль отключается, независимо, что там до этого устанавливали в конфигураторе. | ||
ДенисЧ 4 - 08.12.20 - 15:06 | (3) В том и фигня, что в профиле роль есть... | ||
Kassern 5 - 08.12.20 - 15:08 | (0) откажись от ручной установки прав через конфигуратор и будет тебе счастье. Все делай через группы доступа в предприятии. Если уж так хочешь разобраться в причине, глянь в отладке, что происходит при записи "следующего раза". | ||
ildary 6 - 08.12.20 - 22:08 | Советую для надежности выполнить обработку ОбновлениеВспомогательныхДанных (из состава БСП, но только той же версии) со всеми галками насчёт прав. | ||
piter3 7 - 08.12.20 - 22:12 | А какой релиз, обоих штук? | ||
Dmitrii 8 - 08.12.20 - 22:37 | (0) Если правишь роли у какого-нибудь профиля, который создали сами в предприятии, то по идее ничего слетать не должно, кроме случаев, когда роль удаляется из конфигурации.
Если вы пытаетесь добавлять или удалять роли из поставляемых профилей (Бухгалтер, Главный бухгалтер и т.п.), то при каждом обновлении вспомогательных данных набор ролей в поставляемых профилях обновляется (перезаполняется заново). Если хотите, чтобы добавленные вами роли в поставляемом профиле сохранились, то придется в общем модуле УправлениеДоступомПереопределяемый доработать процедурку ПриЗаполненииПоставляемыхПрофилейГруппДоступа по типу такого (примерно). Процедура ПриЗаполненииПоставляемыхПрофилейГруппДоступа(ОписанияПрофилей, ПараметрыОбновления) Экспорт УправлениеДоступомБП.ЗаполнитьПоставляемыеПрофилиПользователей(ОписанияПрофилей);  // РаспознаваниеДокументов РаспознаваниеДокументов.ПриЗаполненииПоставляемыхПрофилейГруппДоступа(ОписанияПрофилей, ПараметрыОбновления);  // Конец РаспознаваниеДокументов  //_НТ добавлео начало  // Вызываем обработчик ПриЗаполненииПоставляемыхПрофилейГруппДоступа из добавленного нетипового модуля  // В этой поцедуре будет выполнено дозаполнение типовых Описаний профилей нетиповыми ролями,  // а так же добавление нетиповых описаний профилей УправлениеДоступомБТ.ПриЗаполненииПоставляемыхПрофилейГруппДоступа(ОписанияПрофилей, ПараметрыОбновления);  //_НТ добавлено конец КонецПроцедуры Ну и в своём собственном общем модуле (у нас он назван УправлениеДоступомБТ, сервер, клиент, внешнее соединение) слепить пару процедур примерно следующего содержания. Процедура ПриЗаполненииПоставляемыхПрофилейГруппДоступа(ОписанияПрофилей, ПараметрыОбновления) Экспорт  // Дополняем типовые описания профилей нетиповыми ролями  // ОписанияПрофилей - Массив - массив структур  // Структуры - со свойствами:  // * Наименование - Строка - наименование поставляемого профиля.  // * Роли - Массив - имена ролей (строки) поставляемого профиля. Для каждого ОписаниеПрофиля Из ОписанияПрофилей Цикл  // Описание для заполнения профиля "Главный бухгалтер". Если ОписаниеПрофиля.Наименование = "Главный бухгалтер" Тогда ОписаниеПрофиля.Роли.Добавить("ДобавлениеИзменениеДанныхБухгалтерииБТ"); ОписаниеПрофиля.Роли.Добавить("ДобавлениеИзменениеНастроекБухгалтерииБТ"); ОписаниеПрофиля.Роли.Добавить("ИспользованиеВсехСчетовВБухгалтерскихОтчетах"); ОписаниеПрофиля.Роли.Добавить("ПравоРучнойКорректировкиДвиженийДокументов"); ОписаниеПрофиля.Роли.Добавить("ДобавлениеИзменениеПапокИФайлов"); ОписаниеПрофиля.Роли.Добавить("ЧтениеИнформацииОВерсияхОбъектов"); ОписаниеПрофиля.Роли.Добавить("ЧтениеВерсийОбъектов");  // Описание для заполнения профиля "Бухгалтер". ИначеЕсли ОписаниеПрофиля.Наименование = "Бухгалтер" Тогда ОписаниеПрофиля.Роли.Добавить("ДобавлениеИзменениеДанныхБухгалтерииБТ"); ОписаниеПрофиля.Роли.Добавить("ЧтениеДанныхСотрудников"); ОписаниеПрофиля.Роли.Добавить("ЧтениеДанныхФизическихЛицЗарплатаКадры"); ОписаниеПрофиля.Роли.Добавить("ЧтениеИнформацииОВерсияхОбъектов"); ОписаниеПрофиля.Роли.Добавить("ЧтениеВерсийОбъектов"); ОписаниеПрофиля.Роли.Добавить("ЗакрытиеПериода"); УдалитьРольИзОписанияПрофиля(ОписаниеПрофиля, "ДобавлениеИзменениеДанныхСотрудников"); УдалитьРольИзОписанияПрофиля(ОписаниеПрофиля, "ДобавлениеИзменениеДанныхФизическихЛицЗарплатаКадры"); КонецЕсли; КонецЦикла; КонецПроцедуры // Процедура УдалитьРольИзОписанияПрофиля(ОписаниеПрофиля, Роль) // // Параметры: // ОписаниеПрофиля - Структура - описание профиля группы доступа. // Состав структуры можно посмотреть в УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа() // Роль - Строка - Имя роли (как оно задано в конфигурации), которую необходимо удалить из массива ролей в описании профиля // Процедура УдалитьРольИзОписанияПрофиля(ОписаниеПрофиля, Роль) ИндексРоли = ОписаниеПрофиля.Роли.Найти(Роль); Если ИндексРоли = Неопределено Тогда Возврат; КонецЕсли; ОписаниеПрофиля.Роли.Удалить(ИндексРоли); КонецПроцедуры | ||
ДНН 9 - 09.12.20 - 00:11 | (0) перезапиши профиль и пользователя |
|
Список тем форума |