gifts2017

ЗиК 305 ЗиК 306 Больничный лист.

Опубликовал Светлана Иванова (Cvetic) в раздел Программирование - Практика программирования

Для переходящих больничных листов за счет работодателя оплачивается 2 дня, а не 3.
Первоисточник: http://forums.kuban.ru/forum/viewtopi...669&page=2

1. Глобалльный модуль ЗиК 305 строка 51086;  ЗиК 306 строка 51164

//Если (ДатаНачалаБолезни+2) >= НачалоБолезниТекМесяца Тогда
Если (ДатаНачалаБолезни+2-1) >= НачалоБолезниТекМесяца Тогда

ЗиК 305  строка 51090;  ЗиК 306 строка  51168

//ОкончаниеДнейРаботодателя = Мин(НачалоБолезниТекМесяца+2-(НачалоБолезниТекМесяца-ДатаНачалаБолезни),ОкончаниеБолезниТекМесяца);
ОкончаниеДнейРаботодателя = Мин(НачалоБолезниТекМесяца+2-1-(НачалоБолезниТекМесяца-ДатаНачалаБолезни),ОкончаниеБолезниТекМесяца);





2. БольничныйЛист модуль документа строка 345

ИначеЕсли ТипБольничного=Тогда  //Заболевание работника, бытовая травма

     Если НачалоБолезни < '01.01.2011' Тогда
         Дней = 2;
     Иначе
         Дней = 3;
     КонецЕсли;

     ЕстьДниЗаСчетРаботодателя = 0;
     //Если  (Начало < НачалоБолезни + 3) Тогда
     Если  (Начало < НачалоБолезни + Дней) Тогда
         ЕстьДниЗаСчетРаботодателя = 1;
     КонецЕсли;

     Если ЕстьДниЗаСчетРаботодателя = 1 Тогда
         //НачалоЗаСчетФСС = Макс(Начало,НачалоБолезни + 3)
         НачалоЗаСчетФСС = Макс(Начало,НачалоБолезни + Дней)
     Иначе
         НачалоЗаСчетФСС = Начало;
     КонецЕсли;
     //ОкончаниеДнейРаботодателя = Мин(НачалоБолезни + 2,Окончание);
     ОкончаниеДнейРаботодателя = Мин(НачалоБолезни + Дней - 1,Окончание);

     ВвестиРасчет(ЖрнЗарплата,ЭлСотрудника,ВидРасчета.ОплатаБЛЗаСчетРаботодателяс2011, Начало, Мин(ОкончаниеДнейРаботодателя,ОкончаниеПериодаОплаты), ДатаНарушенияРежима);
     Если (Окончание > НачалоБолезни + 1) Тогда
      ВвестиРасчет(ЖрнЗарплата,ЭлСотрудника,ВидРасчета.ОплатаБЛс2011, НачалоЗаСчетФСС, ОкончаниеПериодаОплаты, ДатаНарушенияРежима);
     КонецЕсли;


КонецЕсли;

 

 

 

3. Отчет.РасходыПредприятияЗаСчетФСС  в процедуре Сформировать2011()  меняем строку

//ДниРаботодателя = ?(ДнейОплатыПервичныйБЛ > 3, 0, 3 - ДнейОплатыПервичныйБЛ);
на

Если ДокументЗаписи.Начало < '01.01.11' тогда
     ДниРаботодателя = ?(ДнейОплатыПервичныйБЛ > 2, 0, 2 - ДнейОплатыПервичныйБЛ);
Иначе
     ДниРаботодателя = ?(ДнейОплатыПервичныйБЛ > 3, 0, 3 - ДнейОплатыПервичныйБЛ);
КонецЕсли;

строку

//ДниРаботодателя = Мин(3,ДнейОплаты);
на

Если ДокументЗаписи.Начало < '01.01.11' тогда
     ДниРаботодателя = Мин(2,ДнейОплаты);
Иначе
     ДниРаботодателя = Мин(3,ДнейОплаты);
КонецЕсли;

См. также

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

Комментарии

1. Алексей Коробов (WiseSnake) 25.01.11 21:17
А в глобальном модуле условие НачалоБолезни < '01.01.2011' не надо использовать?
2. Светлана Иванова (Cvetic) 26.01.11 09:53
3. Денис Кожевников (kdv) 26.01.11 09:53
Почему это в разделе исправление ошибок 1С?
По закону правильно именно 3 дня, по крайней мере дополнительных комментариев на этот счет не было.

