Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
2.7 kB
1
Indexable
Never
&НаСервереБезКонтекста
Процедура ПерерассчитатьНаСервере()

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

&НаКлиенте
Процедура Перерассчитать(Команда)
	ПерерассчитатьНаСервере();	
	СкомпоноватьРезультат(); // Переформировываем отчет после перерасчета
КонецПроцедуры