Имя: Пароль:
1C
 
ЗУП 3.1.23.165 график работы на 2023 год заполняется без учета переноса выходных
0 evorle145
 
24.11.22
10:47
На 1 и 8 января должны быть выходные, а он ставит 8 часов.

https://ibb.co/8dctCgQ

по производственному календарю:
есть перенос: с воскресенья 1 января на пятницу 24 февраля, с воскресенья 8 января на понедельник 8 мая
но в настройках на скриншоте видно, что в графике 8 часовой рабочей день должен стоять с понедельника по пятницу, а он ставит на 1 и 8 января, хотя это вс...
В чем может быть  дело?
1 vicof
 
24.11.22
11:00
А галку "при заполнении учитывать праздничные дни" ставить не надо, да?
2 evorle145
 
24.11.22
11:30
(1) нет, в данном случае требуется строго пн-пт независимо от праздников. (суммированный учет раб времени по сути). И мы так и указали в настройках - пн-пт но при этом какого то фига зуп поставил на 1 января вс, но при этом убрал с пятницы 24 февраля.
3 evorle145
 
24.11.22
14:10
фигня короче, Проявляется только в графиках, где режим заполнения с пн по пт без учета праздничных дней.
Алгоритм считает что нужно на 1 января ставить то число часов, которое положено на 24 ферваля, а это пт ,  значит 8 часов.

Вообщем, просто расширение патч сделаю ( там одну строчку кода добавить) и забуду про эту проблему))
4 Капитан Джек Воробей
 
29.12.22
13:12
(3) Таже проблема, я добавил проверку на "при заполнении учитывать праздничные дни", а как ты подошел к решению вопроса?
5 evorle145
 
29.12.22
14:06
(4) в коде нашел место где это заполняется, и доработал.. потом меня попросили вернуть как было, и сказали, что лучше они руками этот график поправят.
6 Капитан Джек Воробей
 
29.12.22
14:12
(5) Да я тоже его нашел просто там есть нюанс, если не трудно можно кусочек кода посмотреть?
7 VladZ
 
29.12.22
14:18
(0) Уже вышел 3.1.23.458.
8 evorle145
 
29.12.22
14:24
(6) Справочник ГрафикиРаботыСотрудников, в модуле объекта процедура "ЗаполнитьДанныеГрафика" вот в этом месте определяется сколько часов в день:
Если СпособЗаполнения = Перечисления.СпособыЗаполненияГрафиковРаботыСотрудников.ПоНеделям Тогда
            Если ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Суббота Тогда
                ЧасовЗаДень = ЧасыПоДнямЦикла[6];
            ИначеЕсли ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Воскресенье Тогда
                ЧасовЗаДень = ЧасыПоДнямЦикла[7];
            ИначеЕсли ДатаПереноса <> '00010101' Тогда
                ЧасовЗаДень = ЧасыПоДнямЦикла[ДеньНедели(ДатаПереноса)];    
            Иначе
                ЧасовЗаДень = ЧасыПоДнямЦикла[НомерДняЦикла];
            КонецЕсли;
        Иначе
            ЧасовЗаДень = ЧасыПоДнямЦикла[НомерДняЦикла];    
        КонецЕсли;


Вот тут ставил свое условие.
9 Капитан Джек Воробей
 
29.12.22
14:32
(7) А разве это решило проблему?
10 Капитан Джек Воробей
 
29.12.22
14:39
(8) Да я его нашел, мне больше было интересно само условие у меня так вышло:
Если СпособЗаполнения = Перечисления.СпособыЗаполненияГрафиковРаботыСотрудников.ПоНеделям Тогда
            Если ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Суббота Тогда
                ЧасовЗаДень = ЧасыПоДнямЦикла[6];
            ИначеЕсли ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Воскресенье Тогда
                ЧасовЗаДень = ЧасыПоДнямЦикла[7];
            ИначеЕсли ДатаПереноса <> '00010101' Тогда
                ЧасовЗаДень = ЧасыПоДнямЦикла[ДеньНедели(ДатаПереноса)];    
            Иначе
                ЧасовЗаДень = ЧасыПоДнямЦикла[НомерДняЦикла];
            КонецЕсли;
        Иначе
            ЧасовЗаДень = ЧасыПоДнямЦикла[НомерДняЦикла];    
        КонецЕсли;      
        
        Если НЕ УчитыватьПраздники Тогда
             ЧасовЗаДень = ЧасыПоДнямЦикла[НомерДняЦикла];
        КонецЕсли;
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший