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

Справочник «ГрафикиРаботы» с пред. Пятидневка, Шестидневка

Документ «НачислениеЗарплаты»

Модуль формы:

&НаСервере

Процедура РасчитатьНаСервере()

       Док = РеквизитФормыВЗначение("Объект");

       Док. Расчитать();

       ЗначениеВДанныеФормы(Док, Объект);

КонецПроцедуры

&НаКлиенте

Процедура Расчитать(Команда)

       РасчитатьНаСервере();

КонецПроцедуры

&НаСервере

Процедура ЗаполнитьНаСервере()

       Запрос = Новый Запрос;

       Запрос. Текст =

               "ВЫБРАТЬ

               |        СведенияОСотрудникахСрезПоследних. Сотрудник,

               |        СведенияОСотрудникахСрезПоследних. Подразделение,

               |        СведенияОСотрудникахСрезПоследних. Оклад КАК Размер,

               |        ЗНАЧЕНИЕ(ПланВидовРасчета. ОсновныеНачисления. оклад) КАК ВидРасчета,

               |        &НачалоПериода КАК ДатаНачала,

НЕ нашли? Не то? Что вы ищете?

               |        КОНЕЦПЕРИОДА(&НачалоПериода, МЕСЯЦ) КАК ДатаОкончания,

               |        ГрафикиПодразделений. График КАК График

               |ИЗ

               |        РегистрСведений. СведенияОСотрудниках. СрезПоследних(&НачалоПериода, ) КАК СведенияОСотрудникахСрезПоследних

               |                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений. ГрафикиПодразделений КАК ГрафикиПодразделений

               |                ПО СведенияОСотрудникахСрезПоследних. Подразделение = ГрафикиПодразделений. Подразделение";

       

       Запрос. УстановитьПараметр("НачалоПериода", НачалоМесяца(Объект. Дата));

       

       Объект. ОсновныеНачисления. Загрузить(Запрос. Выполнить().Выгрузить());

       

КонецПроцедуры

&НаКлиенте

Процедура Заполнить(Команда)

       ЗаполнитьНаСервере();

КонецПроцедуры

Модуль объекта:

Процедура ОбработкаПроведения(Отказ, Режим)

       Движения. ОсновныеНачисления. Очистить();

       Движения. ОсновныеНачисления. Записать();

       // регистр ОсновныеНачисления

       Движения. ОсновныеНачисления. Записывать = Истина;

       Выборка = СформироватьВыборкуОсн();

       ЗаполнитьНабор(Движения. ОсновныеНачисления, Выборка);

КонецПроцедуры

Процедура Расчитать() Экспорт

       

       Если Проведен Тогда

               Записать(РежимЗаписиДокумента. ОтменаПроведения);

       Иначе

               Записать();

       КонецЕсли;

       

       НаборОсн = Движения. ОсновныеНачисления;

       ВыборкаОсн = СформироватьВыборкуОсн();

       ЗаполнитьНабор(НаборОсн, ВыборкаОсн);

       РасчитатьНабор(НаборОсн, ОсновныеНачисления);

       

       НаборОсн. Очистить();

       НаборОсн. Записать();

КонецПроцедуры

Функция СформироватьВыборкуОсн()

       

       Запрос = Новый Запрос;

       Запрос. Текст =

       "ВЫБРАТЬ

       |        НачислениеЗарплатыОсновныеНачисления. ВидРасчета,

       |        НачислениеЗарплатыОсновныеНачисления. ДатаНачала КАК ПериодДействияНачало,

       |        НачислениеЗарплатыОсновныеНачисления. ДатаОкончания КАК ПериодДействияКонец,

       |        НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НачислениеЗарплатыОсновныеНачисления. Ссылка. Дата, МЕСЯЦ, -3), МЕСЯЦ) КАК БазовыйПериодНачало,

       |        КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(НачислениеЗарплатыОсновныеНачисления. Ссылка. Дата, МЕСЯЦ, -1), МЕСЯЦ) КАК БазовыйПериодКонец,

       |        НачислениеЗарплатыОсновныеНачисления. Сотрудник,

       |        НачислениеЗарплатыОсновныеНачисления. Результат,

       |        НачислениеЗарплатыОсновныеНачисления. Размер,

       |        НачислениеЗарплатыОсновныеНачисления. Подразделение,

       |        НачислениеЗарплатыОсновныеНачисления. График,

       |        НачислениеЗарплатыОсновныеНачисления. НормаДни,

       |        НачислениеЗарплатыОсновныеНачисления. Ссылка. Дата КАК ПериодРегистрации

       |ИЗ

       |        Документ. НачислениеЗарплаты. ОсновныеНачисления КАК НачислениеЗарплатыОсновныеНачисления

       |ГДЕ

       |        НачислениеЗарплатыОсновныеНачисления. Ссылка = &Ссылка

       |

       |УПОРЯДОЧИТЬ ПО

       |        НачислениеЗарплатыОсновныеНачисления. НомерСтроки";

       

       Запрос. УстановитьПараметр("Ссылка", Ссылка);

       

       РезультатЗапроса = Запрос. Выполнить();

       

       ВыборкаДетальныеЗаписи = РезультатЗапроса. Выбрать();

       

       Возврат ВыборкаДетальныеЗаписи;

КонецФункции

Процедура ЗаполнитьНабор(Набор, Выборка)

       Пока Выборка. Следующий() Цикл

               Стр = Набор. Добавить();

               ЗаполнитьЗначенияСвойств(Стр, Выборка);

       КонецЦикла;

КонецПроцедуры

Процедура РасчитатьНабор(Набор, ТЧ)

       Набор. Записать();

       ТЗ = ТЧ. Выгрузить();

       ТЗ. Свернуть("ВидРасчета");

       Для каждого Стр из ТЗ Цикл

               Если Стр. ВидРасчета = ПланыВидовРасчета. ОсновныеНачисления. Оклад Тогда

                       

                       Запрос = Новый Запрос;

                       Запрос. Текст =

                       "ВЫБРАТЬ

                       |        ОсновныеНачисленияДанныеГрафика. НомерСтроки,

                       |        ОсновныеНачисленияДанныеГрафика. Сотрудник,

                       |        ОсновныеНачисленияДанныеГрафика. Подразделение,

                       |        ОсновныеНачисленияДанныеГрафика. ЧасыПериодДействия КАК НормаЧасы,

                       |        ОсновныеНачисленияДанныеГрафика. ЧасыФактическийПериодДействия КАК ФактЧасы,

                       |        ОсновныеНачисленияДанныеГрафика. ВидРасчета,

                       |        ОсновныеНачисленияДанныеГрафика. ДниПериодДействия КАК НормаДни

                       |ПОМЕСТИТЬ ВТ_ДанныеГрафика

                       |ИЗ

                       |        РегистрРасчета. ОсновныеНачисления. ДанныеГрафика(

                       |                        Регистратор = &Ссылка

                       |                                И ВидРасчета = &Оклад) КАК ОсновныеНачисленияДанныеГрафика

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8