Не советую вносить такие изменения без консультации с местным ФСС :)
4. Светлана Иванова (Cvetic) 26.01.11 09:55
(3) исправления внесла после семинара в ФСС :)
5. isadora (isadora) 26.01.11 12:29
Поскольку страховой случай наступил в 2010 году,то и оплачивать следует за счет работодателя по правилам 2010 года,то есть 2 дня.
6. Владимир Толмачев (vat-74) 27.01.11 07:18
(5) В таком случае достаточно поправить только БЛ, в том месте где вычисляется по какому правилу будет считаться. т.е. вместо стр 18 ставим
	Если ДатаНачалаСобытия <= ДатаНачалаРеформыСоцСтрахования Тогда 
		ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2010года;
	ИначеЕсли ЖрнЗарплата.НачалоТекущегоПериода() >= ДатаНачалаРеформыСоцСтрахования Тогда
7. Валентина Алексеева (valexeeva) 27.01.11 11:17
Вчера клиенты (Министерство) консультировались в ФСС (Москва,ЦО). Там подтвердили,что оплачиваться за счет работодателя должны 3 дня для ВСЕХ больничных, сданных в организацию в январе.
В скором времени будет официальное разъяснение.
8. Александр Градский (Cobranet123) 27.01.11 12:06
А я так понял, например если переходящий больничный с 2010 на 2011 год формируется в декабре 2010, то он по старым расчетам, а если больничный формируется в январе 2011, то уже расчет должен быть по новым правилам расчета.
9. Светлана Иванова (Cvetic) 27.01.11 14:04
(7) Странно нам на семинаре в ФСС (Ульяновск) объясняли, что переходящие б/л 2 дня. Не может быть в каждом регионе своего учета. Быстрее бы разъяснения вышли, чтобы потом пересчетов не делать.
10. Serg76 (serg76) 27.01.11 15:11
Вот ссылка на статейку от 1С где они объясняют почему сделали по всем б/л 3 дня за счет работодателя. Так что это не ошибка 1Сников - так было задумано
http://www.buh.ru/newsDescr-7079
11. Владимир (1Cworking) 28.01.11 14:41
Еще вариант:
Поскольку страховой случай наступил в 2010 году, то оплачивать следует по правилам 2010: за счет работодателя 2 дня и расчет БЛ по правилам 2010 (ВР-..с2010, а не с2011).
Кому подходит этот вариант, надо сделать следующие изменения:

Документ.БольничныйЛист, модуль формы
============================================================­=
Функция ПередЗаписью()
Если ПустоеЗначение(ТипРасчетаБольничного) = 1 Тогда
Если ЖрнЗарплата.НачалоТекущегоПериода() >= ДатаНачалаРеформыСоцСтрахования Тогда
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2011года;
ИначеЕсли ЖрнЗарплата.НачалоТекущегоПериода() >= ДатаПереходаНаСтраховыеВзносы Тогда
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2010года;
ИначеЕсли ДатаНачалаСобытия <'01.01.2004' Тогда
ТипРасчетаБольничного = ?(ФТипРасчетаБольничного1 = 1,Перечисление.ТипРасчетаБольничного.ПоТекущемуМесяцу,Перечисление.ТипРасчетаБольничного.ПоДвумМесяцам);
ИначеЕсли ДатаНачалаСобытия <'01.01.2005' Тогда
ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.С2004года;
ИначеЕсли ДатаНачалаСобытия <'01.01.2007' Тогда
ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.С2005года;
Иначе
ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.С2007года;
КонецЕсли;
КонецЕсли;
//вставить (это если сменили дату начала бл с 2011 на 2010)
Если ЖрнЗарплата.НачалоТекущегоПериода() >= ДатаНачалаРеформыСоцСтрахования Тогда
Если ДатаНачалаСобытия < ДатаНачалаРеформыСоцСтрахования Тогда
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2010года;
КонецЕсли;
КонецЕсли;
//до

------------------------------------------------------------------
Процедура ПриОткрытии()
....
Если ДатаНачалаСобытия >='01.01.2004' Тогда
Если (ДатаПервойЗаписи < '01.01.2005') И (ТипРасчетаБольничного <> Перечисление.ТипРасчетаБольничного.С2004года) Тогда
ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.С2004года;
ИначеЕсли (ДатаПервойЗаписи < '01.01.2007') Тогда
Если (ПроведенВПрошлом = 0) и (ТипРасчетаБольничного <> Перечисление.ТипРасчетаБольничного.С2005года) Тогда
ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.С2005года;
КонецЕсли;
ИначеЕсли (ПроведенВПрошлом = 0) Тогда
Если ЖрнЗарплата.НачалоТекущегоПериода() >= ДатаНачалаРеформыСоцСтрахования Тогда
//было
Если (ТипРасчетаБольничного <> Перечисление.ТипРасчетаБольничного.С2011года) Тогда
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2011года;
КонецЕсли;
//заменить на
Если ДатаПервойЗаписи < ДатаНачалаРеформыСоцСтрахования Тогда
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2010года;
Иначе
Если (ТипРасчетаБольничного <> Перечисление.ТипРасчетаБольничного.С2011года) Тогда
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2011года;
КонецЕсли;
КонецЕсли;
//до

