Физические лица / Форма выбора сотрудников / Модуль формы

файл
#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	ИсключаемыеИменаПолейОтборов = "ВАрхиве";
	ФизическиеЛицаЗарплатаКадры.ФормаВыбораСотрудниковПриСозданииНаСервере(ЭтотОбъект, Параметры);
	
	// Отбор по периоду работы	
	ДатаНачалаОтбора = Неопределено;
	ДатаОкончанияОтбора = Неопределено;
	Если Параметры.Отбор.Свойство("ДатаПримененияОтбора") Тогда
		
		Если ЗначениеЗаполнено(Параметры.Отбор.ДатаПримененияОтбора) Тогда
			
			ДатаНачалаОтбора = НачалоДня(Параметры.Отбор.ДатаПримененияОтбора);
			ДатаОкончанияОтбора = КонецДня(ДатаНачалаОтбора);
			
		КонецЕсли;
		
		Если НЕ ЗначениеЗаполнено(ДатаНачалаОтбора)
			И НЕ Параметры.Отбор.Свойство("МесяцПримененияОтбора") Тогда
			
			ДатаНачалаОтбора = НачалоДня(ТекущаяДатаСеанса());
			ДатаОкончанияОтбора = КонецДня(ДатаНачалаОтбора);
			
		КонецЕсли;
		
		Если ЗначениеЗаполнено(ДатаНачалаОтбора) Тогда
			
			ЗаголовокГруппы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru='работающие %1'"),
				Формат(ДатаНачалаОтбора, "ДЛФ=DD"));
			
		КонецЕсли;
		
	КонецЕсли;
	
	Если НЕ ЗначениеЗаполнено(ДатаНачалаОтбора) И Параметры.Отбор.Свойство("МесяцПримененияОтбора") Тогда
		
		Если ЗначениеЗаполнено(Параметры.Отбор.МесяцПримененияОтбора) Тогда
			
			ДатаНачалаОтбора = НачалоМесяца(Параметры.Отбор.МесяцПримененияОтбора);
			ДатаОкончанияОтбора = КонецМесяца(ДатаНачалаОтбора);
			
		КонецЕсли;
		
		Если НЕ ЗначениеЗаполнено(ДатаНачалаОтбора) Тогда
			
			ДатаНачалаОтбора = НачалоМесяца(ТекущаяДатаСеанса());
			ДатаОкончанияОтбора = КонецМесяца(ДатаНачалаОтбора);
			
		КонецЕсли;
		
		Если ЗначениеЗаполнено(ДатаНачалаОтбора) Тогда
			
			ЗаголовокГруппы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru='работающие в период - %1 г.'"),
				Формат(ДатаНачалаОтбора, "ДФ='МММ гггг'"));
			
		КонецЕсли;
		
	КонецЕсли;
	
	Если НЕ ЗначениеЗаполнено(ДатаНачалаОтбора)
		И Параметры.Отбор.Свойство("НачалоПериодаПримененияОтбора")
		И Параметры.Отбор.Свойство("ОкончаниеПериодаПримененияОтбора") Тогда
		
		Если ЗначениеЗаполнено(Параметры.Отбор.НачалоПериодаПримененияОтбора)
			И ЗначениеЗаполнено(Параметры.Отбор.ОкончаниеПериодаПримененияОтбора)
			И Параметры.Отбор.НачалоПериодаПримененияОтбора <= Параметры.Отбор.ОкончаниеПериодаПримененияОтбора Тогда
			
			ДатаНачалаОтбора = НачалоДня(Параметры.Отбор.НачалоПериодаПримененияОтбора);
			ДатаОкончанияОтбора = КонецДня(Параметры.Отбор.ОкончаниеПериодаПримененияОтбора);
			
			Если ДатаНачалаОтбора = НачалоГода(ДатаОкончанияОтбора)
				И КонецГода(ДатаНачалаОтбора) = ДатаОкончанияОтбора Тогда
				
				ЗаголовокГруппы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru='работающие в  %1 г.'"),
					Формат(ДатаНачалаОтбора, "ДФ='гггг'"));
				
			Иначе
				
				ЗаголовокГруппы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru='работающие в периоде с %1 по %2'"),
					Формат(ДатаНачалаОтбора, "ДЛФ=DD"),
					Формат(ДатаОкончанияОтбора, "ДЛФ=DD"));
				
			КонецЕсли;
			
		КонецЕсли;
		
	КонецЕсли;
	
	Параметры.Отбор.Удалить("ДатаПримененияОтбора");
	Параметры.Отбор.Удалить("МесяцПримененияОтбора");
	Параметры.Отбор.Удалить("НачалоПериодаПримененияОтбора");
	Параметры.Отбор.Удалить("ОкончаниеПериодаПримененияОтбора");
	
	Если ЗначениеЗаполнено(ДатаНачалаОтбора) Тогда
		
		// Пункт отбора
		ГруппаИ = ОбщегоНазначенияКлиентСервер.СоздатьГруппуЭлементовОтбора(Список.КомпоновщикНастроек.Настройки.Отбор.Элементы,
			НСтр("ru='Сотрудники'") + " " + ЗаголовокГруппы, ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ);
		ГруппаИ.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ;
		ГруппаИ.ИдентификаторПользовательскойНастройки = "РаботающиеСотрудники";
		
		Если Параметры.Отбор.Свойство("ПринятыеЗаранее")
			И Параметры.Отбор.ПринятыеЗаранее = Истина Тогда
			
			ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
				ГруппаИ, "ДатаПриема", НачалоДня(ДатаОкончанияОтбора), ВидСравненияКомпоновкиДанных.Меньше);
			
		Иначе
			
			ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
				ГруппаИ, "ДатаПриема", ДатаОкончанияОтбора, ВидСравненияКомпоновкиДанных.МеньшеИлиРавно);
			
		КонецЕсли;
		
		// Группа для отбора по дате увольнения
		// ДатаУвольнения >= ДатаНачалаОтбора ИЛИ НЕ ЗначениеЗаполнено(ДатаУвольнения).
		ГруппаИЛИ = ОбщегоНазначенияКлиентСервер.СоздатьГруппуЭлементовОтбора(ГруппаИ.Элементы, "ГруппаИЛИ", ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли);
		ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
			ГруппаИЛИ, "ДатаУвольнения", ДатаНачалаОтбора, ВидСравненияКомпоновкиДанных.БольшеИлиРавно);
		
		ГруппаИЛИДляДатаУвольнения = ОбщегоНазначенияКлиентСервер.СоздатьГруппуЭлементовОтбора(ГруппаИЛИ.Элементы, "ГруппаИЛИДляДатаУвольнения", ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли);
		ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
			ГруппаИЛИДляДатаУвольнения, "ДатаУвольнения", , ВидСравненияКомпоновкиДанных.НеЗаполнено);
			
		ТекстЗапроса = Список.ТекстЗапроса;
		ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ОсновныеСотрудникиФизическихЛиц.ДатаНачала", "&ДатаНачалаОтбора");
		ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ОсновныеСотрудникиФизическихЛиц.ДатаОкончания", "&ДатаОкончанияОтбора");
		ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ДатаОкончанияОтбора = &МаксимальнаяДатаНачалоДня", "ОсновныеСотрудникиФизическихЛиц.ДатаОкончания = &МаксимальнаяДатаНачалоДня");
		Список.ТекстЗапроса = ТекстЗапроса;
		ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
			Список, "ДатаНачалаОтбора", ДатаНачалаОтбора);
		ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
			Список, "ДатаОкончанияОтбора", ДатаОкончанияОтбора);
		
	КонецЕсли;
	
	Параметры.Отбор.Удалить("ПринятыеЗаранее");
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
		Модуль = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
		Модуль.УточнитьПараметрыФормыВыбораСотрудниковСправочникаФизическиеЛица(Список, Параметры, ДатаНачалаОтбора, ДатаОкончанияОтбора, ИсключаемыеИменаПолейОтборов);
	КонецЕсли;
	
	// Сначала обрабатываем отбор по организации (филиалу).
	Если Параметры.Отбор.Свойство("Организация") Тогда
		
		Если ЗначениеЗаполнено(Параметры.Отбор.Организация) Тогда
			Параметры.Отбор.Вставить("Филиал", Параметры.Отбор.Организация);
		КонецЕсли;
		
		Параметры.Отбор.Удалить("Организация");
		
	КонецЕсли;
	
	// Затем отбор по головной организации.
	Если Параметры.Отбор.Свойство("ГоловнаяОрганизация") Тогда
		
		Если ЗначениеЗаполнено(Параметры.Отбор.ГоловнаяОрганизация) Тогда
			Параметры.Отбор.Вставить("Организация", ЗарплатаКадры.ГоловнаяОрганизация(Параметры.Отбор.ГоловнаяОрганизация));
		КонецЕсли;
		
		Параметры.Отбор.Удалить("ГоловнаяОрганизация");
		
	КонецЕсли;
	
	Если Параметры.Отбор.Свойство("Филиал")
		И ЗначениеЗаполнено(Параметры.Отбор.Филиал) Тогда
		
		Если Не Параметры.Отбор.Свойство("Организация")
			Или ЗначениеЗаполнено(Параметры.Отбор.Организация) Тогда
			
			Если ТипЗнч(Параметры.Отбор.Филиал) = Тип("СписокЗначений") Тогда
				Параметры.Отбор.Вставить("Организация", ЗарплатаКадры.ГоловнаяОрганизация(Параметры.Отбор.Филиал[0].Значение));
			Иначе
				Параметры.Отбор.Вставить("Организация", ЗарплатаКадры.ГоловнаяОрганизация(Параметры.Отбор.Филиал));
			КонецЕсли;
			
		КонецЕсли;
		
	КонецЕсли;
	
	Если (Не Параметры.Отбор.Свойство("Организация") Или Не ЗначениеЗаполнено(Параметры.Отбор.Организация))
		И (Не Параметры.Отбор.Свойство("Филиал") Или Не ЗначениеЗаполнено(Параметры.Отбор.Филиал)) Тогда
		
		Если ОбщегоНазначенияКлиентСервер.НайтиЭлементыИГруппыОтбора(Список.Отбор, "Ссылка").Количество() = 0 Тогда
			
			ОбщегоНазначения.СообщитьПользователю(
				НСтр("ru='Необходимо выбрать организацию'"), , , , Отказ);
			
			Возврат;
			
		КонецЕсли;
		
	КонецЕсли;
	
	Если Параметры.Отбор.Свойство("Организация") Тогда
		
		ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
			Список, "Организация", Параметры.Отбор.Организация, , , Истина, РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный);
		
		Параметры.Отбор.Удалить("Организация");
		
	КонецЕсли;
	
	Если Параметры.Отбор.Свойство("Филиал") Тогда
		
		ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
			Список, "Филиал", Параметры.Отбор.Филиал, , , Истина, РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный);
		
		Параметры.Отбор.Удалить("Филиал");
		Если СтрНайти(ИсключаемыеИменаПолейОтборов, ",Организация,Филиал") = 0 Тогда
			ИсключаемыеИменаПолейОтборов = ИсключаемыеИменаПолейОтборов + ",Организация";
		КонецЕсли;
		
	КонецЕсли;
	
	Если Параметры.Отбор.Свойство("Подразделение") Тогда
		
		ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
			Список, "Подразделение", Параметры.Отбор.Подразделение, , , Истина, РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ);
		
		Параметры.Отбор.Удалить("Подразделение");
		
	КонецЕсли;
	
	// Отбор сотрудников в архиве
	Если Параметры.Отбор.Свойство("ВАрхиве") Тогда
		
		Если Параметры.Отбор.ВАрхиве = Ложь Тогда
			УстановитьОтборСотрудниковВАрхиве(ЭтотОбъект, Истина);
			СкрыватьСотрудниковПоКоторымУжеНеВыполняютсяОперации = Истина;
		КонецЕсли;
		
		Параметры.Отбор.Удалить("ВАрхиве");
		
	КонецЕсли;
	
	// Настройка списка
	Если Параметры.РежимВыбора И Параметры.ЗакрыватьПриВыборе = Ложь Тогда
		Элементы.Список.МножественныйВыбор = Истина;
		Элементы.Список.РежимВыделения = РежимВыделенияТаблицы.Множественный;
	КонецЕсли;
	
	Если Элементы.Список.РежимВыбора И Не ЗакрыватьПриВыборе Тогда
		
		Если НЕ ПустаяСтрока(Параметры.АдресСпискаПодобранныхСотрудников) Тогда
			МассивПодобранных = ПолучитьИзВременногоХранилища(Параметры.АдресСпискаПодобранныхСотрудников);
			СписокПодобранных.ЗагрузитьЗначения(МассивПодобранных);
		КонецЕсли;
		
	КонецЕсли;
	
	УстановитьСписокПодобранныхСотрудников();
	
	ЗарплатаКадры.ПриСозданииНаСервереФормыСДинамическимСписком(ЭтотОбъект, "Список", , , , ИсключаемыеИменаПолейОтборов, Ложь);
	
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	
	Если ЗавершениеРаботы Тогда
		Возврат;
	КонецЕсли;
	
	Если ВыбранныеФизическиеЛица.Количество() > 0 Тогда
		ОповеститьОВыборе(ВыбранныеФизическиеЛица.ВыгрузитьЗначения());
	КонецЕсли; 
	
