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

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

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

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

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

                               

                       Иначе

                               Попытка

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

                                       

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

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

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

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

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

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

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

                               Исключение

                                       

                               КонецПопытки;

                       КонецЕсли;

                       Сч = Сч +1;

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

               КонецЦикла;

       КонецЦикла;

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

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

&НаСервере

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

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

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

               "ВЫБРАТЬ

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

               |ИЗ

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

       

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

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

       

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

       

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

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

&НаКлиенте

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

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

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

Отчет «Начисления»

ВЫБРАТЬ

       ОсновныеНачисления. ПериодРегистрации КАК Период,

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

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

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

       ОсновныеНачисления. ВидРасчета

ИЗ

       РегистрРасчета. ОсновныеНачисления КАК ОсновныеНачисления

ГДЕ

       ОсновныеНачисления. ПериодРегистрации МЕЖДУ &ДатаНачала И &ДатаОкончания

Обработка «ЗаполнениеГрафика»

Рекв: Сотрудник, Подразделение, ГрафикРаботы (вынести на форму)

Процедура ЗаполнитьГрафик(ДатаНачала, ДатаОкончания, ВыходныеДни) Экспорт

       

       Набор = РегистрыСведений. ГрафикиРаботы. СоздатьНаборЗаписей();

       

       Набор. Отбор. ГрафикРаботы. Установить(ГрафикРаботы);

       Набор. Отбор. Подразделение. Установить(Подразделение);

       Набор. Отбор. Сотрудник. Установить(Сотрудник);

       

       Набор. Прочитать();

       

       ЧислоСекундВСутках = 86400;

       

       Дат = ДатаНачала;

       Для к = 0 По Набор. Количество()-1 Цикл

               

               Запись = Набор[к];

               Если Запись. Дата < ДатаНачала Тогда

                Продолжить;

               ИначеЕсли Запись. Дата =Дат Тогда

                       Если Найти(ВыходныеДни, Строка(ДеньНедели(Дат))) Тогда

                               Запись. Значение = 0;

                       Иначе        

                               Запись. Значение = 8;

                       КонецЕсли;

                       Дат = Дат + ЧислоСекундВСутках;

               Иначе

                       Пока Дат < Мин(Запись. Дата, ДатаОкончания) Цикл

                               НоваяЗапись = Набор. Добавить();

                               НоваяЗапись. Дата = Дат;

                               НоваяЗапись. ГрафикРаботы = ГрафикРаботы;

                               НоваяЗапись. Подразделение = Подразделение;

                               НоваяЗапись. Сотрудник = Сотрудник;

                               

                               Если Найти(ВыходныеДни, Строка(ДеньНедели(Дат))) Тогда

                                       НоваяЗапись. Значение = 0;

                               Иначе        

                                       НоваяЗапись. Значение = 8;

                               КонецЕсли;

                               Дат = Дат + ЧислоСекундВСутках;

                       КонецЦикла;

                       Если Запись. Дата > ДатаОкончания Тогда

                               Прервать;

                       Иначе

                               Если Найти(ВыходныеДни, Строка(ДеньНедели(Дат))) Тогда

                                       Запись. Значение = 0;

                               Иначе        

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