Вход | Регистрация
 
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) перезапиши профиль и пользователя

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.