ПроверитьОбновитьСоставСвойствГруппы (БСП)

Автор: 1С
ОбщийМодуль.УправлениеСвойствамиСлужебный
БСП

Проверить обновить состав свойств группы. Обновление состава верхней группы для использования при настройке

// Обновление состава верхней группы для использования при настройке
// состава полей динамического списка и его настройки (отборы, ...).
//
// Параметры:
//  Группа        - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений,
//                  с признаком ЭтоГруппа = Истина.
//
Процедура ПроверитьОбновитьСоставСвойствГруппы(Группа) Экспорт
	
	УстановитьПривилегированныйРежим(Истина);
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Группа", Группа);
	Запрос.Текст =
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	ДополнительныеРеквизиты.Свойство КАК Свойство,
	|	ДополнительныеРеквизиты.ИмяПредопределенногоНабора КАК ИмяПредопределенногоНабора
	|ИЗ
	|	Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК ДополнительныеРеквизиты
	|ГДЕ
	|	ДополнительныеРеквизиты.Ссылка.Родитель = &Группа
	|
	|УПОРЯДОЧИТЬ ПО
	|	Свойство
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	ДополнительныеСведения.Свойство КАК Свойство,
	|	ДополнительныеСведения.ИмяПредопределенногоНабора КАК ИмяПредопределенногоНабора
	|ИЗ
	|	Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения КАК ДополнительныеСведения
	|ГДЕ
	|	ДополнительныеСведения.Ссылка.Родитель = &Группа
	|
	|УПОРЯДОЧИТЬ ПО
	|	Свойство";
	
	РезультатЗапроса = Запрос.ВыполнитьПакет();
	ДополнительныеРеквизитыГруппы = РезультатЗапроса[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
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ОбновитьПользователейГруппИсполнителей (БСП)

ПроверитьСоставПланаОбмена (БСП)

УстановитьСвойствоЭлементовГруппы (БСП)

СвойстваГруппыЭлементовФормы (БСП)

УстановитьСвойстваГруппыВидаКонтактнойИнформации (БСП)

ОбновитьСоставыГруппПользователей (БСП)

ОбновитьСвойстваПредопределенныхУзлов (БСП)

ОбновитьГруппыДоступаРазрешенногоКлючаДоступа (БСП)

ОбновитьПараметрыПроверокУчета (БСП)

TurboConf ИР адаптер 1.82