Оплата праздничных нерабочих дней

1. user1114234 20.01.20 13:37 Сейчас в теме
Добрый день.
Есть группа работников, которые работают по сменам сдельно. С 01 по 08 они не работали, т.к не было заказов. Но это время должно оплачиваться, поэтому
1. Создали начисление "Оплата праздничных нерабочих дней" с такими настройками
Назначение начисления - Прочие начисления и выплаты.
Вид времени - Рабочее время.
Ну и с формулой ТарифнаяСтавкаЧасовая*Часы.
2. Документом "Разовое начисление" начисляем ребятам сумму.
3. Заполняем Табель.
Как говорят в ОТИЗе в табеле эти дни должны обозначаться как выходные, т.е. "В", но у нас указаны часы. И должна использоваться именно "Оплата праздничных нерабочих дней", а не простой производства. Вопрос. Как сделать так, чтобы в табеле эти оплаченные дни были обозначены выходными, т.е. буквой "В" как на скрине? Или как сделать правильно?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
3. user1114234 21.01.20 08:48 Сейчас в теме
Вощем, в модуле менеджера табеля есть нерабочая фукнция. Поменял её чуточку под себя и получил что нужно. Добавленное и изменённое пометил жирным курсивом

Функция ЗаполнитьВО(ТаблицаВремени, Дата)

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

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

ВыборкаВремяВО = Результат.Выгрузить();
Для Каждого СтрокаСотрудник Из ТаблицаВремени Цикл
Для Каждого ВыборкаСотрудник Из ВыборкаВремяВО Цикл
// Индекс дня. Начало - номер дня месяца, с которого человек не работает по 069
// Соответственно, конец - номер дня месяца, ПО который человек не работает по 069
Постфикс = ВыборкаСотрудник.Начало;
Пока Постфикс <= ВыборкаСотрудник.Конец Цикл

Если СтрокаСотрудник.Сотрудник = ВыборкаСотрудник.Сотрудник Тогда
Если Не СтрокаСотрудник["ВидВремени" + Постфикс] = ПустаяСсылкаРВ Тогда
СтрокаСотрудник["ВидВремени" + Постфикс] = ВО;
СтрокаСотрудник["Территория" + Постфикс] = Справочники.ТерриторииВыполненияРабот.ПустаяСсылка();
СтрокаСотрудник["УсловияТруда" + Постфикс] = Справочники.УсловияТруда.ПустаяСсылка();
СтрокаСотрудник["Часов" + Постфикс] = 0;
СтрокаСотрудник["ПереходящаяЧастьСмены" + Постфикс] = Ложь;


КонецЕсли;
КонецЕсли;
Постфикс = Постфикс + 1;
КонецЦикла;

КонецЦикла;
КонецЦикла;

Возврат ТаблицаВремени

КонецФункции
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. MuxaH 20.01.20 14:57 Сейчас в теме
Можно начисление переделать, чтоб вводить оплачиваемые часы отдельным показателем. А табель просто оставить с В, без часов.
4. user1114234 21.01.20 08:52 Сейчас в теме
(2)Так вот я и не знал как вклинить эти В, чтобы не вручную.
3. user1114234 21.01.20 08:48 Сейчас в теме
Вощем, в модуле менеджера табеля есть нерабочая фукнция. Поменял её чуточку под себя и получил что нужно. Добавленное и изменённое пометил жирным курсивом

Функция ЗаполнитьВО(ТаблицаВремени, Дата)

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

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

ВыборкаВремяВО = Результат.Выгрузить();
Для Каждого СтрокаСотрудник Из ТаблицаВремени Цикл
Для Каждого ВыборкаСотрудник Из ВыборкаВремяВО Цикл
// Индекс дня. Начало - номер дня месяца, с которого человек не работает по 069
// Соответственно, конец - номер дня месяца, ПО который человек не работает по 069
Постфикс = ВыборкаСотрудник.Начало;
Пока Постфикс <= ВыборкаСотрудник.Конец Цикл

Если СтрокаСотрудник.Сотрудник = ВыборкаСотрудник.Сотрудник Тогда
Если Не СтрокаСотрудник["ВидВремени" + Постфикс] = ПустаяСсылкаРВ Тогда
СтрокаСотрудник["ВидВремени" + Постфикс] = ВО;
СтрокаСотрудник["Территория" + Постфикс] = Справочники.ТерриторииВыполненияРабот.ПустаяСсылка();
СтрокаСотрудник["УсловияТруда" + Постфикс] = Справочники.УсловияТруда.ПустаяСсылка();
СтрокаСотрудник["Часов" + Постфикс] = 0;
СтрокаСотрудник["ПереходящаяЧастьСмены" + Постфикс] = Ложь;


КонецЕсли;
КонецЕсли;
Постфикс = Постфикс + 1;
КонецЦикла;

КонецЦикла;
КонецЦикла;

Возврат ТаблицаВремени

КонецФункции
5. serg76 313 21.01.20 09:00 Сейчас в теме
Что-то мне подсказывает, что достаточно изменить вид времени в начислении, а не ломать код конфигурации т.к. это явно не РабочееВремя.
6. user1114234 21.01.20 09:32 Сейчас в теме
(5)Возможно, но у меня так ничего и не получилось. Параметров различных много, а наугад все комбинации не перепробуешь.
7. hellf 35 21.01.20 10:11 Сейчас в теме
если создать вид начисления Оплата праздничных нерабочих дней и в качестве формулы будет 1 показатель, назовем его “ОплатаСдельщикаВых”. Этот показатель надо будет создать, он будет для сотрудника и вводиться документом “Данные для расчета зарплаты”.
и все. в вид времени В будет
user1114234; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот