Вход | Регистрация
 

1C ЗУП 3.1 Регистрация переработок

1C ЗУП 3.1 Регистрация переработок
Я
   LopesLeonid
 
17.06.20 - 10:38
Зарплата и управление персоналом, редакция 3.1 (3.1.13.151)
Заполняю документ "Регистрация переработок", по одному сотруднику, за январь пишет норму 40 часов
Потом заполняю,только, за февраль пишет 88 часов, а если выбрать период январь - февраль то норму ставит 264
В графике сотрудника поле "При подсчете переработок определять норму по:" стоит "Производ. календарь"

Почему так происходит?
   LopesLeonid
 
1 - 17.06.20 - 10:45
график скользящий
   LopesLeonid
 
2 - 17.06.20 - 10:52
отработано правильно ставит
   LopesLeonid
 
3 - 17.06.20 - 13:18
помогите, народ!
   2S
 
4 - 17.06.20 - 13:25
Сколько не пересекался с переработками, практически всегда приходилось корректировать условия программно, особенно при вахтовом методе.
Надо вникать в суть проблемы и смотреть как запросы работают.
   LopesLeonid
 
5 - 17.06.20 - 14:20
отдельно по месяцам правильно считает, а за период нет
   2S
 
6 - 17.06.20 - 14:29
(5) в этом и фишка, посмотри код.
Для крайнего месяца берется из регистров отработанного времени, раньше - из начислений (или наоборот)
точно пилили, что бралось всегда из одного регистра.
   LopesLeonid
 
7 - 17.06.20 - 14:30
да там такое сделали

// Расчет по регистру расчета всех месяцев, за исключением последнего.

ДополнитьЗапросВТПоказателейПоРегиструРасчета(Запрос);
// Для последнего месяца собираем данные по данным УчетаРабочегоВремени.

ДополнитьЗапросВТПоказателейПоУчетуВремени(Запрос);
   LopesLeonid
 
8 - 18.06.20 - 08:47
Не стал в этих запросах, на 1000 строк, разбираться
Сделал формирование периода по месяцам, добавляю каждый месяц отдельной строкой,а потом сворачиваю таблицу с суммированием столбцов.
По месяцам вроде правильно делает.
   LopesLeonid
 
9 - 18.06.20 - 08:47
не знаю на сколько это правильно
   LopesLeonid
 
10 - 18.06.20 - 09:00
вот даже функцию скину

Функция ПоказателиСуммированногоУчетаСотрудниковПоМесяцам(МассивСотрудников, Объект)
    
    Таб = Новый ТаблицаЗначений;
    Таб.Колонки.Добавить("НормаЧасов", Новый ОписаниеТипов("Число"));
    Таб.Колонки.Добавить("ОтработаноЧасов", Новый ОписаниеТипов("Число"));
    Таб.Колонки.Добавить("ОтработаноЧасовВПраздники", Новый ОписаниеТипов("Число"));
    Таб.Колонки.Добавить("Переработки", Новый ОписаниеТипов("Число"));
    Таб.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));
    
    ДатаНачало = НачалоМесяца(Объект.ПериодСуммированногоУчетаНачало);
    ДатаКонец = КонецМесяца(Объект.ПериодСуммированногоУчетаОкончание);
    Для ч = 0 По МассивСотрудников.Количество() - 1 Цикл
        датаОтчет = ДатаНачало;
        МассивСотрудников2 = Новый Массив;
        МассивСотрудников2.Добавить(МассивСотрудников[ч]);
        Пока КонецДня(датаОтчет) <= КонецДня(ДатаКонец) Цикл
            
            ТаблицаСотрудников = РасчетЗарплатыРасширенный.ПоказателиСуммированногоУчетаСотрудниковЗаПериод(
                МассивСотрудников2,
                НачалоМесяца(датаОтчет),
                КонецМесяца(датаОтчет));
                
            Для каждого СтрокаТЗ Из ТаблицаСотрудников Цикл 
                 ЗаполнитьЗначенияСвойств(Таб.Добавить(), СтрокаТЗ) 
            КонецЦикла;
                            
            датаОтчет = КонецМесяца(ДобавитьМесяц(датаОтчет, 1));
        КонецЦикла;
    КонецЦикла;
    Таб.Свернуть("Сотрудник","НормаЧасов, ОтработаноЧасов, ОтработаноЧасовВПраздники, Переработки");    
    ТаблицаСотрудников.Очистить();
    ТаблицаСотрудников = Таб.Скопировать();
    
    Возврат ТаблицаСотрудников;
    
КонецФункции
   LopesLeonid
 
11 - 18.06.20 - 09:11
ну что, народ, скажете?
работоспособно или нет?
   LopesLeonid
 
12 - 18.06.20 - 09:11
или может косячно работать
   LopesLeonid
 
13 - 10.07.20 - 08:43
Долгий способ, надо что то придумать другое)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.