КонецПроцедуры

#КонецОбласти


#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура СкрыватьСотрудниковПоКоторымУжеНеВыполняютсяОперацииПриИзменении(Элемент)
	
	УстановитьОтборСотрудниковВАрхиве(ЭтотОбъект, СкрыватьСотрудниковПоКоторымУжеНеВыполняютсяОперации);
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПолеФлажкаПриИзменении(Элемент)
	
	ПриИзмененииОтбора(ЭтотОбъект);
	
КонецПроцедуры

#КонецОбласти


#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок

&НаКлиенте
Процедура СписокВыборЗначения(Элемент, Значение, СтандартнаяОбработка)
	
	Если Элементы.Список.РежимВыбора Тогда
		
		СтандартнаяОбработка = Ложь;
		
		Если ТипЗнч(Значение) = Тип("Массив") Тогда
			СписокЗначений = Значение;
		Иначе
			СписокЗначений = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Значение);
		КонецЕсли;
		
		Если СписокЗначений.Количество() > 0 Тогда
			
			Если Элементы.Список.МножественныйВыбор Тогда
				
				ОбновитьСписокПодобранных(СписокЗначений);
				Если СписокЗначений.Количество() > 1 Тогда
					Закрыть();
				КонецЕсли; 
				
			Иначе
				
				Если СписокПодобранных.НайтиПоЗначению(СписокЗначений[0]) = Неопределено Тогда
					ОповеститьОВыборе(СписокЗначений[0]);
				Иначе
					Закрыть();
				КонецЕсли;
				
			КонецЕсли; 
			
		КонецЕсли; 
	
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура СписокПередЗагрузкойПользовательскихНастроекНаСервере(Элемент, Настройки)
	
	ЗарплатаКадры.ПроверитьПользовательскиеНастройкиДинамическогоСписка(ЭтотОбъект, Настройки);
	
