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

       

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

       

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

       

       ВыборкаДетальныеЗаписи. Следующий();

       ПроцентПремии = ВыборкаДетальныеЗаписи. Процент;

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

&НаКлиенте

Процедура ПроцентПремии(Команда)

       ПроцентПремииНаСервере();

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

&НаСервере

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

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

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

               "ВЫБРАТЬ

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

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

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

               |        ЗНАЧЕНИЕ(ПланВидовРасчета. ОсновныеНачисления. Оклад) КАК ВидРасчета,

               |        НАЧАЛОПЕРИОДА(&Дата, МЕСЯЦ) КАК ДатаНачала,

               |        КОНЕЦПЕРИОДА(&Дата, МЕСЯЦ) КАК ДатаОкончания

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

               |ИЗ

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

       

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

       

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

       

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

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

&НаКлиенте

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

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

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

&НаСервере

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

       Объект. Удержания. Очистить();

       Для Каждого Стр из Объект. ОсновныеНачисления Цикл

               Если Стр. ВидРасчета = ПланыВидовРасчета. ОсновныеНачисления. Прогул Тогда

                       НовСтр = Объект. Удержания. Добавить();

                       НовСтр. Сотрудник = Стр. Сотрудник;

                       НовСтр. Автомобиль = Стр. Автомобиль;

                       НовСтр. ВидРасчета = ПланыВидовРасчета. Удержания. Штраф;

               КонецЕсли;

       КонецЦикла;

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

&НаКлиенте

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

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

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

Отчет «АнализКомпенсаций»

ВЫБРАТЬ

       ДополнительныеНачисления. Сотрудник,

       ДополнительныеНачисления. КолЧасов КАК ОтработаноЧасов,

       ДополнительныеНачисления. Результат КАК СуммаКомпенсации

ПОМЕСТИТЬ ВТ_Начисления

ИЗ

       РегистрРасчета. ДополнительныеНачисления КАК ДополнительныеНачисления

ГДЕ

       ДополнительныеНачисления. ПериодРегистрации = НАЧАЛОПЕРИОДА(&Дата, МЕСЯЦ)

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

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

       Удержания. Сотрудник,

       ВЫБОР

               КОГДА Удержания. Результат > 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