Оплата праздничных нерабочих дней
Добрый день.
Есть группа работников, которые работают по сменам сдельно. С 01 по 08 они не работали, т.к не было заказов. Но это время должно оплачиваться, поэтому
1. Создали начисление "Оплата праздничных нерабочих дней" с такими настройками
Назначение начисления - Прочие начисления и выплаты.
Вид времени - Рабочее время.
Ну и с формулой ТарифнаяСтавкаЧасовая*Часы.
2. Документом "Разовое начисление" начисляем ребятам сумму.
3. Заполняем Табель.
Как говорят в ОТИЗе в табеле эти дни должны обозначаться как выходные, т.е. "В", но у нас указаны часы. И должна использоваться именно "Оплата праздничных нерабочих дней", а не простой производства. Вопрос. Как сделать так, чтобы в табеле эти оплаченные дни были обозначены выходными, т.е. буквой "В" как на скрине? Или как сделать правильно?
Есть группа работников, которые работают по сменам сдельно. С 01 по 08 они не работали, т.к не было заказов. Но это время должно оплачиваться, поэтому
1. Создали начисление "Оплата праздничных нерабочих дней" с такими настройками
Назначение начисления - Прочие начисления и выплаты.
Вид времени - Рабочее время.
Ну и с формулой ТарифнаяСтавкаЧасовая*Часы.
2. Документом "Разовое начисление" начисляем ребятам сумму.
3. Заполняем Табель.
Как говорят в ОТИЗе в табеле эти дни должны обозначаться как выходные, т.е. "В", но у нас указаны часы. И должна использоваться именно "Оплата праздничных нерабочих дней", а не простой производства. Вопрос. Как сделать так, чтобы в табеле эти оплаченные дни были обозначены выходными, т.е. буквой "В" как на скрине? Или как сделать правильно?
Прикрепленные файлы:
По теме из базы знаний
- Внешняя обработка "Расчет нерабочих праздничных дней"
- Учет и расчет выплат работникам за время прохождения медосмотров в программе «1С:ЗУП» редакции 2.5
- Обновление для КА 1.1, ЗУП 2.5, БУХ 2.0: НДС, ЕФС-1, Расчет страховых взносов, Мобилизация, Статистика, Электронные трудовые книжки, 2-НДФЛ, Регламентированная отчетность, Кадровый учет, Прослеживаемость импортных товаров
- Расчет зарплаты за Апрель 2020 "оплата по окладу(по часам)"
- Назначение галочки "Учитывать МРОТ при оплате по среднему заработку" в документе "Отпуск"
Найденные решения
Вощем, в модуле менеджера табеля есть нерабочая фукнция. Поменял её чуточку под себя и получил что нужно. Добавленное и изменённое пометил жирным курсивом
Функция ЗаполнитьВО(ТаблицаВремени, Дата)
УстановитьПривилегированныйРежим(Истина);
ВО = Справочники.ВидыИспользованияРабочегоВремени.НайтиПоНаименованию("Выходные дни");
ПустаяСсылкаРВ = Справочники.ВидыИспользованияРабочегоВремени.ПустаяСсылка();
Начисление = ПланыВидовРасчета.Начисления.НайтиПоНаименованию("069 Новый Оплата праздничных нерабочих дней");
Сотрудники = ТаблицаВремени.ВыгрузитьКолонку("Сотрудник");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| РазовоеНачислениеНачисления.Сотрудник КАК Сотрудник,
| РазовоеНачислениеНачисления.Подразделение КАК Подразделение,
| РазовоеНачислениеНачисления.ДатаНачала КАК ДатаНачала,
| РазовоеНачислениеНачисления.ДатаОкончания КАК ДатаОкончания,
//| ВЫБОР
//| КОГДА ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала) = ДЕНЬ(РазовоеНачислениеНачисления.ДатаОкончания)
//| ТОГДА ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала)
//| ИНАЧЕ ЛОЖЬ
//| КОНЕЦ КАК Постфикс,
| ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала) как Начало,
| ДЕНЬ(РазовоеНачислениеНачисления.ДатаОкончания) как Конец,
| РазовоеНачислениеНачисления.Ссылка.Начисление КАК Начисление
|ИЗ
| Документ.РазовоеНачисление.Начисления КАК РазовоеНачислениеНачисления
|ГДЕ
| РазовоеНачислениеНачисления.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
| И РазовоеНачислениеНачисления.Ссылка.Начисление = &Начисление
| И РазовоеНачислениеНачисления.Ссылка.Проведен = Истина
//| И НЕ ВЫБОР
//| КОГДА ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала) = ДЕНЬ(РазовоеНачислениеНачисления.ДатаОкончания)
//| ТОГДА ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала)
//| ИНАЧЕ ЛОЖЬ
//| КОНЕЦ = ЛОЖЬ
| И РазовоеНачислениеНачисления.Сотрудник В(&Сотрудник)";
Запрос.УстановитьПараметр("ДатаНачала",НачалоМесяца(Дата));
Запрос.УстановитьПараметр("ДатаОкончания",КонецМесяца(Дата));
Запрос.УстановитьПараметр("Начисление",Начисление);
Запрос.УстановитьПараметр("Сотрудник", Сотрудники);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат ТаблицаВремени
КонецЕсли;
ВыборкаВремяВО = Результат.Выгрузить();
Для Каждого СтрокаСотрудник Из ТаблицаВремени Цикл
Для Каждого ВыборкаСотрудник Из ВыборкаВремяВО Цикл
// Индекс дня. Начало - номер дня месяца, с которого человек не работает по 069
// Соответственно, конец - номер дня месяца, ПО который человек не работает по 069
Постфикс = ВыборкаСотрудник.Начало;
Пока Постфикс <= ВыборкаСотрудник.Конец Цикл
Если СтрокаСотрудник.Сотрудник = ВыборкаСотрудник.Сотрудник Тогда
Если Не СтрокаСотрудник["ВидВремени" + Постфикс] = ПустаяСсылкаРВ Тогда
СтрокаСотрудник["ВидВремени" + Постфикс] = ВО;
СтрокаСотрудник["Территория" + Постфикс] = Справочники.ТерриторииВыполненияРабот.ПустаяСсылка();
СтрокаСотрудник["УсловияТруда" + Постфикс] = Справочники.УсловияТруда.ПустаяСсылка();
СтрокаСотрудник["Часов" + Постфикс] = 0;
СтрокаСотрудник["ПереходящаяЧастьСмены" + Постфикс] = Ложь;
КонецЕсли;
КонецЕсли;
Постфикс = Постфикс + 1;
КонецЦикла;
КонецЦикла;
КонецЦикла;
Возврат ТаблицаВремени
КонецФункции
Функция ЗаполнитьВО(ТаблицаВремени, Дата)
УстановитьПривилегированныйРежим(Истина);
ВО = Справочники.ВидыИспользованияРабочегоВремени.НайтиПоНаименованию("Выходные дни");
ПустаяСсылкаРВ = Справочники.ВидыИспользованияРабочегоВремени.ПустаяСсылка();
Начисление = ПланыВидовРасчета.Начисления.НайтиПоНаименованию("069 Новый Оплата праздничных нерабочих дней");
Сотрудники = ТаблицаВремени.ВыгрузитьКолонку("Сотрудник");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| РазовоеНачислениеНачисления.Сотрудник КАК Сотрудник,
| РазовоеНачислениеНачисления.Подразделение КАК Подразделение,
| РазовоеНачислениеНачисления.ДатаНачала КАК ДатаНачала,
| РазовоеНачислениеНачисления.ДатаОкончания КАК ДатаОкончания,
//| ВЫБОР
//| КОГДА ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала) = ДЕНЬ(РазовоеНачислениеНачисления.ДатаОкончания)
//| ТОГДА ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала)
//| ИНАЧЕ ЛОЖЬ
//| КОНЕЦ КАК Постфикс,
| ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала) как Начало,
| ДЕНЬ(РазовоеНачислениеНачисления.ДатаОкончания) как Конец,
| РазовоеНачислениеНачисления.Ссылка.Начисление КАК Начисление
|ИЗ
| Документ.РазовоеНачисление.Начисления КАК РазовоеНачислениеНачисления
|ГДЕ
| РазовоеНачислениеНачисления.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
| И РазовоеНачислениеНачисления.Ссылка.Начисление = &Начисление
| И РазовоеНачислениеНачисления.Ссылка.Проведен = Истина
//| И НЕ ВЫБОР
//| КОГДА ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала) = ДЕНЬ(РазовоеНачислениеНачисления.ДатаОкончания)
//| ТОГДА ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала)
//| ИНАЧЕ ЛОЖЬ
//| КОНЕЦ = ЛОЖЬ
| И РазовоеНачислениеНачисления.Сотрудник В(&Сотрудник)";
Запрос.УстановитьПараметр("ДатаНачала",НачалоМесяца(Дата));
Запрос.УстановитьПараметр("ДатаОкончания",КонецМесяца(Дата));
Запрос.УстановитьПараметр("Начисление",Начисление);
Запрос.УстановитьПараметр("Сотрудник", Сотрудники);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат ТаблицаВремени
КонецЕсли;
ВыборкаВремяВО = Результат.Выгрузить();
Для Каждого СтрокаСотрудник Из ТаблицаВремени Цикл
Для Каждого ВыборкаСотрудник Из ВыборкаВремяВО Цикл
// Индекс дня. Начало - номер дня месяца, с которого человек не работает по 069
// Соответственно, конец - номер дня месяца, ПО который человек не работает по 069
Постфикс = ВыборкаСотрудник.Начало;
Пока Постфикс <= ВыборкаСотрудник.Конец Цикл
Если СтрокаСотрудник.Сотрудник = ВыборкаСотрудник.Сотрудник Тогда
Если Не СтрокаСотрудник["ВидВремени" + Постфикс] = ПустаяСсылкаРВ Тогда
СтрокаСотрудник["ВидВремени" + Постфикс] = ВО;
СтрокаСотрудник["Территория" + Постфикс] = Справочники.ТерриторииВыполненияРабот.ПустаяСсылка();
СтрокаСотрудник["УсловияТруда" + Постфикс] = Справочники.УсловияТруда.ПустаяСсылка();
СтрокаСотрудник["Часов" + Постфикс] = 0;
СтрокаСотрудник["ПереходящаяЧастьСмены" + Постфикс] = Ложь;
КонецЕсли;
КонецЕсли;
Постфикс = Постфикс + 1;
КонецЦикла;
КонецЦикла;
КонецЦикла;
Возврат ТаблицаВремени
КонецФункции
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
Вощем, в модуле менеджера табеля есть нерабочая фукнция. Поменял её чуточку под себя и получил что нужно. Добавленное и изменённое пометил жирным курсивом
Функция ЗаполнитьВО(ТаблицаВремени, Дата)
УстановитьПривилегированныйРежим(Истина);
ВО = Справочники.ВидыИспользованияРабочегоВремени.НайтиПоНаименованию("Выходные дни");
ПустаяСсылкаРВ = Справочники.ВидыИспользованияРабочегоВремени.ПустаяСсылка();
Начисление = ПланыВидовРасчета.Начисления.НайтиПоНаименованию("069 Новый Оплата праздничных нерабочих дней");
Сотрудники = ТаблицаВремени.ВыгрузитьКолонку("Сотрудник");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| РазовоеНачислениеНачисления.Сотрудник КАК Сотрудник,
| РазовоеНачислениеНачисления.Подразделение КАК Подразделение,
| РазовоеНачислениеНачисления.ДатаНачала КАК ДатаНачала,
| РазовоеНачислениеНачисления.ДатаОкончания КАК ДатаОкончания,
//| ВЫБОР
//| КОГДА ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала) = ДЕНЬ(РазовоеНачислениеНачисления.ДатаОкончания)
//| ТОГДА ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала)
//| ИНАЧЕ ЛОЖЬ
//| КОНЕЦ КАК Постфикс,
| ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала) как Начало,
| ДЕНЬ(РазовоеНачислениеНачисления.ДатаОкончания) как Конец,
| РазовоеНачислениеНачисления.Ссылка.Начисление КАК Начисление
|ИЗ
| Документ.РазовоеНачисление.Начисления КАК РазовоеНачислениеНачисления
|ГДЕ
| РазовоеНачислениеНачисления.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
| И РазовоеНачислениеНачисления.Ссылка.Начисление = &Начисление
| И РазовоеНачислениеНачисления.Ссылка.Проведен = Истина
//| И НЕ ВЫБОР
//| КОГДА ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала) = ДЕНЬ(РазовоеНачислениеНачисления.ДатаОкончания)
//| ТОГДА ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала)
//| ИНАЧЕ ЛОЖЬ
//| КОНЕЦ = ЛОЖЬ
| И РазовоеНачислениеНачисления.Сотрудник В(&Сотрудник)";
Запрос.УстановитьПараметр("ДатаНачала",НачалоМесяца(Дата));
Запрос.УстановитьПараметр("ДатаОкончания",КонецМесяца(Дата));
Запрос.УстановитьПараметр("Начисление",Начисление);
Запрос.УстановитьПараметр("Сотрудник", Сотрудники);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат ТаблицаВремени
КонецЕсли;
ВыборкаВремяВО = Результат.Выгрузить();
Для Каждого СтрокаСотрудник Из ТаблицаВремени Цикл
Для Каждого ВыборкаСотрудник Из ВыборкаВремяВО Цикл
// Индекс дня. Начало - номер дня месяца, с которого человек не работает по 069
// Соответственно, конец - номер дня месяца, ПО который человек не работает по 069
Постфикс = ВыборкаСотрудник.Начало;
Пока Постфикс <= ВыборкаСотрудник.Конец Цикл
Если СтрокаСотрудник.Сотрудник = ВыборкаСотрудник.Сотрудник Тогда
Если Не СтрокаСотрудник["ВидВремени" + Постфикс] = ПустаяСсылкаРВ Тогда
СтрокаСотрудник["ВидВремени" + Постфикс] = ВО;
СтрокаСотрудник["Территория" + Постфикс] = Справочники.ТерриторииВыполненияРабот.ПустаяСсылка();
СтрокаСотрудник["УсловияТруда" + Постфикс] = Справочники.УсловияТруда.ПустаяСсылка();
СтрокаСотрудник["Часов" + Постфикс] = 0;
СтрокаСотрудник["ПереходящаяЧастьСмены" + Постфикс] = Ложь;
КонецЕсли;
КонецЕсли;
Постфикс = Постфикс + 1;
КонецЦикла;
КонецЦикла;
КонецЦикла;
Возврат ТаблицаВремени
КонецФункции
Функция ЗаполнитьВО(ТаблицаВремени, Дата)
УстановитьПривилегированныйРежим(Истина);
ВО = Справочники.ВидыИспользованияРабочегоВремени.НайтиПоНаименованию("Выходные дни");
ПустаяСсылкаРВ = Справочники.ВидыИспользованияРабочегоВремени.ПустаяСсылка();
Начисление = ПланыВидовРасчета.Начисления.НайтиПоНаименованию("069 Новый Оплата праздничных нерабочих дней");
Сотрудники = ТаблицаВремени.ВыгрузитьКолонку("Сотрудник");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| РазовоеНачислениеНачисления.Сотрудник КАК Сотрудник,
| РазовоеНачислениеНачисления.Подразделение КАК Подразделение,
| РазовоеНачислениеНачисления.ДатаНачала КАК ДатаНачала,
| РазовоеНачислениеНачисления.ДатаОкончания КАК ДатаОкончания,
//| ВЫБОР
//| КОГДА ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала) = ДЕНЬ(РазовоеНачислениеНачисления.ДатаОкончания)
//| ТОГДА ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала)
//| ИНАЧЕ ЛОЖЬ
//| КОНЕЦ КАК Постфикс,
| ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала) как Начало,
| ДЕНЬ(РазовоеНачислениеНачисления.ДатаОкончания) как Конец,
| РазовоеНачислениеНачисления.Ссылка.Начисление КАК Начисление
|ИЗ
| Документ.РазовоеНачисление.Начисления КАК РазовоеНачислениеНачисления
|ГДЕ
| РазовоеНачислениеНачисления.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
| И РазовоеНачислениеНачисления.Ссылка.Начисление = &Начисление
| И РазовоеНачислениеНачисления.Ссылка.Проведен = Истина
//| И НЕ ВЫБОР
//| КОГДА ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала) = ДЕНЬ(РазовоеНачислениеНачисления.ДатаОкончания)
//| ТОГДА ДЕНЬ(РазовоеНачислениеНачисления.ДатаНачала)
//| ИНАЧЕ ЛОЖЬ
//| КОНЕЦ = ЛОЖЬ
| И РазовоеНачислениеНачисления.Сотрудник В(&Сотрудник)";
Запрос.УстановитьПараметр("ДатаНачала",НачалоМесяца(Дата));
Запрос.УстановитьПараметр("ДатаОкончания",КонецМесяца(Дата));
Запрос.УстановитьПараметр("Начисление",Начисление);
Запрос.УстановитьПараметр("Сотрудник", Сотрудники);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат ТаблицаВремени
КонецЕсли;
ВыборкаВремяВО = Результат.Выгрузить();
Для Каждого СтрокаСотрудник Из ТаблицаВремени Цикл
Для Каждого ВыборкаСотрудник Из ВыборкаВремяВО Цикл
// Индекс дня. Начало - номер дня месяца, с которого человек не работает по 069
// Соответственно, конец - номер дня месяца, ПО который человек не работает по 069
Постфикс = ВыборкаСотрудник.Начало;
Пока Постфикс <= ВыборкаСотрудник.Конец Цикл
Если СтрокаСотрудник.Сотрудник = ВыборкаСотрудник.Сотрудник Тогда
Если Не СтрокаСотрудник["ВидВремени" + Постфикс] = ПустаяСсылкаРВ Тогда
СтрокаСотрудник["ВидВремени" + Постфикс] = ВО;
СтрокаСотрудник["Территория" + Постфикс] = Справочники.ТерриторииВыполненияРабот.ПустаяСсылка();
СтрокаСотрудник["УсловияТруда" + Постфикс] = Справочники.УсловияТруда.ПустаяСсылка();
СтрокаСотрудник["Часов" + Постфикс] = 0;
СтрокаСотрудник["ПереходящаяЧастьСмены" + Постфикс] = Ложь;
КонецЕсли;
КонецЕсли;
Постфикс = Постфикс + 1;
КонецЦикла;
КонецЦикла;
КонецЦикла;
Возврат ТаблицаВремени
КонецФункции
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)