КонецПроцедуры

&НаСервере
Процедура СписокПриОбновленииСоставаПользовательскихНастроекНаСервере(СтандартнаяОбработка)
	
	ЗарплатаКадры.ПроверитьПользовательскиеНастройкиДинамическогоСписка(ЭтотОбъект, , СтандартнаяОбработка);
	
	Если СтандартнаяОбработка Тогда
		СтандартнаяОбработка = Ложь;
		Элементы.Список.СоздатьЭлементыФормыПользовательскихНастроек();
		ПриИзмененииОтбора(ЭтотОбъект);
	КонецЕсли;
	
	УстановитьПоложениеЗаголовкаФлажковЭлементовГруппы(Элементы.СписокКомпоновщикНастроекПользовательскиеНастройки);
	
КонецПроцедуры

#КонецОбласти


#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура ВыбратьИзПолногоСпискаФизическихЛиц(Команда)
	
	ВыбратьИзПолногоСпискаФизическихЛицНаСервере();
	
КонецПроцедуры

#КонецОбласти


#Область СлужебныеПроцедурыИФункции

&НаСервере
Процедура ОбновитьСписокПодобранных(Значение)
	
	Если ТипЗнч(Значение) = Тип("Массив") Тогда
		СписокЗначений = Значение;
	Иначе
		СписокЗначений = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Значение);
	КонецЕсли;
	
	Для каждого ВыбранноеЗначение Из СписокЗначений Цикл
		Если СписокПодобранных.НайтиПоЗначению(ВыбранноеЗначение) = Неопределено Тогда
			СписокПодобранных.Добавить(ВыбранноеЗначение);
			ВыбранныеФизическиеЛица.Добавить(ВыбранноеЗначение);
		КонецЕсли; 
	КонецЦикла;
	
	УстановитьСписокПодобранныхСотрудников();
	
