Среда, 27.11.2024, 12:22
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
ЗащитаРолейРасширенийДляАдминовБСП3 1.1 и ЗУП 3.1.30.35
yasnovidyashiiДата: Среда, 28.08.2024, 11:04 | Сообщение # 1
Майор
Группа: Пользователи
Сообщений: 89
Репутация: 104
Статус: Оффлайн
Похоже, 1С внесли новую порцию изменений в алгоритм восстановления ролей администратора. Заметил после обновления ЗУПа до релиза 3.1.30.35.

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

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

 
yasnovidyashiiДата: Суббота, 12.10.2024, 14:03 | Сообщение # 2
Майор
Группа: Пользователи
Сообщений: 89
Репутация: 104
Статус: Оффлайн
В Бухгалтерии после обновления до 3.0.161.22 такая же история началась. Похоже, какое-то регламентное задание отрабатывает и переопределяет роли Администраторов.
Будет побольше времени, попробую поискать предметно.
 
yasnovidyashiiДата: Среда, 16.10.2024, 10:49 | Сообщение # 3
Майор
Группа: Пользователи
Сообщений: 89
Репутация: 104
Статус: Оффлайн
У тебя в коде используется следующая таблица значений:
Код
НовыеРолиПользователей = ТекущиеСвойстваПользователей(МассивПользователей).РолиПользователей;

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



Имена ролей же теперь нужно брать из свойства ИменаРолей структуры, возвращаемой функцией ТекущиеСвойстваПользователей()

Прикрепления: 6410035.png (18.0 Kb) · 9360241.png (28.0 Kb)
 
yasnovidyashiiДата: Среда, 16.10.2024, 11:39 | Сообщение # 4
Майор
Группа: Пользователи
Сообщений: 89
Репутация: 104
Статус: Оффлайн
У себя это решил следующим образом:

Код
&Перед("ОбновитьРолиПользователейИБ")
// https://github.com/SeiOkami/OneS/issues/223
Процедура зршОбновитьРолиПользователейИБ(ОбновляемыеПользователиИБ, ПарольПользователяСервиса)
    МассивПользователей = Новый Массив;
    Для Каждого ОписаниеПользователя Из ОбновляемыеПользователиИБ Цикл
        МассивПользователей.Добавить(ОписаниеПользователя.Ключ);
    КонецЦикла;    
    //zti { Yasnovidyashii [16.10.2024]
    //НовыеРолиПользователей = ТекущиеСвойстваПользователей(МассивПользователей).РолиПользователей;
    СвойстваПользователей = ТекущиеСвойстваПользователей(МассивПользователей);
    НовыеРолиПользователей = СвойстваПользователей.РолиПользователей;
    Если СвойстваПользователей.Свойство("ИменаРолей") <> Неопределено Тогда
        ИменаРолей = СвойстваПользователей.ИменаРолей;
        Для Каждого НоваяРольПользователей Из НовыеРолиПользователей Цикл
            НоваяРольПользователей.Роль = ИменаРолей[НоваяРольПользователей.РольСсылка];
        КонецЦикла;
    КонецЕсли;
    //zti } Yasnovidyashii  [16.10.2024]
    УдалитьОбновлениеПользователей = Новый Массив;
    Для Каждого ОписаниеПользователя Из ОбновляемыеПользователиИБ Цикл
        РолиДляУдаления = ОписаниеПользователя.Значение.РолиДляУдаления;
        Отбор = Новый Структура("Пользователь", ОписаниеПользователя.Значение.ПользовательСсылка);
        НовыеРоли = НовыеРолиПользователей.Скопировать(НовыеРолиПользователей.НайтиСтроки(Отбор), "Роль, РольСсылка");
        ОтменитьУдалениеРолей = Новый Массив;
        Для Каждого КлючИЗначение Из РолиДляУдаления Цикл
            Если ТипЗнч(КлючИЗначение.Значение) = Тип("ОбъектМетаданных") Тогда
                Роль = КлючИЗначение.Значение;
            Иначе
                Роль = Метаданные.Роли[КлючИЗначение.Ключ];
            КонецЕсли;
            Расширение = Роль.РасширениеКонфигурации();
            Если Истина
                И Расширение <> Неопределено
                И НовыеРоли.Найти(Роль.Имя, "Роль") <> Неопределено
            Тогда
                ОтменитьУдалениеРолей.Добавить(КлючИЗначение.Ключ);
            КонецЕсли;
        КонецЦикла;
        Для Каждого Ключ Из ОтменитьУдалениеРолей Цикл
            РолиДляУдаления.Удалить(Ключ);
        КонецЦикла;
        Если РолиДляУдаления.Количество() = 0 И ОписаниеПользователя.Значение.РолиДляДобавления.Количество() = 0 Тогда
            УдалитьОбновлениеПользователей.Добавить(ОписаниеПользователя.Ключ);
        КонецЕсли;
    КонецЦикла;
    Для Каждого Ключ Из УдалитьОбновлениеПользователей Цикл
        ОбновляемыеПользователиИБ.Удалить(Ключ);
    КонецЦикла;
КонецПроцедуры
 
tormozitДата: Пятница, 18.10.2024, 23:29 | Сообщение # 5
Генералиссимус
Группа: Администраторы
Сообщений: 6460
Репутация: 168
Статус: Оффлайн
У тебя в коде ошибка. Правильное условие должно быть   
   
Код
Если СвойстваПользователей.Свойство("ИменаРолей") Тогда

Какая там полная версия БСП?
 
yasnovidyashiiДата: Пятница, 18.10.2024, 23:38 | Сообщение # 6
Майор
Группа: Пользователи
Сообщений: 89
Репутация: 104
Статус: Оффлайн
Цитата tormozit ()
Какая там полная версия БСП?

В ЗУПе 3.1.10.277, в Бухгалтерии 3.1.10.295
 
tormozitДата: Пятница, 18.10.2024, 23:41 | Сообщение # 7
Генералиссимус
Группа: Администраторы
Сообщений: 6460
Репутация: 168
Статус: Оффлайн
Исправил и выложил новый файл.
 
  • Страница 1 из 1
  • 1
Поиск: