| ВТ_Сведения КАК ВТ_Сведения
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВТ_Сведения. Сотрудник,
| ВТ_Сведения. Подразделение,
| ВТ_Сведения. ГрафикРаботы,
| ЗНАЧЕНИЕ(ПланВидовРасчета. ДополнительныеНачисления. Премия),
| ЕСТЬNULL(ВТ_Процент. Процент, 0)
|ИЗ
| ВТ_Сведения КАК ВТ_Сведения
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Процент КАК ВТ_Процент
| ПО (ИСТИНА)";
Запрос. УстановитьПараметр("Дата", Объект. Дата);
РезультатЗапроса = Запрос. Выполнить();
Объект. ДополнительныеНачисления. Загрузить(РезультатЗапроса. Выгрузить());
КонецПроцедуры
&НаКлиенте
Процедура Заполнить(Команда)
ЗаполнитьНаСервере();
КонецПроцедуры
Документ «Табель»
Рекв: Подразделение
ТЧ Список: РеквТЧ: Сотрудник, Д1,Д2… Д31
Процедура ОбработкаПроведения(Отказ, Режим)
Движения. ДанныеТабеля. Очистить();
Движения. ДанныеТабеля. Записать();
Движения. ДанныеТабеля. Записывать = Истина;
Для каждого Стр из Список Цикл
День = НачалоМесяца(Дата);
ПоследнийДень = КонецМесяца(Дата);
Сч = 1;
Пока День <= ПоследнийДень Цикл
Если НРег(Стр["д"+Сч]) = "н" Тогда
// регистр ДанныеТабеля
Движение = Движения. ДанныеТабеля. Добавить();
Движение. Период = День;
Движение. Сотрудник = Стр. Сотрудник;
Движение. Подразделение = Подразделение;
Движение. ВидРасчета = ПланыВидовРасчета. ДополнительныеНачисления. Невыход;
Движение. Значение = 1;
Иначе
КолЧасов =Число(Стр["д"+Сч]);
Движение = Движения. ДанныеТабеля. Добавить();
Движение. Период = День;
Движение. Сотрудник = Стр. Сотрудник;
Движение. Подразделение = Подразделение;
Движение. ВидРасчета = ПланыВидовРасчета. ДополнительныеНачисления. Оклад;
Движение. Значение = КолЧасов;
КонецЕсли;
Сч = Сч +1;
День = КонецДня(День) + 1;
КонецЦикла;
КонецЦикла;
КонецПроцедуры

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


