Имя: Пароль:
1C
 
ЗУП 2.0. Начисление по б/л. Требование непрерывности записей
0 KatyaStrofa
 
02.02.24
16:19
При проведении документа "Начисление по больничному листу" выводит сообщение  "В строке номер "2" табл. части "Начисления": нарушено требование непрерывности записей начислений!" хотя я посмотрела предыдущие проводились так же спокойно(
1 PR
 
02.02.24
16:22
2 Гена
 
02.02.24
16:53
Зуп 2.0 это ж древность какая... для 8.0
Ей же лет 20 )
По памяти программа не может записать вторую строчку в табличной части второй вкладки из-за перекрывания интервалов дат для "за счёт работодателя" и "за счёт ФСС".
Например, если БЛ начат с одной даты, а оплату включили чуть позже: со второго или третьего дня.
3 Волшебник
 
02.02.24
21:13
Катя, Вы где?
4 KatyaStrofa
 
03.02.24
08:55
Извините, мучилась с этой проблемой, посмотрела с датами все в порядке, после обновления эта проблема началась, заметила что если например в одном начислении есть оплата больничного и второй строкой доплата больничного то он ругается на вторую именно из-за дат  если и там и там идет дата начала и дата окончания одинаковые.
Выходит ошибка " нарушено требование непрерывности записей начислений!"



Процедура ПроверитьНепрерывностьЗаписейНачислений(Отказ, Заголовок)
    
    Если Начисления.Количество() = 0  Тогда
        Возврат;
    КонецЕсли;    
        
    ТНачислений = Начисления.Выгрузить();
    ТНачислений.Сортировать("ДатаНачала");
    
    ПредыдущаяДатаОкончания = Дата('00010101');
    СтрокаНеПервая = Ложь;
    Для Каждого Строка ИЗ ТНачислений Цикл
        
        // Пропустим сторно записи
        Если Строка.Сторно Тогда
            Продолжить;
        КонецЕсли;
        

        // если встретили не первую строку начислений
        Если СтрокаНеПервая Тогда
            // строка не первая
            Если Строка.ДатаНачала <> ПредыдущаяДатаОкончания + мДлинаСуток Тогда
                СтрокаНачалаСообщенияОбОшибке = "В строке номер """+ СокрЛП(Строка.НомерСтроки) +
                """ табл. части ""Начисления"": ";
                ОбщегоНазначения.ОшибкаПриПроведении(СтрокаНачалаСообщенияОбОшибке + "нарушено требование непрерывности записей начислений!", Отказ, Заголовок);
            КонецЕсли;
        Иначе     
            СтрокаНеПервая = Истина;
        КонецЕсли;
        ПредыдущаяДатаОкончания = Строка.ДатаОкончания;
        
    КонецЦикла;
    
КонецПроцедуры // ПроверитьНепрерывностьЗаписейНачислений()
5 Гена
 
03.02.24
10:27
(4) Понятно. Гляньте в доке больничного точное имя флажка доплаты по БЛ и добавьте его вместе с "И Не" в условие
Если СтрокаНеПервая Тогда

Например, будет выглядеть так:
Если СтрокаНеПервая И Не ДоплачиватьДоПолногоСреднегоЗаработка Тогда
6 Гена
 
03.02.24
10:42
Хотя, плоховато. Так при флажке вообще проверки не будет.

Лучше сначала перед ПЕРВЫМ циклом задать проверяемый массив видов расчета БЕЗ доплаты.
А затем второй такой же цикл по условию истины флажка только для вида расчета доплаты.

Если туманно написал, то оставьте костыль из (5) Для аккуратных пользователей будет нормально )
7 KatyaStrofa
 
03.02.24
10:52
Сделала в тестовой базе, одна ошибка исчезла но другая появилась.
Сделала так

Если Не Строка.ВидРасчета.УчетОтработанногоВремени Тогда
            Продолжить;
            КонецЕсли;

Ошибка:

обнаружено повторное начисление за период (09 мая 23 г. - 13 мая 23 г.)

В  документе две строки  оплата больничного с 09.05-13.05 и доплата по больничному 09.05-13.05
8 Гена
 
03.02.24
10:55
(7) Проверьте (5)
9 KatyaStrofa
 
04.02.24
12:57
Спасибо большое за помощь, буду пробовать как вы сказали)
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.