gifts2017

Проблема с продолжением больничного листа в ЗУП

Опубликовал Пимшин 1 (Pim) в раздел Программирование - Практика программирования

При заполнении табличной части Средний заработок продолжения БЛ в ЗУП возникла проблема задвоения строк Основного заработка и премии. Соответственно не правльно печатается расчёт.

Суть проблемы.

 

Перчиный БЛ  от 29.01.2010 за период с 30.12.2010 по 25.01.2010. Расчитан нормально. Печатается хорошо.

 

Продолжение от 11.02.2010 за период с 26.01.2010 по 08.02.2010.

 

При заполнении дублируюся строки основного заработка и премии, соответственно распечатка оборотка "кривая".

 

Может, конечно, эта проблема могла быть решена по-другому, но я нашёл следующее решение.

 

В модуле объекта документа Начисление по больничному листу добавить выделенные строки (№ строки первого фрагмента 611):

Если ПериодРегистрации >= ДатаЗакона213ФЗ И ДатаНачалаСобытия < ДатаЗакона213ФЗ Тогда // переходный период 2010 года
ВременнаяСтруктура = ПроцедурыПерсонифицированногоУчета.СкопироватьСтруктуруДанных(РассчитываемыеТаблицы);
ВременнаяСтруктура.Начисления = Ложь;
ПроведениеРасчетовПереопределяемый.РассчитатьДокументСреднегоЗаработка(ЭтотОбъект, ВременнаяСтруктура, ВыборкаПоШапкеДокумента, РежимПерерасчета);
ВременнаяТаблица = РасчетСреднего.Выгрузить();
РасчетСреднего.Загрузить(ПервичныйБольничныйЛист.РасчетСреднего.Выгрузить());
Строки213ФЗ = ВременнаяТаблица.НайтиСтроки(Новый Структура("ВидРасчета",ПланыВидовРасчета.СреднийЗаработок.ПоЗаработкуПособийС2010));
Для каждого СтрокаРасчета Из Строки213ФЗ Цикл
struct = new Структура("ВидРасчета, БазовыйПериодНачало, БазовыйПериодКонец, Сотрудник, Результат", СтрокаРасчета.ВидРасчета, СтрокаРасчета.БазовыйПериодНачало, СтрокаРасчета.БазовыйПериодКонец, СтрокаРасчета.Сотрудник, СтрокаРасчета.Результат);
if РасчетСреднего.НайтиСтроки(struct).Количество() > 0 then
continue;
endIf;
ЗаполнитьЗначенияСвойств(РасчетСреднего.Добавить(),СтрокаРасчета);
КонецЦикла;
Строки213ФЗ = ВременнаяТаблица.НайтиСтроки(Новый Структура("ВидРасчета",ПланыВидовРасчета.СреднийЗаработок.ПоПремиямПособийС2010));
Для каждого СтрокаРасчета Из Строки213ФЗ Цикл
struct = new Структура("ВидРасчета, БазовыйПериодНачало, БазовыйПериодКонец, Сотрудник, Результат", СтрокаРасчета.ВидРасчета, СтрокаРасчета.БазовыйПериодНачало, СтрокаРасчета.БазовыйПериодКонец, СтрокаРасчета.Сотрудник, СтрокаРасчета.Результат);
if РасчетСреднего.НайтиСтроки(struct).Количество() > 0 then
continue;
endIf;
ЗаполнитьЗначенияСвойств(РасчетСреднего.Добавить(),СтрокаРасчета);
КонецЦикла;
Иначе

 

Возможно, кто-то ещё встречался с такой проблемой. Самое странное что в других продолжениях проблемы нет. :-(

Кстати, не подскажите как "подсветить" синтаксис в публикации?

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Татьяна Шавлак (Stety) 01.01.70 03:00
У меня таких случаев попалось всего два - чем они от остальных продолжений - понять не могу. Один - третий по счету в цепочке, где первичный до 2010 начался. Второй - второй по счету за первичным, начавшимся в 2010. Не уникальные случаи - были другие продолжения с разными переходами и без переходов, но не капризничают. Маловато у меня информации для анализа, видимо.
2. Пимшин 1 (Pim) 17.03.10 21:56
Самое интересное, что эта заплатка исправляет только одну печатную форму. Вторую (оборот БЛ) сейчас "ковыряю" :-(.
3. Алексей Милов (milov.aleksey) 18.03.10 14:57
У меня в ЗУП 2.5.22.3 такой случай: есть 4 больничных по одному сотруднику:
1) 13.12.2009 - 31.12.2009 первичный больничный (расчитан и оборот листка нетрудоспособности печатается нормально),
2) 01.01.2010 - 31.01.2010 продолжение(расчитан верно, печатает оборот листка с задвоенными месяцами),
3) 30.01.2010 - 01.03.2010 продолжение(расчитан верно, печатает оборот листка с задвоенными месяцами),
4) 02.03.2010 - 12.03.2010 продолжение(расчитан верно, печатает оборот листка с задвоенными месяцами).
Перезаполнил и перепровёл табели как рекомендуют для версии 22.3. Внёс дополнение листинга, указанное выше - не помогло. Отвязал 2-й больничный от первичного(за 2009 год) и задвоения ушли! :!: 3-й и 4-й больничные сделал продолжением 2-го(в текущем 2010году). Пришлось только скорректировать проводку 2-го по счету и первого в текущем году больничного (убрал 2 дня за счет работодателя, вся сумма за счет ФСС). :)
4. Дмитрий Шалай (Anarchist) 19.03.10 21:39
у меня печаталось с ТРЕМЯ повторениями :o ...
поступили очень просто удалили эти строки и всё...
с поддержки зуп не снимали пока
5. Manchester (Manchester) 21.03.10 14:24
Аналогичная проблемма - дублируются строки. Решил так:
Модуль НачислениеПоБольничномуЛистуПереопределяемый
Функция ПечатьОборотаБольничного
в строке:
ИначеЕсли ДатаНачалаОплаты < мДатаЗакона213ФЗ Тогда // переходный период 2009-2010 годов
заменил на:
ИначеЕсли ДатаНачалаСобытия < мДатаЗакона213ФЗ Тогда // переходный период 2009-2010 годов

задвоения пропали, теперь формирует два раздельных расчета среднего для сравнения
6. Пимшин 1 (Pim) 21.03.10 19:25
(4) да, оборот в первом варианте печатался с утроенными строками :-(. Жаль мои расчётчики не поймут удаления лишних строк...

(5) Спасибо, помогло.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа