gifts2017

ЗиК 309. Исправление дней за счет работодателя в переходящих больничных.

Опубликовал Сергей (Ulfhedhinn) в раздел Обработки - Обработка документов

07.04.2011 Внесена небольшая поправка, на случай "разорванных" дней за счет работодателя. Для тех кто уже обновился или запускал обработку, скачайте ее снова и перезапустите разок.

ЗиК 309. Для тех кто делал исправление количества дней за счет работодателя в переходящих больничных с 2010 на 2011, например как было описано тут:

http://infostart.ru/public/80704/

Фирма 1С в очередном обновлении наконец то разродилась, и предоставила нам возможность выбрать сколько дней за счет работодателя мы хотим оплатить для переходящих больничных с 2010 на 2011 год. Изначально в конфигурации такие больничные оплачивали ровно 3 дня. В 309 релизе в документ "Больничный лист" был добавлен новый реквизит, который для всех проведенных переходящих больничных в момент обновления заполняется цифрой 3.

Для тех кто в 305 релизе или позднее, правил конфигурации и оплачивал за счет работодателя 2 дня, а не 3 (например делал как описано тут http://infostart.ru/public/80704/), такое автозаполнение при обновлении будет не верным и повлияет на результаты отчета "Расходы предприятия за счет ФСС". Предлагаю слудующее решение.

1. До обновления на 309 релиз, внести небольшое изменение в md-шник на который потом будем обновляться. Вносим маленькое изменение в обработку "ОбновлениеИБ".

Строку 2758 меняем на:

// + Начало изменения.
//было:
// Док.ДнейОплатыРаботодателем = 3;
//стало:
КолвоДней = 0;
ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");
ЖР.ВыбратьЗаписиПоДокументу(Док.ТекущийДокумент()) ;
Пока
ЖР.ПолучитьЗапись() = 1 Цикл
    Если (
ЖР.ВидРасч = ВидРасчета.ОплатаБЛЗаСчетРаботодателяс2011) Тогда
        КолвоДней = КолвоДней + ЖР.ДатаОкончания - ЖР.ДатаНачала + 1;
        //Прервать;
    КонецЕсли;
КонецЦикла;

Если
КолвоДней = 0 Тогда
    Док.ДнейОплатыРаботодателем = 3;
Иначе
    Док.ДнейОплатыРаботодателем = КолвоДней;
КонецЕсли;
// - Конец изменения

 

2. Для тех кто уже обновился на 309 релиз. Создайте обработку в которой разместить следующий код:

ДатаНачалаРеформыСоцСтрахования = глДатаНачалаРеформыСоцСтрахования();
Док = СоздатьОбъект("Документ.БольничныйЛист");
Состояние("Обработка документов ""Больничный лист""...");
Док.ВыбратьДокументы();
Пока
Док.ПолучитьДокумент()=1 Цикл

    Если Док.ТипРасчетаБольничного <> Перечисление.ТипРасчетаБольничного.С2011года Тогда
        Продолжить;
    КонецЕсли;
    Если ПустоеЗначение(Док.Сотрудник)=1 Тогда
        Продолжить;
    КонецЕсли;
    Если Док.ТипБолезни <> Перечисление.ТипБолезни.ОбщееЗаболевание Тогда
        Продолжить;
    КонецЕсли;
    ДатаНачалаСобытия = глПолучитьДатуНачалаСобытияБЛ(Док.ТекущийДокумент( ));
    Если (ДатаНачалаСобытия < ДатаНачалаРеформыСоцСтрахования) и (Док.ДнейОплатыРаботодателем = 0) Тогда
        КолвоДней = 0;
        ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");
        ЖР.ВыбратьЗаписиПоДокументу(Док.ТекущийДокумент()) ;
        Пока ЖР.ПолучитьЗапись() = 1 Цикл
            Если (ЖР.ВидРасч = ВидРасчета.ОплатаБЛЗаСчетРаботодателяс2011) Тогда
                КолвоДней = КолвоДней + ЖР.ДатаОкончания - ЖР.ДатаНачала + 1;
       
        //Прервать;
            КонецЕсли;
        КонецЦикла;

        Если КолвоДней = 0 Тогда
            Док.ДнейОплатыРаботодателем = 3;
        Иначе
            Док.ДнейОплатыРаботодателем = КолвоДней;
        КонецЕсли;
    КонецЕсли;
    Попытка
        Док.Записать();
    Исключение
    КонецПопытки;

КонецЦикла;

Ну или скачайте у меня уже готовую Smile Если вы не понимаете о чем тут написано, значит Вам это не нужно, просто пройдите мимо Wink

Скачать файлы

Наименование Файл Версия Размер
IsprDneyRabFor309.ert 184
.ert 66,50Kb
05.06.13
184
.ert 66,50Kb Скачать

См. также

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

Комментарии

0. Сергей (Ulfhedhinn) 06.04.11 12:56
07.04.2011 Внесена небольшая поправка, на случай "разорванных" дней за счет работодателя. Для тех кто уже обновился или запускал обработку, скачайте ее снова и перезапустите разок.

ЗиК 309. Для тех кто делал исправление количества дней за счет работодателя в переходящих больничных с 2010 на 2011, например как было описано тут:

Перейти к публикации

1. Kapitan911 Юрий (Kapitan911) 06.04.11 12:56
Для тех кто пользовался: http://infostart.ru/public/79933/
Текст обработки автора заменить следующим:

Перем ЖрнЗарплата;

//*******************************************
Процедура Сформировать()

ДатаНач = глДатаНачалаРеформыСоцСтрахования();
ДатаКон = ЖрнЗарплата.КонецТекущегоПериода();
Состояние("Выборка документов ""Больничный лист""...");
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ДатаНач по ДатаКон;
|Объект = ЖурналРасчетов.Зарплата.Объект;
|Рез = ЖурналРасчетов.Зарплата.Результат;
|Док = ЖурналРасчетов.Зарплата.ТекущийДокумент;
|ВР = ЖурналРасчетов.Зарплата.ВидРасч;
|Функция СуммаВсего = Сумма(Рез);
|Условие (ВР.ВходитВГруппу(ГруппаРасчетов.БольничныеЛисты)=1);
|Группировка Док;
|"//}}ЗАПРОС
;


Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;

Состояние("Обработка документов ""Больничный лист""...");
Док = СоздатьОбъект("Документ.БольничныйЛист");
Пока Запрос.Группировка(1)=1 Цикл
ТекБЛ = Запрос.Док;
Док.НайтиДокумент(ТекБЛ);
Если ТекБЛ.Вид() = "БольничныйЛист" Тогда
Если Док.ТипБолезни <> Перечисление.ТипБолезни.ОбщееЗаболевание Тогда
Продолжить;
КонецЕсли;
Если Док.ТипРасчетаБольничного <> Перечисление.ТипРасчетаБольничного.С2011года Тогда
Док.ДнейОплатыРаботодателем = 2;
Попытка
Док.Записать();
Сообщить(глПредставлениеДокумента(Док)+" - установлено 2 дня оплаты за счет работодателя");
Исключение
Сообщить(глПредставлениеДокумента(Док)+" - НЕ установлено 2 дня оплаты за счет работодателя","!!");
КонецПопытки;
КонецЕсли;
КонецЕсли;
КонецЦикла;

КонецПроцедуры

ЖрнЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата");
2. Franchiser (Franchiser) 06.04.11 12:58
Не очень понял код.
Если такая ситуация : в ЖР 2 записи 1 день за счет работодателя попал на 30.11.2010 и 1 день на 01.12.2010 года при этом обе записи относятся к одному документу, получится что в документе будет стоять 1 день за счет работодателя? ЧТо будет если БЛ исправляли тоже непонятно. Сторно записи в обработке не анализируются.
3. Victor Nespyatin (victuan) 06.04.11 20:48
0-Ulfhedhinn >
Если (ЖР.ВидРасч = ВидРасчета.ОплатаБЛЗаСчетРаботодателяс2011) Тогда
КолвоДней = ЖР.ДатаОкончания - ЖР.ДатаНачала;
Прервать
КонецЕсли;

А разве нужно не так?
Если (ЖР.ВидРасч = ВидРасчета.ОплатаБЛЗаСчетРаботодателяс2011) Тогда
КолвоДней = КолвоДней + ЖР.ДатаОкончания - ЖР.ДатаНачала + 1; //с учетом переходящих в другой месяц
//Прервать
КонецЕсли;


А строку
ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");
нужно поставить перед циклом:
Пока Док.ПолучитьДокумент()=1 Цикл
4. Светлана (s-v-k) 07.04.11 12:15
Если КолвоДней = 0 Тогда
Док.ДнейОплатыРаботодателем = 3;
Иначе
Док.ДнейОплатыРаботодателем = КолвоДней;
КонецЕсли;


Складывается впечатление, что 3 дня запишется даже в те больничные, которые являются продолжениями, а это уже в корне неверно..
5. Franchiser (Franchiser) 07.04.11 16:36
я воообще не стал заморачиваться, перебрал в том же коде что есть в обновление все бл, если у бл в реквизите ДнейОплатыРаботодателем стоит "3" меняем на "2".
6. Franchiser (Franchiser) 07.04.11 16:38
я воообще не стал заморачиваться, перебрал тем же кодом что есть в обновление все бл, если у бл в реквизите ДнейОплатыРаботодателем стоит "3" меняем на "2". Я понимаю что автор хотел универсальности, но эта обработка нужна только тем у кого 2 дня.
7. Сергей (Ulfhedhinn) 08.04.11 02:40
Мне обработка по большому счету вообще не нужна. У меня все в md-шнике в обработке "ОбновлениеИБ", универсальность для разных клиентов, кому-то по просьбам переделывал на 2 дня, кому то оставлял по типовому 3. Теперь при обновлении на 309 лишний раз не приходиться заморачиваться.
8. Светлана Иванова (Cvetic) 13.04.11 16:40
Если (ДатаНачалаСобытия < ДатаНачалаРеформыСоцСтрахования) и (Док.ДнейОплатыРаботодателем = 0) Тогда
Для тех кто уже обновился на 309 Док.ДнейОплатыРаботодателем = 3.
9. Вика Козлова (natarezn) 06.10.16 17:43
как раз не могу понять ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");
ЖР.ВыбратьЗаписиПоДокументу(Док.ТекущийДокумент()) ;
Пока ЖР.ПолучитьЗапись() = 1 Цикл

сейчас попробую !
10. Вика Козлова (natarezn) 06.10.16 17:49
Заработало !!!!!!!!!! я Вас обожаю
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа