Skip to content

Instantly share code, notes, and snippets.

@PlugFox
Created March 4, 2019 14:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PlugFox/064ac2b89bfdf5ad39e88ba6f948df7e to your computer and use it in GitHub Desktop.
Save PlugFox/064ac2b89bfdf5ad39e88ba6f948df7e to your computer and use it in GitHub Desktop.
Расчет отпускных
Запрос = Новый Запрос("
|// Коэффициент по умолчанию равен 29.3
|ВЫБРАТЬ
| НачалоПериода(ДанныеПоТабелю.Период, МЕСЯЦ) КАК Период,
| ДниОборот КАК КоличествоРабочихДней,
| День(КонецПериода(ДанныеПоТабелю.Период, МЕСЯЦ)) КАК КоличествоДнейВМесяце,
| ВЫБОР
| КОГДА Месяц(Период) + Год(Период) * 100 = 201801 И ДниОборот = 23
| ТОГДА &Коэффициент // Исключение для января 2018, из за кадрового перевода
| ИНАЧЕ &Коэффициент*ДниОборот/День(КонецПериода(ДанныеПоТабелю.Период, МЕСЯЦ))
| КОНЕЦ КАК Коэффициент
|ПОМЕСТИТЬ ДанныеПоТабелю
|ИЗ
| РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников.Обороты(
| НачалоПериода(ДобавитьКДате(&ДатаНачала, МЕСЯЦ, -12), Месяц)
| , КонецПериода(ДобавитьКДате(&ДатаНачала, МЕСЯЦ, -1), Месяц)
| , Месяц
| , Сотрудник = &Сотрудник
| И ВидУчетаВремени В(
| Значение(Справочник.ВидыИспользованияРабочегоВремени.ВыходныеДни)
| , Значение(Справочник.ВидыИспользованияРабочегоВремени.Явка)) // Учитываем за рабочие дни только явку и выходные дни
| ) КАК ДанныеПоТабелю
|;
|ВЫБРАТЬ
| НачалоПериода(Начисления.Период, МЕСЯЦ) КАК Месяц,
| ЕстьNULL(СуммаОборот, 0) КАК Начисление,
| ЕстьNULL(Коэффициент, &Коэффициент) КАК Коэффициент,
| ЕстьNULL(КоличествоРабочихДней, День(КонецПериода(Начисления.Период, МЕСЯЦ))) КАК КоличествоРабочихДней,
| День(КонецПериода(ДанныеПоТабелю.Период, МЕСЯЦ)) КАК КоличествоДнейВМесяце
|ИЗ
| РегистрНакопления.НачисленияУдержанияПоСотрудникам.Обороты(
| НачалоПериода(ДобавитьКДате(&ДатаНачала, МЕСЯЦ, -12), Месяц)
| , КонецПериода(ДобавитьКДате(&ДатаНачала, МЕСЯЦ, -1), Месяц)
| , Месяц
| , Сотрудник = &Сотрудник
| И НачислениеУдержание ССЫЛКА ПланВидовРасчета.Начисления // Берем только начисления без НДФЛ
| И (НачислениеУдержание.Наименование ПОДОБНО ""%оклад%"" // Учитываем отпуск в начислениях
| // ИЛИ НачислениеУдержание.Наименование ПОДОБНО ""%прем%"" // Учитываем премии в начислениях
| )
| ) КАК Начисления
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеПоТабелю КАК ДанныеПоТабелю
| ПО НачалоПериода(Начисления.Период, МЕСЯЦ) = НачалоПериода(ДанныеПоТабелю.Период, МЕСЯЦ)
|УПОРЯДОЧИТЬ ПО
| Месяц ВОЗР
|ИТОГИ
| Количество(Месяц),
| Сумма(Начисление),
| Сумма(Коэффициент)
|ПО
| ОБЩИЕ");
Запрос.УстановитьПараметр("Коэффициент", 29.3);
Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ДатаНачала));
Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
ВыборкаИтоги = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment