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