|        ВТ_Сведения КАК ВТ_Сведения

               |

               |ОБЪЕДИНИТЬ ВСЕ

               |

               |ВЫБРАТЬ

               |        ВТ_Сведения. Сотрудник,

               |        ВТ_Сведения. Подразделение,

               |        ВТ_Сведения. ГрафикРаботы,

               |        ЗНАЧЕНИЕ(ПланВидовРасчета. ДополнительныеНачисления. Премия),

               |        ЕСТЬNULL(ВТ_Процент. Процент, 0)

               |ИЗ

               |        ВТ_Сведения КАК ВТ_Сведения

               |                ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Процент КАК ВТ_Процент

               |                ПО (ИСТИНА)";

       

       Запрос. УстановитьПараметр("Дата", Объект. Дата);

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

       

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

       

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

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

&НаКлиенте

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

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

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

Документ «Табель»

Рекв: Подразделение

ТЧ Список: РеквТЧ: Сотрудник, Д1,Д2… Д31

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

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

       Движения. ДанныеТабеля. Записать();

       Движения. ДанныеТабеля. Записывать = Истина;

       

       Для каждого Стр из Список Цикл

               День = НачалоМесяца(Дата);

               ПоследнийДень = КонецМесяца(Дата);

               Сч = 1;

               Пока День <= ПоследнийДень Цикл

                       Если НРег(Стр["д"+Сч]) = "н" Тогда

                               

                               // регистр ДанныеТабеля

                               Движение = Движения. ДанныеТабеля. Добавить();

                               Движение. Период = День;

                               Движение. Сотрудник = Стр. Сотрудник;

                               Движение. Подразделение = Подразделение;

                               Движение. ВидРасчета = ПланыВидовРасчета. ДополнительныеНачисления. Невыход;

                               Движение. Значение = 1;

                               

                       Иначе

                               КолЧасов =Число(Стр["д"+Сч]);

                               

                               Движение = Движения. ДанныеТабеля. Добавить();

                               Движение. Период = День;

                               Движение. Сотрудник = Стр. Сотрудник;

                               Движение. Подразделение = Подразделение;

                               Движение. ВидРасчета = ПланыВидовРасчета. ДополнительныеНачисления. Оклад;

                               Движение. Значение = КолЧасов;

                       КонецЕсли;

                       Сч = Сч +1;

                       День = КонецДня(День) + 1;

               КонецЦикла;

       КонецЦикла;

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

В модуле Формы:

&НаСервере

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

       Объект. Список. Очистить();

       

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

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

       "ВЫБРАТЬ

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

       |        СведенияОСотрудникахСрезПоследних. ГрафикРаботы

       |ПОМЕСТИТЬ ВТ_Сотр

       |ИЗ

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

       |;

       |

       |////////////////////////////////////////////////////////////////////////////////

       |ВЫБРАТЬ

       |        ГрафикиРаботы. Значение,

       |        ГрафикиРаботы. Дата,

       |        ГрафикиРаботы. ГрафикРаботы

       |ПОМЕСТИТЬ ВТ_Граф

       |ИЗ

       |        РегистрСведений. ГрафикиРаботы КАК ГрафикиРаботы

       |ГДЕ

       |        ГрафикиРаботы. Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Дата, МЕСЯЦ)

       |;

       |

       |////////////////////////////////////////////////////////////////////////////////

       |ВЫБРАТЬ

       |        ВТ_Сотр. Сотрудник КАК Сотрудник,

       |        ЕСТЬNULL(ВТ_Граф. Дата, ДАТАВРЕМЯ(1, 1, 1)) КАК Дата,

       |        ЕСТЬNULL(ВТ_Граф. Значение, """") КАК Значение,

       |        ВТ_Сотр. ГрафикРаботы КАК ГрафикРаботы

       |ИЗ

       |        ВТ_Сотр КАК ВТ_Сотр

       |                ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Граф КАК ВТ_Граф

       |                ПО ВТ_Сотр. ГрафикРаботы = ВТ_Граф. ГрафикРаботы

       |

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

       |        Дата

       |ИТОГИ

       |        КОЛИЧЕСТВО(Значение)

       |ПО

       |        Сотрудник,

       |        ГрафикРаботы";

       

       Запрос. УстановитьПараметр("Дата", Объект. Дата);

       Запрос. УстановитьПараметр("Подразделение", Объект. Подразделение);

       

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

       

       ВыборкаСотрудник = РезультатЗапроса. Выбрать(ОбходРезультатаЗапроса. ПоГруппировкам);

       

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

               // Вставить обработку выборки ВыборкаСотрудник

               

               ВыборкаГрафикРаботы = ВыборкаСотрудник. Выбрать(ОбходРезультатаЗапроса. ПоГруппировкам);

               

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

                       НоваяСтрока = Объект. Список. Добавить();

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