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

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


