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

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 Ответить
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)