Сотрудники / Форма истории изменения удержаний / Модуль формы

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

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
		НастроитьВидИсторииУдержаний();
	
КонецПроцедуры

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


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

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

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


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

&НаКлиенте
Процедура Обновить(Команда)
	
	СформироватьИнформациюОбУдержаниях();
	НастроитьВидИсторииУдержаний();
	
КонецПроцедуры

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


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

&НаСервере
Процедура ДополнитьФормуПоКоличествуПоказателей()
	
	Если КоличествоПоказателей > 6 Тогда
		
		МассивДобавляемыхРеквизитов = Новый Массив;
		Для НомерПоказателя = 7 По КоличествоПоказателей Цикл
			
			НовыйРеквизитПоказатель = Новый РеквизитФормы("Показатель" + НомерПоказателя, Новый ОписаниеТипов("СправочникСсылка.ПоказателиРасчетаЗарплаты"), "ИсторияУдержаний");
			МассивДобавляемыхРеквизитов.Добавить(НовыйРеквизитПоказатель);
			
			НовыйРеквизитЗначение = Новый РеквизитФормы("Значение" + НомерПоказателя, Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(15, 4)), "ИсторияУдержаний");
			МассивДобавляемыхРеквизитов.Добавить(НовыйРеквизитЗначение);
			
			НовыйРеквизитПредставлениеПоказателя = Новый РеквизитФормы("ПредставлениеПоказателя" + НомерПоказателя, Новый ОписаниеТипов("Строка"), "ИсторияУдержаний");
			МассивДобавляемыхРеквизитов.Добавить(НовыйРеквизитПредставлениеПоказателя);
			
			НовыйРеквизитТочностьПоказателя = Новый РеквизитФормы("ТочностьПоказателя" + НомерПоказателя, Новый ОписаниеТипов("Строка"), "ИсторияУдержаний");
			МассивДобавляемыхРеквизитов.Добавить(НовыйРеквизитТочностьПоказателя);
			
		КонецЦикла;
		
		ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
		
		Для НомерПоказателя = 7 По КоличествоПоказателей Цикл
			
			ЭлементПоказатель = Элементы.Добавить("ИсторияУдержанийПоказатель" + НомерПоказателя, Тип("ПолеФормы"), Элементы.ИсторияУдержанийПоказателиГруппа);
			ЭлементПоказатель.Вид = ВидПоляФормы.ПолеВвода;
			ЭлементПоказатель.ТолькоПросмотр = Истина;
			ЭлементПоказатель.ОтображатьВШапке = Ложь;
			ЭлементПоказатель.Ширина = 20;
			ЭлементПоказатель.ПутьКДанным = "ИсторияУдержаний.Показатель" + НомерПоказателя;
			
			ЭлементЗначение = Элементы.Добавить("ИсторияУдержанийЗначение" + НомерПоказателя, Тип("ПолеФормы"), Элементы.ИсторияУдержанийПоказателиГруппа);
			ЭлементЗначение.Вид = ВидПоляФормы.ПолеВвода;
			ЭлементЗначение.ТолькоПросмотр = Истина;
			ЭлементЗначение.ОтображатьВШапке = Ложь;
			ЭлементЗначение.Ширина = 10;
			ЭлементЗначение.ПутьКДанным = "ИсторияУдержаний.Значение" + НомерПоказателя;
			
		КонецЦикла;
		
	КонецЕсли;
	
	Для каждого ЭлементУсловногоОформления Из УсловноеОформление.Элементы Цикл
		
		Если ЭлементУсловногоОформления.Представление = "ВидимостьПоказателей" Тогда
			
			Для НомерПоказателя = 7 По КоличествоПоказателей Цикл
				
				НовоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
				НовоеПоле.Поле = Новый ПолеКомпоновкиДанных("ИсторияУдержанийПоказатель" + НомерПоказателя);
				
				НовоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
				НовоеПоле.Поле = Новый ПолеКомпоновкиДанных("ИсторияУдержанийЗначение" + НомерПоказателя);
				
			КонецЦикла;
			
			Прервать;
			
		КонецЕсли;
		
	КонецЦикла;
	
	Для НомерПоказателя = 1 По КоличествоПоказателей Цикл
		
		// Представление показателя
		ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
		
		ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ЭлементОтбора.Использование = Истина;
		ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИсторияУдержаний.Показатель" + НомерПоказателя);
		ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
		
		ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ЭлементОтбора.Использование = Истина;
		ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИсторияУдержаний.ПредставлениеПоказателя" + НомерПоказателя);
		ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
		
		ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Текст", Новый ПолеКомпоновкиДанных("ИсторияУдержаний.ПредставлениеПоказателя" + НомерПоказателя));
		
		ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
		ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ИсторияУдержанийПоказатель" + НомерПоказателя);
		
		// Точность значения
		ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
		
		ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ЭлементОтбора.Использование = Истина;
		ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИсторияУдержаний.Показатель" + НомерПоказателя);
		ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
		
		ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Формат", Новый ПолеКомпоновкиДанных("ИсторияУдержаний.ТочностьПоказателя" + НомерПоказателя));
		
		ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
		ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ИсторияУдержанийЗначение" + НомерПоказателя);
		
	КонецЦикла;
	
КонецПроцедуры

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

&НаКлиенте
Процедура НастроитьВидИсторииУдержаний()
	
	Для каждого СтрокаСотрудника Из ИсторияУдержаний.ПолучитьЭлементы() Цикл
		
		Элементы.ИсторияУдержаний.Развернуть(СтрокаСотрудника.ПолучитьИдентификатор(), Ложь);
		Для каждого СтрокаРегистратора Из  СтрокаСотрудника.ПолучитьЭлементы() Цикл
			
			Если СтрокаРегистратора.ПолучитьЭлементы().Количество() > 0 Тогда
				Элементы.ИсторияУдержаний.Развернуть(СтрокаРегистратора.ПолучитьИдентификатор(), Истина);
				Прервать;
			КонецЕсли; 
			
		КонецЦикла;
		
	КонецЦикла;
	
КонецПроцедуры

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

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