Расчет среднего для переходящего больничного Зарплата и кадры 7.7 Релиз 293

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

При расчете переходящего больничного (2009-2010) за 2010 год не выводятся данные при расчете среднего. Предлагаю обсудить решение проблемы для 293 релиза.

Вариант: внести изменения в глобальный модуль:

Глобальный модуль:
Функция глСуммаСреднегоЗаработкаБольничного2007


 Заменить условие (в типовой строка 4898)

Если (ВидСтроки = Перечисление.ВидСтрокиСреднегоЗаработка.Заработок) и (ПорядокРасчета = ПорядокРасчетаСреднего) Тогда
...



на условие

Если ((ВидСтроки = Перечисление.ВидСтрокиСреднегоЗаработка.Заработок) и (ПорядокРасчета = ПорядокРасчетаСреднего)) или ((ВидСтроки = Перечисление.ВидСтрокиСреднегоЗаработка.Заработок) и (ПорядокРасчетаСреднего = Перечисление.ПорядокРасчетаСреднегоДляБЛ.С2010года) и (ДатаГод(НачалоБолезни) = 2009)) Тогда 
...



Получается надо добавить еще одно сложное условие через ИЛИ    

У нас вроде сработало... Готов выслушать замечания и комментарии...

См. также

Комментарии
1. lefthander lefthander (lefthander) 01.03.10 17:19 Сейчас в теме
Да, такое исправление должно прокатить.
Именно в этом месте при расчете за 2010 год не выполнялось ни одно условие и расчет не проводился.
Сейчас нет времени, но позже обязательно проверю на том больничном, который не расчитывался
2. mastakw (mastakw) 169 01.03.10 23:17 Сейчас в теме
Действительно помогает, спасибо.
3. lesna (lesna) 01.03.10 23:37 Сейчас в теме
При перепроведениии этого же больничного, опять расчет не выходит :(
4. lesna (lesna) 02.03.10 00:09 Сейчас в теме
Мне помогло в строках 48237 и чуть ниже, изменения СуммаПособия = РазмерДневногоПособияБезГраницНоСПроцентом * ДнейОплаты; Вместо // СуммаПособия = РазмерДневногоПособия * ДнейОплаты;
Т.к. почему то в условии 48084 (ИначеЕсли ПрименитьОграничение = "ФСС" Тогда ) я сумму РазмерДневногоПособияБезГраницНоСПроцентом видела, а после
РазмерДневногоПособия=РазмерДневногоПособияБезГраницНоСПроце­нтом;
РазмерДневногоПособия = 0
Причем, сама понимаю, что по сути такое не возможно - но оно так есть..
5. Александр (alexsmir56) 69 02.03.10 17:35 Сейчас в теме
еще нашел на форуме (может кому пригодится):
глСобратьДанныеДляБЛ2010
в условии
//**********
ИначеЕсли ПрименитьОграничение = "ФСС" Тогда
Надо заменить
РазмерДневногоПособия=ДневноеОграничениеФСС;
На
РазмерДневногоПособия=Окр(ДневноеОграничениеФСС*Пр оцентОплаты/100,2);
//**********
Иначе там где нет ограничения, вы тоже попадете на процент.
Так как
ДневноеОграничениеСреднего = Окр(ПредельнаяВеличинаБазы/365,2);
А вы его сразу ограничиваете процентом оплаты, а если процентоплаты = 0? Что будет?
6. Оксана Михайлова (xenica.kmb) 33 03.03.10 13:07 Сейчас в теме
Если Вы введете документ-Исправление на этот Больничный, у Вас все исправится и так, без ковыряния кода)
7. 1С Доктор (OlegAl) 53 03.03.10 13:31 Сейчас в теме
(6) как вариант решения проблемы вполне вероятен, но как правило объяснить бухгалтеру по ЗП, а тем более попросить лишний документ ввести составляет немало усилий, а также нареканий на работу программы... Хотя от ошибок никто не застрахован!!!
8. Оксана Михайлова (xenica.kmb) 33 03.03.10 13:42 Сейчас в теме
(7) Вы разбаловали своего бухгалтера)))
Наверное, Вы штатный программист в этой фирме - это бы все объяснило)))
Документ-Исправление исправляет ситуацию, 100%, проверено. То, о чем Вы пишете - это ошибка конфигурации. И тут конечно есть, о чем ворчать)))
А если Вы-таки штатный программист - то конечно проще код поправить) Но тут уже я Вам не советчик.
9. 1С Доктор (OlegAl) 53 03.03.10 14:08 Сейчас в теме
(8) в точку... они у нас разбалованы, все для их плодотворной работы делаем, создаем, так сказать, благоприятные условия... действительно штатный программист :) Приходится исправлять неточности коллег... А кто виноват и что делать - наши любимые вопросы...
10. lefthander lefthander (lefthander) 09.03.10 17:14 Сейчас в теме
Итак! Свершилось, вышел 294 релиз, но переходной БЛ, и с продолжением не считается. После "танцев с бубном", получил вот такое исправление для чистого 294 резила и исправлениями от автора данной ветки