КонецПроцедуры

&НаСервере
Процедура УстановитьСписокПодобранныхСотрудников()
	
	ЭлементУсловногоОформления = Неопределено;
	Для каждого ЭлементОформления Из УсловноеОформление.Элементы Цикл
		Если ЭлементОформления.Представление = НСтр("ru='Выделение подобранных'") Тогда
			ЭлементУсловногоОформления = ЭлементОформления;
			Прервать;
		КонецЕсли; 
	КонецЦикла; 
	
	Если ЭлементУсловногоОформления <> Неопределено Тогда
		ЭлементУсловногоОформления.Отбор.Элементы[0].ПравоеЗначение = СписокПодобранных;
	КонецЕсли; 
		
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьОтборСотрудниковВАрхиве(Форма, Использование)
	
	Если Использование Тогда
		ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
			Форма.Список, "ВАрхиве", Ложь);
	Иначе
		ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбораДинамическогоСписка(
			Форма.Список, "ВАрхиве");
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура УстановитьПоложениеЗаголовкаФлажковЭлементовГруппы(ГруппаЭлементов)
	
	Для каждого ЭлементГруппы Из ГруппаЭлементов.ПодчиненныеЭлементы Цикл
		
		Если ТипЗнч(ЭлементГруппы) = Тип("ПолеФормы")
			И ЭлементГруппы.Вид = ВидПоляФормы.ПолеФлажка Тогда
			
			ЭлементГруппы.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Право;
			ЭлементГруппы.УстановитьДействие("ПриИзменении", "Подключаемый_ПолеФлажкаПриИзменении");
			
		ИначеЕсли ТипЗнч(ЭлементГруппы) = Тип("ГруппаФормы") Тогда
			УстановитьПоложениеЗаголовкаФлажковЭлементовГруппы(ЭлементГруппы);
		КонецЕсли; 
		
	КонецЦикла;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура ПриИзмененииОтбора(УправляемаяФорма)
	
	ОтборПоФилиалу = Неопределено;
	ИспользоватьОтбор = Неопределено;
	
	Для Каждого ЭлементОбора Из УправляемаяФорма.Список.Отбор.Элементы Цикл
		
		Если ТипЗнч(ЭлементОбора) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда
			
			Если ЭлементОбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Филиал") Тогда
				ОтборПоФилиалу = ЭлементОбора;
			КонецЕсли;
			
		ИначеЕсли ТипЗнч(ЭлементОбора) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда
			ИспользоватьОтбор = ЭлементОбора.Использование;
		КонецЕсли;
		
		Если ОтборПоФилиалу <> Неопределено И ИспользоватьОтбор <> Неопределено Тогда
			
			Если ОтборПоФилиалу.Использование <> ИспользоватьОтбор Тогда
				ОтборПоФилиалу.Использование = ИспользоватьОтбор;
				ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
					УправляемаяФорма.Список, "ОтбиратьПоФилиалу", ИспользоватьОтбор, Истина);
			КонецЕсли;
			Прервать;
			
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры

