Даже не знаю в какую ветку пистаь. Может программистам надо было...
Модуль расчета ЕСВБольничный, вернее его окончание:
Процедура ПровестиРасчет()////код процедуры//Если Перерасчет = 1Тогда
Результат = ЕдВзносБол;
ИначеЕсли (Константа.РасчетВзносовСПереходящихНачислений = Перечисление.ДаНет.Да) ИЛИ (ПустоеЗначение(Константа.РасчетВзносовСПереходящихНачислений)=1) Тогда
Результат = Окр(ЕдВзносБол, 2);
Иначе
Результат = Окр(ЕдВзносБол, 2) - УжеУдержано;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Ставим точку остановки на строке Если Перерасчет = 1 Тогда:
Все правильно. У вас Больничные переходящие. Т.е. учитываются суммы из прошлого месяца (больничный и ЕСВбольн). 25.95-21,23=4,72 (21,23 провелось в прошлом месяце).
Почти ветеран
Группа: Местный
Сообщений: 623
Из: Донецкая обл
Спасибо сказали: 171 раз
Рейтинг: 144.5
Я когдато тоже ломал себе голову, почему так, оказалось, что это запись ПЕРЕРАСЧЕТ, тоесть у вас в отладчике показывает общую сумму по 2 записям пересчитанной, ту что расчитывается в данный момент и той, которую пересчитывает.
Acid, вот именно что перерасчет. Он не должен ещё раз УжеУдержано отнимать (если верить коду).
Если Перерасчет = 1Тогда
Результат = ЕдВзносБол;
Иначе
igmig65, а какая переменная тогда в журнал расчетов попадает? Где это искать? Получается что он один раз отнимает УжеУдержано в глРассчитатьНалогПоШкале (как я понял) и где-то ещё?
Почти ветеран
Группа: Местный
Сообщений: 623
Из: Донецкая обл
Спасибо сказали: 171 раз
Рейтинг: 144.5
Нопример у вас в феврале есть запись ЕСВбольн с результатом 15.00 В марте у вас вводится запись ПЕРЕРАСЧЕТ ЕСВбольн с результатом 3.00 У вас в отладчике на строке:
Если Перерасчет = 1Тогда
Результат = ЕдВзносБол;
Иначе
Почти ветеран
Группа: Местный
Сообщений: 623
Из: Донецкая обл
Спасибо сказали: 171 раз
Рейтинг: 144.5
Я просто, немогу щас сказать точно как правильно, так как обновлял ЗиК ручками. Посмотрите как в 29 расчитывается запаись перерасчет для ЕСВ. Там почему то плюсуется сумма удержано. Мне кажется что все связано с правилами перерасчета ОсновныеНалоги и НДФЛ, только непойму почему в 29 ЕСВ перерасчет плюсует УжеУдержано, а ЕСВБольничные нет. Может это ошибка. Я просто у себя все натроил не так как в 29, у меня при вводе больничных за прошлый период прерасчет вводится только НДФЛ.
Так и не разобрался где второй раз вычитается УжеУдержано. Поставил следующий костыль, вроде пока работает: если запись перерасчет, то в глРассчитатьНалогПоШкале заношу нулевую БазаБолУжеУдержано.
Если Перерасчет=1Тогда
БазаБолУжеУдержано=0;
КонецЕсли;
ЕдВзносБол = глРассчитатьНалогПоШкале(ОблагаемоеБол,тбШкала,спЛьготы,,,БазаБолУжеУдержано,тбШкалаТек);
Сам когда то с этим разбирался, толком не понял правда, предположил что это платформа пересчитывает сама в случае если "перерасчет", а потом перешел на 8ку и появились другие проблемы))
Почти ветеран
Группа: Местный
Сообщений: 623
Из: Донецкая обл
Спасибо сказали: 171 раз
Рейтинг: 144.5
Это вроде заложено в правилах перерасчета. Вот как в 029: Правило перерасчета Основные налоги, при вводе почти всех начислений вводится записи перерасчеты по налогам.
Цитата
Так и не разобрался где второй раз вычитается УжеУдержано
Посмотрите в конец модуля расчета ЕСВ:
Если Перерасчет = 1ТогдаЕсли (Константа.РасчетВзносовСПереходящихНачислений = Перечисление.ДаНет.Да) ИЛИ (ПустоеЗначение(Константа.РасчетВзносовСПереходящихНачислений)=1) Тогда
Результат = ЕдВзнос + УжеУдержано;
Иначе
Результат = ЕдВзнос;
КонецЕсли;
а вот ЕСВбольн:
Если Перерасчет = 1Тогда
Результат = ЕдВзносБол;
Иначе
попробуйте исправить как для ЕСВ, тоесть:
Если Перерасчет = 1ТогдаЕсли (Константа.РасчетВзносовСПереходящихНачислений = Перечисление.ДаНет.Да) ИЛИ (ПустоеЗначение(Константа.РасчетВзносовСПереходящихНачислений)=1) Тогда
Результат = ЕдВзносБол + УжеУдержано;
Иначе
Результат = ЕдВзносБол;
КонецЕсли;
Вот здесь тогда вы вернете назад Ужеудержано
Причина редактирования: Не удаляю пост из-за информативности! А вообще http://pro1c.org.ua/index.php?showtopic=2284
Похоже на то. Непонятно только зачем такой бред было делать. Я думал правила перерасчета только записи вводят, что было бы логичнее, имхо. Запутанно у них получилось, а самое плохе, что, как я понял, отредактировать это дело нельзя :\
Почти ветеран
Группа: Местный
Сообщений: 623
Из: Донецкая обл
Спасибо сказали: 171 раз
Рейтинг: 144.5
Цитата
а самое плохе, что, как я понял, отредактировать это дело нельзя :\
почему нельзя, правила перерасчета настриваемые, только точно как что влияет не скажу, гдето находил описание настроек для правил перерасчета в нете, но где непомню. Там имеет значение не только расчеты влияющие на эти правила и расчеты на которые влияют(окна справа и слева), но и период ввода этих перерасчетов (переключатели внизу). Я напрмер когда обновлял ручками, просто забыл про эти правила, вот у меня теперь ЕСВ перерасчет за прошлый период невводится, а вводится только ЕСВбольн. Просто забыл галочки поставить в правилах, а получается он и ненужен, ведь в тек.месяце за прошлый ЕСВ уже недолжно быть, а в 029 вводится, только расчет зависит от константы еще.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!