------------------------------------------------------------------
Процедура УстановитьТипРасчетаБЛ()
Если ЖрнЗарплата.НачалоТекущегоПериода() >= ДатаНачалаРеформыСоцСтрахования Тогда
//было
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2011года;
//заменить на
Если Начало >= ДатаПереходаНаСтраховыеВзносы Тогда
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2010года;
Иначе
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2011года;
КонецЕсли;
//до

------------------------------------------------------------------

Документ.БольничныйЛист, модуль документа
============================================================­=
Процедура ОбработкаПроведения(ОбработчикСообщений)
.......
Пока СпрСотрудники.ПолучитьЭлемент() = 1 Цикл
ЭлСотрудника = СпрСотрудники.ТекущийЭлемент();
Если СпрСотрудники.ОсновнойЭлемент = ЭлСотрудника Тогда // по основному месту работы введем оплату больничного
//было
Если ПериодРегистрации >= глДатаНачалаРеформыСоцСтрахования() Тогда
//заменить на
Если НачалоБолезни >= глДатаНачалаРеформыСоцСтрахования() Тогда
//до
12. Владимир (1Cworking) 31.01.11 09:06
(11) при смене даты начала периода бл с 2010 на 2011 и обратно не меняется форма
здесь представлен код с учетом этих изменений:

Документ.БольничныйЛист, модуль формы
============================================================­=
Функция ПередЗаписью()
Если ПустоеЗначение(ТипРасчетаБольничного) = 1 Тогда
Если ЖрнЗарплата.НачалоТекущегоПериода() >= ДатаНачалаРеформыСоцСтрахования Тогда
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2011года;
ИначеЕсли ЖрнЗарплата.НачалоТекущегоПериода() >= ДатаПереходаНаСтраховыеВзносы Тогда
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2010года;
ИначеЕсли ДатаНачалаСобытия <'01.01.2004' Тогда
ТипРасчетаБольничного = ?(ФТипРасчетаБольничного1 = 1,Перечисление.ТипРасчетаБольничного.ПоТекущемуМесяцу,Перечисление.ТипРасчетаБольничного.ПоДвумМесяцам);
ИначеЕсли ДатаНачалаСобытия <'01.01.2005' Тогда
ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.С2004года;
ИначеЕсли ДатаНачалаСобытия <'01.01.2007' Тогда
ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.С2005года;
Иначе
ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.С2007года;
КонецЕсли;
КонецЕсли;
//вставить (это если сменили дату начала бл с 2011 на 2010)
Если ЖрнЗарплата.НачалоТекущегоПериода() >= ДатаНачалаРеформыСоцСтрахования Тогда
Если ДатаНачалаСобытия < ДатаНачалаРеформыСоцСтрахования Тогда
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2010года;
КонецЕсли;
КонецЕсли;
//до

------------------------------------------------------------------
Процедура ПриОткрытии()
....
// сформируем заголовок в зависимости от наличия первичного БЛ
СформироватьЗаголовокДокумента();

// установим закладки и заголовок
Форма.ИспользоватьЗакладки(1);
//было
СформироватьСлои();
//закомментировать
//СформироватьСлои();
//до
.............
Если ДатаНачалаСобытия >='01.01.2004' Тогда
Если (ДатаПервойЗаписи < '01.01.2005') И (ТипРасчетаБольничного <> Перечисление.ТипРасчетаБольничного.С2004года) Тогда
ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.С2004года;
ИначеЕсли (ДатаПервойЗаписи < '01.01.2007') Тогда
Если (ПроведенВПрошлом = 0) и (ТипРасчетаБольничного <> Перечисление.ТипРасчетаБольничного.С2005года) Тогда
ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.С2005года;
КонецЕсли;
ИначеЕсли (ПроведенВПрошлом = 0) Тогда
Если ЖрнЗарплата.НачалоТекущегоПериода() >= ДатаНачалаРеформыСоцСтрахования Тогда
//было
Если (ТипРасчетаБольничного <> Перечисление.ТипРасчетаБольничного.С2011года) Тогда
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2011года;
КонецЕсли;
//заменить на
Если ДатаПервойЗаписи < ДатаНачалаРеформыСоцСтрахования Тогда
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2010года;
Иначе
Если (ТипРасчетаБольничного <> Перечисление.ТипРасчетаБольничного.С2011года) Тогда
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2011года;
КонецЕсли;
КонецЕсли;
//до
ИначеЕсли ЖрнЗарплата.НачалоТекущегоПериода() >= ДатаПереходаНаСтраховыеВзносы Тогда
Если (ТипРасчетаБольничного <> Перечисление.ТипРасчетаБольничного.С2010года) Тогда
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2010года;
КонецЕсли;
ИначеЕсли (ТипРасчетаБольничного <> Перечисление.ТипРасчетаБольничного.С2007года) Тогда
ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.С2007года;
КонецЕсли;
КонецЕсли;
ИначеЕсли ДатаНачалаСобытия < '01.01.2004' Тогда
Если (ПервичныйБольничный.Выбран() = 1) и (ТипРасчетаБольничного <> ПервичныйБольничный.ТипРасчетаБольничного) Тогда
ТипРасчетаБольничного = ПервичныйБольничный.ТипРасчетаБольничного;
ИначеЕсли (ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.С2004года) или (ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.С2005года) Тогда
ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.ПоДвумМесяцам;
КонецЕсли;
КонецЕсли;
//добавить
СформироватьСлои();
//до