Функция глСобратьДанныеДляБЛ2010

было
СуммаСреднегоЗаработка2010 = Окр(глСуммаСреднегоЗаработкаБольничного2007(Объект,ДатаНачалаБолезни,ДокументОснование.ТипРасчетаБольничного,ТабличнаяЧасть, Перечисление.ПорядокРасчетаСреднегоДляБЛ.с2010года),2);

стало
Если (ДокументОснованиеПервичныйВыбран = 1) И (ДатаНачалаБолезни < ДатаПереходаНаСтраховыеВзносы) Тогда
СуммаСреднегоЗаработка2010 = 0;
Иначе
СуммаСреднегоЗаработка2010 = Окр(глСуммаСреднегоЗаработкаБольничного2007(Объект,ДатаНачалаБолезни,ДокументОснование.ТипРасчетаБольничного,ТабличнаяЧасть, Перечисление.ПорядокРасчетаСреднегоДляБЛ.с2010года),2);
КонецЕсли;

И дальше по текту в той же функции
Было
Если НачалоБолезниТекМесяца < ДатаПереходаНаСтраховыеВзносы Тогда
РазмерСреднегоЗаработка = РазмерСреднегоЗаработка2009;
РазмерПоловиныСреднегоЗаработка = РазмерПоловиныСреднегоЗаработка2009;
СуммаСреднегоЗаработка = СуммаСреднегоЗаработка2009;
Иначе
РазмерСреднегоЗаработка = РазмерСреднегоЗаработка2010;
РазмерПоловиныСреднегоЗаработка = РазмерПоловиныСреднегоЗаработка2010;
СуммаСреднегоЗаработка = СуммаСреднегоЗаработка2010;
КонецЕсли;

Стало
Если НачалоБолезниТекМесяца < ДатаПереходаНаСтраховыеВзносы Тогда
РазмерСреднегоЗаработка = РазмерСреднегоЗаработка2009;
РазмерПоловиныСреднегоЗаработка = РазмерПоловиныСреднегоЗаработка2009;
СуммаСреднегоЗаработка = СуммаСреднегоЗаработка2009;

ИначеЕсли (ДатаНачалаБолезни < ДатаПереходаНаСтраховыеВзносы) И (ДокументОснованиеПервичныйВыбран = 1) Тогда

РазмерСреднегоЗаработка = РазмерСреднегоЗаработка2009;
РазмерПоловиныСреднегоЗаработка = РазмерПоловиныСреднегоЗаработка2009;
СуммаСреднегоЗаработка = СуммаСреднегоЗаработка2009;

Иначе
РазмерСреднегоЗаработка = РазмерСреднегоЗаработка2010;
РазмерПоловиныСреднегоЗаработка = РазмерПоловиныСреднегоЗаработка2010;
СуммаСреднегоЗаработка = СуммаСреднегоЗаработка2010;
КонецЕсли;
*************************************
В печатной форме при заполнении данных для расчета среднего по правилам 2010 года - пока не заполняет... Это ищу, для расчета использует правила 2009 года.