Движение. Период = День;
Движение. Сотрудник = Стр. Сотрудник;
Движение. Подразделение = Подразделение;
Движение. ВидРасчета = ПланыВидовРасчета. ОсновныеНачисления. Командировка;
Движение. Значение = 8;
Иначе
Попытка
КолЧасов =Число(Стр["д"+Сч]);
Движение = Движения. ДанныеТабеля. Добавить();
Движение. Период = День;
Движение. Сотрудник = Стр. Сотрудник;
Движение. Подразделение = Подразделение;
Движение. ВидРасчета = ПланыВидовРасчета. ОсновныеНачисления. Оклад;
Движение. Значение = КолЧасов;
Исключение
КонецПопытки;
КонецЕсли;
Сч = Сч +1;
День = КонецДня(День) + 1;
КонецЦикла;
КонецЦикла;
КонецПроцедуры

В модуле Формы:
&НаСервере
Процедура ЗаполнитьНаСервере()
Запрос = Новый Запрос;
Запрос. Текст =
"ВЫБРАТЬ
| СведенияОСотрудникахСрезПоследних. Сотрудник
|ИЗ
| РегистрСведений. СведенияОСотрудниках. СрезПоследних(&Дата, Подразделение = &Подразделение) КАК СведенияОСотрудникахСрезПоследних";
Запрос. УстановитьПараметр("Подразделение", Объект. Подразделение);
Запрос. УстановитьПараметр("Дата", Объект. Дата);
РезультатЗапроса = Запрос. Выполнить();
Объект. Список. Загрузить(РезультатЗапроса. Выгрузить());
КонецПроцедуры
&НаКлиенте
Процедура Заполнить(Команда)
ЗаполнитьНаСервере();
КонецПроцедуры
Отчет «Начисления»
ВЫБРАТЬ
ОсновныеНачисления. ПериодРегистрации КАК Период,
ОсновныеНачисления. Результат,
ОсновныеНачисления. Подразделение,
ОсновныеНачисления. Сотрудник,
ОсновныеНачисления. ВидРасчета
ИЗ
РегистрРасчета. ОсновныеНачисления КАК ОсновныеНачисления
ГДЕ
ОсновныеНачисления. ПериодРегистрации МЕЖДУ &ДатаНачала И &ДатаОкончания

Обработка «ЗаполнениеГрафика»
Рекв: Сотрудник, Подразделение, ГрафикРаботы (вынести на форму)
Процедура ЗаполнитьГрафик(ДатаНачала, ДатаОкончания, ВыходныеДни) Экспорт
Набор = РегистрыСведений. ГрафикиРаботы. СоздатьНаборЗаписей();
Набор. Отбор. ГрафикРаботы. Установить(ГрафикРаботы);
Набор. Отбор. Подразделение. Установить(Подразделение);
Набор. Отбор. Сотрудник. Установить(Сотрудник);
Набор. Прочитать();
ЧислоСекундВСутках = 86400;
Дат = ДатаНачала;
Для к = 0 По Набор. Количество()-1 Цикл
Запись = Набор[к];
Если Запись. Дата < ДатаНачала Тогда
Продолжить;
ИначеЕсли Запись. Дата =Дат Тогда
Если Найти(ВыходныеДни, Строка(ДеньНедели(Дат))) Тогда
Запись. Значение = 0;
Иначе
Запись. Значение = 8;
КонецЕсли;
Дат = Дат + ЧислоСекундВСутках;
Иначе
Пока Дат < Мин(Запись. Дата, ДатаОкончания) Цикл
НоваяЗапись = Набор. Добавить();
НоваяЗапись. Дата = Дат;
НоваяЗапись. ГрафикРаботы = ГрафикРаботы;
НоваяЗапись. Подразделение = Подразделение;
НоваяЗапись. Сотрудник = Сотрудник;
Если Найти(ВыходныеДни, Строка(ДеньНедели(Дат))) Тогда
НоваяЗапись. Значение = 0;
Иначе
НоваяЗапись. Значение = 8;
КонецЕсли;
Дат = Дат + ЧислоСекундВСутках;
КонецЦикла;
Если Запись. Дата > ДатаОкончания Тогда
Прервать;
Иначе
Если Найти(ВыходныеДни, Строка(ДеньНедели(Дат))) Тогда
Запись. Значение = 0;
Иначе
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 |


