С помощью диаграммы Ганта показать фактический период действия записей с разбивкой по сотрудникам, и для каждого сотрудника – по видам расчета. Отчет может быть построен за любой расчетный период.
Справочник «ГрафикиРаботы» с пред. Пятидневка, Шестидневка
Документ «НачислениеЗарплаты»

Модуль формы:
&НаСервере
Процедура РасчитатьНаСервере()
Док = РеквизитФормыВЗначение("Объект");
Док. Расчитать();
ЗначениеВДанныеФормы(Док, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Расчитать(Команда)
РасчитатьНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНаСервере()
Запрос = Новый Запрос;
Запрос. Текст =
"ВЫБРАТЬ
| СведенияОСотрудникахСрезПоследних. Сотрудник,
| СведенияОСотрудникахСрезПоследних. Подразделение,
| СведенияОСотрудникахСрезПоследних. Оклад КАК Размер,
| ЗНАЧЕНИЕ(ПланВидовРасчета. ОсновныеНачисления. оклад) КАК ВидРасчета,
| &НачалоПериода КАК ДатаНачала,
| КОНЕЦПЕРИОДА(&НачалоПериода, МЕСЯЦ) КАК ДатаОкончания,
| ГрафикиПодразделений. График КАК График
|ИЗ
| РегистрСведений. СведенияОСотрудниках. СрезПоследних(&НачалоПериода, ) КАК СведенияОСотрудникахСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений. ГрафикиПодразделений КАК ГрафикиПодразделений
| ПО СведенияОСотрудникахСрезПоследних. Подразделение = ГрафикиПодразделений. Подразделение";
Запрос. УстановитьПараметр("НачалоПериода", НачалоМесяца(Объект. Дата));
Объект. ОсновныеНачисления. Загрузить(Запрос. Выполнить().Выгрузить());
КонецПроцедуры
&НаКлиенте
Процедура Заполнить(Команда)
ЗаполнитьНаСервере();
КонецПроцедуры
Модуль объекта:
Процедура ОбработкаПроведения(Отказ, Режим)
Движения. ОсновныеНачисления. Очистить();
Движения. ОсновныеНачисления. Записать();
// регистр ОсновныеНачисления
Движения. ОсновныеНачисления. Записывать = Истина;
Выборка = СформироватьВыборкуОсн();
ЗаполнитьНабор(Движения. ОсновныеНачисления, Выборка);
КонецПроцедуры
Процедура Расчитать() Экспорт
Если Проведен Тогда
Записать(РежимЗаписиДокумента. ОтменаПроведения);
Иначе
Записать();
КонецЕсли;
НаборОсн = Движения. ОсновныеНачисления;
ВыборкаОсн = СформироватьВыборкуОсн();
ЗаполнитьНабор(НаборОсн, ВыборкаОсн);
РасчитатьНабор(НаборОсн, ОсновныеНачисления);
НаборОсн. Очистить();
НаборОсн. Записать();
КонецПроцедуры
Функция СформироватьВыборкуОсн()
Запрос = Новый Запрос;
Запрос. Текст =
"ВЫБРАТЬ
| НачислениеЗарплатыОсновныеНачисления. ВидРасчета,
| НачислениеЗарплатыОсновныеНачисления. ДатаНачала КАК ПериодДействияНачало,
| НачислениеЗарплатыОсновныеНачисления. ДатаОкончания КАК ПериодДействияКонец,
| НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НачислениеЗарплатыОсновныеНачисления. Ссылка. Дата, МЕСЯЦ, -3), МЕСЯЦ) КАК БазовыйПериодНачало,
| КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(НачислениеЗарплатыОсновныеНачисления. Ссылка. Дата, МЕСЯЦ, -1), МЕСЯЦ) КАК БазовыйПериодКонец,
| НачислениеЗарплатыОсновныеНачисления. Сотрудник,
| НачислениеЗарплатыОсновныеНачисления. Результат,
| НачислениеЗарплатыОсновныеНачисления. Размер,
| НачислениеЗарплатыОсновныеНачисления. Подразделение,
| НачислениеЗарплатыОсновныеНачисления. График,
| НачислениеЗарплатыОсновныеНачисления. НормаДни,
| НачислениеЗарплатыОсновныеНачисления. Ссылка. Дата КАК ПериодРегистрации
|ИЗ
| Документ. НачислениеЗарплаты. ОсновныеНачисления КАК НачислениеЗарплатыОсновныеНачисления
|ГДЕ
| НачислениеЗарплатыОсновныеНачисления. Ссылка = &Ссылка
|
|УПОРЯДОЧИТЬ ПО
| НачислениеЗарплатыОсновныеНачисления. НомерСтроки";
Запрос. УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос. Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса. Выбрать();
Возврат ВыборкаДетальныеЗаписи;
КонецФункции
Процедура ЗаполнитьНабор(Набор, Выборка)
Пока Выборка. Следующий() Цикл
Стр = Набор. Добавить();
ЗаполнитьЗначенияСвойств(Стр, Выборка);
КонецЦикла;
КонецПроцедуры
Процедура РасчитатьНабор(Набор, ТЧ)
Набор. Записать();
ТЗ = ТЧ. Выгрузить();
ТЗ. Свернуть("ВидРасчета");
Для каждого Стр из ТЗ Цикл
Если Стр. ВидРасчета = ПланыВидовРасчета. ОсновныеНачисления. Оклад Тогда
Запрос = Новый Запрос;
Запрос. Текст =
"ВЫБРАТЬ
| ОсновныеНачисленияДанныеГрафика. НомерСтроки,
| ОсновныеНачисленияДанныеГрафика. Сотрудник,
| ОсновныеНачисленияДанныеГрафика. Подразделение,
| ОсновныеНачисленияДанныеГрафика. ЧасыПериодДействия КАК НормаЧасы,
| ОсновныеНачисленияДанныеГрафика. ЧасыФактическийПериодДействия КАК ФактЧасы,
| ОсновныеНачисленияДанныеГрафика. ВидРасчета,
| ОсновныеНачисленияДанныеГрафика. ДниПериодДействия КАК НормаДни
|ПОМЕСТИТЬ ВТ_ДанныеГрафика
|ИЗ
| РегистрРасчета. ОсновныеНачисления. ДанныеГрафика(
| Регистратор = &Ссылка
| И ВидРасчета = &Оклад) КАК ОсновныеНачисленияДанныеГрафика
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 |


