Расчет оклада сотрудника по тарифу (помогите новичку)
Вечер добрый!
Начал обучение по программированию и пройдя некоторое количество дней курса, наткнулся на небольшую проблему, а именно:
"Обеспечьте расчет оклада сотрудника по дневном тарифу, расчет выполняется по формуле:
Оклад по тарифу = Дневная оплата * Количество отработанных дней в месяце"
Состряпал код в "своём стиле" и сейчас зашел в тупик по нескольким параметрам:
1. в созданном мною регистре расчета "начисления" не получается подтянуть сумму крайнего сотрудника, хотя через точки останова её видно. - Здесь в документе "НачислениеОкладаПоТарифу" я создаю 2х сотрудников и начисляю им оклад в определенном размере, в регистре же отображает начисление по первому сотруднику, но не отображает начисление по второму.
2. Не знаю как связать в документе "начисление оклада по тарифу" начало/конец периода для рассчета по регистру сведений "ГрафикРабочегоВремени"
По задумке:
Есть дневной тариф - 1500р.
Есть график работ - пятидневка
Я хотел что бы в документе "начисление оклада по тарифу" я устанавливал стоимость за день, а в дальнейшем мне отчет выдавал сколько получит сотрудник за весь период работ согласно графику работ
Начал обучение по программированию и пройдя некоторое количество дней курса, наткнулся на небольшую проблему, а именно:
"Обеспечьте расчет оклада сотрудника по дневном тарифу, расчет выполняется по формуле:
Оклад по тарифу = Дневная оплата * Количество отработанных дней в месяце"
Состряпал код в "своём стиле" и сейчас зашел в тупик по нескольким параметрам:
1. в созданном мною регистре расчета "начисления" не получается подтянуть сумму крайнего сотрудника, хотя через точки останова её видно. - Здесь в документе "НачислениеОкладаПоТарифу" я создаю 2х сотрудников и начисляю им оклад в определенном размере, в регистре же отображает начисление по первому сотруднику, но не отображает начисление по второму.
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.Начисления.Записывать = Истина;
Для Каждого ТекСтрокаСотрудникиКНачислению Из СотрудникиКНачислению Цикл
Движение = Движения.Начисления.Добавить();
Движение.Сторно = Ложь;
Движение.ВидРасчета =ПланыВидовРасчета.Начисления.ОкладПоТарифу ;
Движение.ПериодДействияНачало = НачалоМесяца(НачалоПериода);
Движение.ПериодДействияКонец = КонецМесяца(КонецПериода);
Движение.ПериодРегистрации = Дата;
Движение.Сотрудник = ТекСтрокаСотрудникиКНачислению.Сотрудник;
Движение.Сумма = ТекСтрокаСотрудникиКНачислению.СуммаНачисления;
//Движения.ДанныеПоТарифу = Перечисления.ТарифыЗаработнойПлаты("ТарифНачисленияЗП");
//Движения.Начисления.Записать();
КонецЦикла;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НачисленияДанныеГрафика.РабочийДеньФактическийПериодДействия КАК Факт,
| НачисленияДанныеГрафика.Сотрудник КАК Сотрудник,
| ЕСТЬNULL(НачислениеОкладаПоТарифуСотрудникиКНачислению.СуммаНачисления, 0) КАК СуммаНачисления,
| ГрафикРабочегоВремени.РабочийДень КАК РабочийДень
|ИЗ
| Документ.НачислениеОкладаПоТарифу.СотрудникиКНачислению КАК НачислениеОкладаПоТарифуСотрудникиКНачислению
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.Начисления.ДанныеГрафика(Регистратор = &Ссылка) КАК НачисленияДанныеГрафика
| ПО (НачисленияДанныеГрафика.ДанныеПоТарифу = НачислениеОкладаПоТарифуСотрудникиКНачислению.СуммаНачисления),
| РегистрСведений.ГрафикРабочегоВремени КАК ГрафикРабочегоВремени";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.РабочийДень = 1 Тогда
Множитель=1;
Иначе
Множитель=0;
КонецЕсли;
//ДанныеПоТарифу= 0;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Движение.Сумма = Множитель * ВыборкаДетальныеЗаписи.СуммаНачисления;
КонецЦикла;
Движения.Начисления.Записать();
КонецПроцедуры
Показать2. Не знаю как связать в документе "начисление оклада по тарифу" начало/конец периода для рассчета по регистру сведений "ГрафикРабочегоВремени"
По задумке:
Есть дневной тариф - 1500р.
Есть график работ - пятидневка
Я хотел что бы в документе "начисление оклада по тарифу" я устанавливал стоимость за день, а в дальнейшем мне отчет выдавал сколько получит сотрудник за весь период работ согласно графику работ
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4) да, спасибо, с этим понял.
Теперь остается ещё одна проблема.
Когда в табличной части документа начисления 1 сотрудник в регистре всё отлично - сумма рассчитывается и заполняется правильно, но как только 2 и более заполнение колонки сумма сбивается и в колонке сумма отображается одна правильная строка, а остальные строки не рассчитываются и заполняются разовым начислением без учета количества отработанных дней.
наткнулся на подсказку "Имейте ввиду, что если в результате запроса возвращается несколько строк, то вы получите результат последней строки." - так вот возможно ли как то вернуть все строки ?
Теперь остается ещё одна проблема.
Когда в табличной части документа начисления 1 сотрудник в регистре всё отлично - сумма рассчитывается и заполняется правильно, но как только 2 и более заполнение колонки сумма сбивается и в колонке сумма отображается одна правильная строка, а остальные строки не рассчитываются и заполняются разовым начислением без учета количества отработанных дней.
наткнулся на подсказку "Имейте ввиду, что если в результате запроса возвращается несколько строк, то вы получите результат последней строки." - так вот возможно ли как то вернуть все строки ?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот