Значение не является значением объектного типа (Итоги) {Документ.НачислениеЗарплаты.МодульОбъекта(133)}: Выборка = Выборка.Итоги.Выбрать();

1. G_106344807921151868538 23.01.25 10:46 Сейчас в теме
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
	Движения.ОсновныеНачисления.Записать();
	
	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	НачислениеЗарплатыОсновныеНачисления.НомерСтроки КАК НомерСтроки,
	|	НачислениеЗарплатыОсновныеНачисления.Сотрудник КАК Сотрудник,
	|	НачислениеЗарплатыОсновныеНачисления.Подразделение КАК Подразделение,
	|	НачислениеЗарплатыОсновныеНачисления.ВидРасчета КАК ВидРасчета,
	|	НачислениеЗарплатыОсновныеНачисления.ДатаНачала КАК ПериодДействияНачало,
	|	НачислениеЗарплатыОсновныеНачисления.ДатаОкончания КАК ПериодДействияКонец,
	|	ЕСТЬNULL(НачислениеЗарплатыОсновныеНачисления.Ссылка.Дата, 0) КАК ПериодРегистрации
	|ПОМЕСТИТЬ ВТНачисления
	|ИЗ
	|	Документ.НачислениеЗарплаты.ОсновныеНачисления КАК НачислениеЗарплатыОсновныеНачисления
	|ГДЕ
	|	НачислениеЗарплатыОсновныеНачисления.Ссылка = &Ссылка
	|	И НачислениеЗарплатыОсновныеНачисления.ВидРасчета = &ВидРасчетаОклад
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ВТНачисления.НомерСтроки КАК НомерСтроки,
	|	ВТНачисления.Сотрудник КАК Сотрудник,
	|	ВТНачисления.Подразделение КАК Подразделение,
	|	ВТНачисления.ВидРасчета КАК ВидРасчета,
	|	ВТНачисления.ПериодДействияНачало КАК ПериодДействияНачало,
	|	ВТНачисления.ПериодДействияКонец КАК ПериодДействияКонец,
	|	ВТНачисления.ПериодРегистрации КАК ПериодРегистрации,
	|	МАКСИМУМ(СведенияОСотрудниках.Период) КАК МаксПериод
	|ПОМЕСТИТЬ ВТНачисленияСМаксПериодом
	|ИЗ
	|	ВТНачисления КАК ВТНачисления
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОСотрудниках КАК СведенияОСотрудниках
	|		ПО ВТНачисления.Сотрудник = СведенияОСотрудниках.Сотрудник
	|			И ВТНачисления.Подразделение = СведенияОСотрудниках.Подразделение
	|			И ВТНачисления.ПериодДействияНачало >= СведенияОСотрудниках.Период
	|
	|СГРУППИРОВАТЬ ПО
	|	ВТНачисления.Сотрудник,
	|	ВТНачисления.ВидРасчета,
	|	ВТНачисления.Подразделение,
	|	ВТНачисления.ПериодДействияНачало,
	|	ВТНачисления.ПериодДействияКонец,
	|	ВТНачисления.НомерСтроки,
	|	ВТНачисления.ПериодРегистрации
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ВТНачисления.Сотрудник КАК Сотрудник,
	|	ВТНачисления.Подразделение КАК Подразделение,
	|	СведенияОСотрудниках.Оклад КАК Параметр,
	|	СведенияОСотрудниках.Период КАК ПериодДействияНачало,
	|	ВТНачисления.ПериодДействияКонец КАК ПериодДействияКонец,
	|	ВТНачисления.ПериодРегистрации КАК ПериодРегистрации,
	|	ВТНачисления.ВидРасчета КАК ВидРасчета,
	|	ВТНачисления.НомерСтроки КАК НомерСтроки
	|ИЗ
	|	ВТНачисления КАК ВТНачисления
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОСотрудниках КАК СведенияОСотрудниках
	|		ПО ВТНачисления.Сотрудник = СведенияОСотрудниках.Сотрудник
	|			И ВТНачисления.Подразделение = СведенияОСотрудниках.Подразделение
	|			И ВТНачисления.ПериодДействияНачало < СведенияОСотрудниках.Период
	|			И ВТНачисления.ПериодДействияКонец >= СведенияОСотрудниках.Период
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ВТНачисленияСМаксПериодом.Сотрудник,
	|	ВТНачисленияСМаксПериодом.Подразделение,
	|	СведенияОСотрудниках.Оклад,
	|	ВТНачисленияСМаксПериодом.ПериодДействияНачало,
	|	ВТНачисленияСМаксПериодом.ПериодДействияКонец,
	|	ВТНачисленияСМаксПериодом.ПериодРегистрации,
	|	ВТНачисленияСМаксПериодом.ВидРасчета,
	|	ВТНачисленияСМаксПериодом.НомерСтроки
	|ИЗ
	|	ВТНачисленияСМаксПериодом КАК ВТНачисленияСМаксПериодом
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОСотрудниках КАК СведенияОСотрудниках
	|		ПО ВТНачисленияСМаксПериодом.Сотрудник = СведенияОСотрудниках.Сотрудник
	|			И ВТНачисленияСМаксПериодом.Подразделение = СведенияОСотрудниках.Подразделение
	|			И ВТНачисленияСМаксПериодом.МаксПериод = СведенияОСотрудниках.Период
	|
	|УПОРЯДОЧИТЬ ПО
	|	ПериодДействияНачало
	|ИТОГИ ПО
	|	НомерСтроки
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	НачислениеЗарплатыОсновныеНачисления.НомерСтроки КАК НомерСтроки,
	|	НачислениеЗарплатыОсновныеНачисления.Сотрудник КАК Сотрудник,
	|	НачислениеЗарплатыОсновныеНачисления.Подразделение КАК Подразделение,
	|	НачислениеЗарплатыОсновныеНачисления.ВидРасчета КАК ВидРасчета,
	|	НачислениеЗарплатыОсновныеНачисления.ДатаНачала КАК ПериодДействияНачало,
	|	НачислениеЗарплатыОсновныеНачисления.ДатаОкончания КАК ПериодДействияКонец,
	|	ВЫБОР
	|		КОГДА НачислениеЗарплатыОсновныеНачисления.ВидРасчета = &Премия
	|			ТОГДА НачислениеЗарплатыОсновныеНачисления.Параметр
	|		ИНАЧЕ 0
	|	КОНЕЦ КАК Параметр,
	|	НАЧАЛОПЕРИОДА(НачислениеЗарплатыОсновныеНачисления.Ссылка.Дата, МЕСЯЦ) КАК ПериодРегистрации,
	|	ВЫБОР
	|		КОГДА НачислениеЗарплатыОсновныеНачисления.ВидРасчета = &ПроизволСумма
	|			ТОГДА НачислениеЗарплатыОсновныеНачисления.Параметр
	|		ИНАЧЕ 0
	|	КОНЕЦ КАК Результат
	|ИЗ
	|	Документ.НачислениеЗарплаты.ОсновныеНачисления КАК НачислениеЗарплатыОсновныеНачисления
	|ГДЕ
	|	НачислениеЗарплатыОсновныеНачисления.Ссылка = &Ссылка
	|	И НачислениеЗарплатыОсновныеНачисления.ВидРасчета = &ВидРасчетаОклад";
	
	Запрос.УстановитьПараметр("ВидРасчетаОклад", ПланыВидовРасчета.ОсновныеНачисления.Оклад);
	Запрос.УстановитьПараметр("Премия", ПланыВидовРасчета.ОсновныеНачисления.Премия);
	Запрос.УстановитьПараметр("ПроизволСумма", ПланыВидовРасчета.ОсновныеНачисления.ПроизвольнаяСумма);
	Запрос.УстановитьПараметр("Ссылка", Ссылка);
	
	Результаты = Запрос.ВыполнитьПакет();
	
	ВыборкаИтоги = Результаты[2].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	Движение = Неопределено;
	Пока ВыборкаИтоги.Следующий() Цикл
		ЭтоСледЗапись = Ложь;
		Выборка = Выборка.Итоги.Выбрать();
		Пока Выборка.Следующий() Цикл
			
			Если ЭтоСледЗапись Тогда
				
				Движение.ПериодДействияКонец = Выборка.ПериодДействияНачало-1;
				
			КонецЕсли;
			Движение = Движения.ОсновныеНачисления.Добавить();
			ЗаполнитьЗначенияСвойств(Движение,Выборка);
			ЭтоСледЗапись = Истина;
		КонецЦикла;
	КонецЦикла;
	
	Выборка = Результаты[3].Выбрать();
	Пока Выборка.Следующий() Цикл
		
		Движение = Движения.ОсновныеНачисления.Добавить();
		ЗаполнитьЗначенияСвойств(Движение,Выборка);
		
	КонецЦикла;
	Движения.Записать();
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ОсновныеНачисленияДанныеГрафика.НомерСтроки КАК НомерСтроки,
		|	ОсновныеНачисленияДанныеГрафика.Параметр КАК Параметр,
		|	ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ЧасовПериодДействия, 0) КАК ЧасыПлан,
		|	ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ЧасовФактическийПериодДействия, 0) КАК ЧасыФакт
		|ИЗ
		|	РегистрРасчета.ОсновныеНачисления.ДанныеГрафика(
		|			Регистратор = &Ссылка
		|				И ВидРасчета = &ВидРасчета) КАК ОсновныеНачисленияДанныеГрафика";
	
	Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисления.Оклад);
	Запрос.УстановитьПараметр("Ссылка", Ссылка);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Выборка = РезультатЗапроса.Выбрать();
	
	Для каждого Движение Из Движения.ОсновныеНачисления Цикл
		Выборка.Сбросить();
	    Если Выборка.НайтиСледующий(Движение.НомерСтроки,"НомерСтроки") Тогда
		
			Движение.Результат = ?(Выборка.ЧасовПлан = 0,0, Выборка.Параметр / Выборка.ЧасыПлан * Выборка.ЧасыФакт);
			ЗаполнитьЗначенияСвойств(Движение,Выборка);
		КонецЕсли;
		
	  	КонецЦикла;
	
	Движения.ОсновныеНачисления.Записать(,Истина);


	
КонецПроцедуры
Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user2107191 23.01.25 10:56 Сейчас в теме
И? Самому лень внимательно посмотреть на строчку? И на парочку рядом.
Sashares; +1 Ответить
3. G_106344807921151868538 23.01.25 11:41 Сейчас в теме
(2) смотрел не могу понять
4. Sashares 33 23.01.25 11:45 Сейчас в теме
(3) Смотри внимательнее:
ВыборкаИтоги = Результаты[2].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Движение = Неопределено;
    Пока ВыборкаИтоги.Следующий() Цикл
        ЭтоСледЗапись = Ложь;
        Выборка = Выборка.Итоги.Выбрать();
5. G_106344807921151868538 23.01.25 13:08 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот