Обновить используемость составов групп пользователей. Обновление ресурс Используется при изменении реквизитов ПометкаУдаления, Недействителен.
// Обновление ресурс Используется при изменении реквизитов ПометкаУдаления, Недействителен.
//
// Параметры:
// ПользовательИлиГруппа - СправочникСсылка.Пользователи,
// - СправочникСсылка.ВнешниеПользователи,
// - СправочникСсылка.ГруппыПользователей,
// - СправочникСсылка.ГруппыВнешнихПользователей.
//
// УчастникиИзменений - Массив (возвращаемое значение) - заполняет массив пользователями или
// внешними пользователями, для которых есть изменения.
//
// ИзмененныеГруппы - Массив (возвращаемое значение) - заполняет массив группами пользователей или
// группами внешних пользователей, для которых есть изменения.
//
Процедура ОбновитьИспользуемостьСоставовГруппПользователей(Знач ПользовательИлиГруппа,
Знач УчастникиИзменений,
Знач ИзмененныеГруппы) Экспорт
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПользовательИлиГруппа", ПользовательИлиГруппа);
Запрос.Текст =
"ВЫБРАТЬ
| СоставыГруппПользователей.ГруппаПользователей,
| СоставыГруппПользователей.Пользователь,
| ВЫБОР
| КОГДА СоставыГруппПользователей.ГруппаПользователей.ПометкаУдаления
| ТОГДА ЛОЖЬ
| КОГДА СоставыГруппПользователей.Пользователь.ПометкаУдаления
| ТОГДА ЛОЖЬ
| КОГДА СоставыГруппПользователей.Пользователь.Недействителен
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК Используется
|ИЗ
| РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
|ГДЕ
| &Отбор
| И ВЫБОР
| КОГДА СоставыГруппПользователей.ГруппаПользователей.ПометкаУдаления
| ТОГДА ЛОЖЬ
| КОГДА СоставыГруппПользователей.Пользователь.ПометкаУдаления
| ТОГДА ЛОЖЬ
| КОГДА СоставыГруппПользователей.Пользователь.Недействителен
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ <> СоставыГруппПользователей.Используется";
Если ТипЗнч(ПользовательИлиГруппа) = Тип("СправочникСсылка.Пользователи")
ИЛИ ТипЗнч(ПользовательИлиГруппа) = Тип("СправочникСсылка.ВнешниеПользователи") Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Отбор",
"СоставыГруппПользователей.Пользователь = &ПользовательИлиГруппа");
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Отбор",
"СоставыГруппПользователей.ГруппаПользователей = &ПользовательИлиГруппа");
КонецЕсли;
НаборЗаписи = РегистрыСведений.СоставыГруппПользователей.СоздатьНаборЗаписей();
Запись = НаборЗаписи.Добавить();
НачатьТранзакцию();
Попытка
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НаборЗаписи.Отбор.ГруппаПользователей.Установить(Выборка.ГруппаПользователей);
НаборЗаписи.Отбор.Пользователь.Установить(Выборка.Пользователь);
Запись.ГруппаПользователей = Выборка.ГруппаПользователей;
Запись.Пользователь = Выборка.Пользователь;
Запись.Используется = Выборка.Используется;
НаборЗаписи.Записать();
ИзмененныеГруппы.Вставить(Выборка.ГруппаПользователей);
УчастникиИзменений.Вставить(Выборка.Пользователь);
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ОбновитьСоставыГруппПользователей (БСП)
ОбновитьСоставыГруппВнешнихПользователей (БСП)
ПроверитьОбновитьСоставСвойствГруппы (БСП)
ПослеОбновленияСоставовГруппПользователей (БСП)