------------------------------------------------------------------
Процедура УстановитьТипРасчетаБЛ()
Если ЖрнЗарплата.НачалоТекущегоПериода() >= ДатаНачалаРеформыСоцСтрахования Тогда
//было
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2011года;
//заменить на
Если Начало >= ДатаНачалаРеформыСоцСтрахования Тогда
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2011года;
Иначе
ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2010года;
КонецЕсли;
//до

------------------------------------------------------------------

Документ.БольничныйЛист, модуль документа
============================================================­=
Процедура ОбработкаПроведения(ОбработчикСообщений)
.......
Пока СпрСотрудники.ПолучитьЭлемент() = 1 Цикл
ЭлСотрудника = СпрСотрудники.ТекущийЭлемент();
Если СпрСотрудники.ОсновнойЭлемент = ЭлСотрудника Тогда // по основному месту работы введем оплату больничного
//было
Если ПериодРегистрации >= глДатаНачалаРеформыСоцСтрахования() Тогда
//заменить на
Если НачалоБолезни >= глДатаНачалаРеформыСоцСтрахования() Тогда
//до
13. rdv (rdv) 02.02.11 08:00
Кто перешел на 306 релиз, как оно там то ?
14. Светлана Иванова (Cvetic) 02.02.11 11:44
15. Козлов Олег (*Zed*) 03.02.11 11:35
Наш ФСС (Псков) сказали что надо оплачивать 2 дня для таких больничных
16. нат гал (Варя_Варя) 04.02.11 11:56
наш ФСС (Рязань) тоже сказали, что надо оплачивать 2 дня за счет средств работодателя для переходящих больничных, объяснив это тем, что страховой случай наступил до вступления в силу нового закона, поэтому расчет по старому.
17. Сергей Сергей (B00RblY) 08.02.11 11:50
В общем, как я понял, сейчас ничего не менять в модуле, а ждать где-нибудь весной выхода нового релиза. К тому времени, думаю, уж определяться наши власти сколько брать с работодателя 2 или 3 дня. В худшем случае делать перерасчет.
18. hasp_x 10.02.11 13:25
можно на панель документа больничный лист вывести реквизит "Тип расчета больничного", тогда в модуле и править ничего не надо будет
19. I love pivo (I love pivo) 14.02.11 20:45
вообще то у приличных людей принято давать ссылку на первоисточник:
http://forums.kuban.ru/forum/viewtopic_new.php?t=3612669&page=2

вот это "+2-1" - это коронный стиль Гены.

поэтому - за плагиат - жирный минус.
20. Светлана Иванова (Cvetic) 22.02.11 15:26
(19) Правда, списала у Гены. Но он не разместил на этом сайте, а людям очень нужно. Поэтому решилась на плагиат :oops: Надеюсь, что Гена не обидется.
21. Доржи Цыденов (support) 02.03.11 15:02
(20) Пожалуйста, укажите в тексте публикации первоисточник и авторство.
22. Геннадий Малиновский (Гена) 02.03.11 15:31
(21) не надо грязи... автор уникально и независимо решила давать 2 дня по всем случаям, начавшимся до 01.01.2011

у меня другое мнение... я выделяю 30-е и 31 декабря... поэтому Cvetic имеет право на (с) данной публикации полностью и неоспоримо... плюсуйте смело... у меня почему-то нет такого права...
23. Светлана Иванова (Cvetic) 03.03.11 08:29
Хорошо, укажу первоисточник.
24. Светлана Иванова (Cvetic) 03.03.11 08:30
(22) Гена, спасибо что не сердитесь.
25. Ершова Ольга (lushka) 10.03.11 08:51
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа