|ИЗ
| ВТ_Граф КАК ВТ_Граф
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_База КАК ВТ_База
| ПО ВТ_Граф. НомерСтроки = ВТ_База. НомерСтроки";
Измерения = Новый Массив;
Измерения. Добавить("Сотрудник");
Измерения. Добавить("Подразделение");
Запрос. УстановитьПараметр("Больничный", ПланыВидовРасчета. ОсновныеНачисления. Больничный);
Запрос. УстановитьПараметр("Дата", Дата);
Запрос. УстановитьПараметр("Измерения", Измерения);
Запрос. УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос. Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса. Выбрать();
Пока ВыборкаДетальныеЗаписи. Следующий() Цикл
Набор[ВыборкаДетальныеЗаписи. НомерСтроки - 1].Размер = ВыборкаДетальныеЗаписи. Размер;
ТЧ[ВыборкаДетальныеЗаписи. НомерСтроки - 1].Размер = ВыборкаДетальныеЗаписи. Размер;
Набор[ВыборкаДетальныеЗаписи. НомерСтроки - 1].Результат = ВыборкаДетальныеЗаписи. Результат;
ТЧ[ВыборкаДетальныеЗаписи. НомерСтроки - 1].Результат = ВыборкаДетальныеЗаписи. Результат;
Набор[ВыборкаДетальныеЗаписи. НомерСтроки - 1].КолДней = ВыборкаДетальныеЗаписи. КолДней;
ТЧ[ВыборкаДетальныеЗаписи. НомерСтроки - 1].КолДней = ВыборкаДетальныеЗаписи. КолДней;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, Режим)
// регистр ОсновныеНачисления
Движения. ОсновныеНачисления. Записывать = Истина;
Выборка = СформироватьВыборкуОсн();
ЗаполнитьНабор(Движения. ОсновныеНачисления, Выборка);
КонецПроцедуры

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

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