&НаСервере
Процедура ВыбратьИзПолногоСпискаФизическихЛицНаСервере()
	
	Заголовок = НСтр("ru = 'Физические лица'");
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Элементы,
		"СписокКомпоновщикНастроекПользовательскиеНастройки",
		"Видимость",
		Ложь);
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Элементы,
		"СписокНастройкиОтбора",
		"Видимость",
		Ложь);
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Элементы,
		"ФормаВыбратьИзПолногоСпискаФизическихЛиц",
		"Видимость",
		Ложь);
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Элементы,
		"СкрыватьСотрудниковПоКоторымУжеНеВыполняютсяОперации",
		"Видимость",
		Ложь);
	
	ОтключитьЭлементыНастроек(Список.КомпоновщикНастроек.Настройки.Отбор.Элементы);
	ОтключитьЭлементыНастроек(Список.КомпоновщикНастроек.ФиксированныеНастройки.Отбор.Элементы);
	ОтключитьЭлементыНастроек(Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы);
	
	Список.ТекстЗапроса =
		"ВЫБРАТЬ
		|	СправочникФизическиеЛица.Ссылка КАК Ссылка,
		|	СправочникФизическиеЛица.ПометкаУдаления КАК ПометкаУдаления,
		|	СправочникФизическиеЛица.Предопределенный КАК Предопределенный,
		|	СправочникФизическиеЛица.Родитель КАК Родитель,
		|	СправочникФизическиеЛица.ЭтоГруппа КАК ЭтоГруппа,
		|	СправочникФизическиеЛица.Код КАК Код,
		|	СправочникФизическиеЛица.Наименование КАК Наименование,
		|	СправочникФизическиеЛица.ДатаРождения КАК ДатаРождения,
		|	СправочникФизическиеЛица.ИНН КАК ИНН,
		|	СправочникФизическиеЛица.СтраховойНомерПФР КАК СтраховойНомерПФР
		|ИЗ
		|	Справочник.ФизическиеЛица КАК СправочникФизическиеЛица
		|ГДЕ
		|	НЕ СправочникФизическиеЛица.ЭтоГруппа";
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Элементы,
		"Код",
		"Видимость",
		Истина);
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Элементы,
		"ИНН",
		"Видимость",
		Истина);
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Элементы,
		"СтраховойНомерПФР",
		"Видимость",
		Истина);
	
КонецПроцедуры

&НаСервере
Процедура ОтключитьЭлементыНастроек(КоллекцияЭлементов)
	
	Для Каждого ЭлементНастроек Из КоллекцияЭлементов Цикл
		
		Если ТипЗнч(ЭлементНастроек) = Тип("ЭлементОтбораКомпоновкиДанных")
			Или ТипЗнч(ЭлементНастроек) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда
			
			ЭлементНастроек.Использование = Ложь;
		ИначеЕсли ТипЗнч(ЭлементНастроек) = Тип("КоллекцияЭлементовОтбораКомпоновкиДанных") Тогда
			ОтключитьЭлементыНастроек(ЭлементНастроек.Элементы)
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры

#КонецОбласти

Связанные материалы