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