![]() |
|
ЗУП 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
|
Спасибо большое за помощь, буду пробовать как вы сказали)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |