Исправление расчета пособия Больничный лист по уходу за больным ребенком в ЗУП 3.1.14.208-237

0. 333 15.10.20 06:00 Сейчас в теме
В документе Больничный лист с кодом "(09, 12, 13, 14, 15) Уход за больным ребенком" после расчета на вкладке "Начислено(подробно)" в колонке "В том числе за счет федерального бюджета" появляется сумма. Суммы в колонке быть не должно.

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. user750336 15.10.20 13:45 Сейчас в теме
Автор, а у вас прямо на всех больничных по уходу за ребенком возникает сумма за счет ФБ? Ввела у себя в базе несколько примеров, и ни в одном не получилось добиться того, чтобы эта сумма заполнилась, если не устанавливать использование льгот (для чернобыльцев и т.д.). Релиз 3.1.14.237. Может быть, всё-таки исходные данные заданы некорректно (стажи или льготы)? Да и способ исправления ошибки, честно говоря, вызывает сомнение, особенно в варианте с расширением. Просто для всех строк начислений во всех больничных (со льготами и без) убирать суммы за счет ФБ - странное решение, на мой взгляд.
2. milov.aleksey 333 15.10.20 14:07 Сейчас в теме
(1) Алина, добрый день. Да, во всех больничных с кодом 09 с 18 сентября, после установки релиза 3.1.14.208. Исходное решение в модуле исходной процедуры(текстовый файл), куда добавили последний кусок кода без основной проверки используем ли мы вообще финансирование за счет бюджета.
 Процедура РассчитатьПособиеПоНетрудоспособности(СтрокиРасчета, ДополнительныеПараметры, ПрименяетсяСторнирование = Истина) Экспорт
	
	ПараметрыОплаты = ДополнительныеПараметрыРасчетаПособияПоНетрудоспособности();
	ЗаполнитьЗначенияСвойств(ПараметрыОплаты, ДополнительныеПараметры.ПараметрыРасчетаПособияПоНетрудоспособности);
	
	Если Не ЗначениеЗаполнено(ПараметрыОплаты.РайонныйКоэффициентРФНаНачалоСобытия)
		Или ПараметрыОплаты.РайонныйКоэффициентРФНаНачалоСобытия < 1 Тогда
		ПараметрыОплаты.РайонныйКоэффициентРФНаНачалоСобытия = 1;
	КонецЕсли;
	
	Если ТипЗнч(ПараметрыОплаты.РасчетПоПравилам2010Года) <> Тип("Булево") Тогда
		ПараметрыОплаты.РасчетПоПравилам2010Года = Ложь;
	КонецЕсли;
		
	НазначитьПособие = ПараметрыОплаты.НазначитьПособие;
	Если НазначитьПособие = Истина Тогда
		ПрименятьОграничениеДляПособийПоНС_ПЗ = (ПараметрыОплаты.ПричинаНетрудоспособности = Перечисления.ПричиныНетрудоспособности.ТравмаНаПроизводстве
											Или ПараметрыОплаты.ПричинаНетрудоспособности = Перечисления.ПричиныНетрудоспособности.Профзаболевание)
											И ПараметрыОплаты.ОграничениеПособия = Перечисления.ВидыОграниченияПособия.МаксимальныйРазмерЕжемесячнойСтраховойВыплаты;
											
		ОграниченияДляПособийПоНС_ПЗ = Новый Соответствие;
		Если ПрименятьОграничениеДляПособийПоНС_ПЗ Тогда
			
			ИзмеренияДаты = Новый ТаблицаЗначений;
			ИзмеренияДаты.Колонки.Добавить("Период", Новый ОписаниеТипов("Дата"));
			Для Каждого СтрокаТаблицы Из СтрокиРасчета Цикл
				ИзмеренияДаты.Добавить().Период = СтрокаТаблицы.ДатаНачала;
				ОграниченияДляПособийПоНС_ПЗ.Вставить(СтрокаТаблицы.ДатаНачала,0);
			КонецЦикла;
			
			Запрос = Новый Запрос;
			Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
			
			ПараметрыПостроения = ЗарплатаКадрыОбщиеНаборыДанных.ПараметрыПостроенияДляСоздатьВТИмяРегистраСрез();
			ПараметрыПостроения.ВсеЗаписи = Истина;
			
			ЗарплатаКадрыОбщиеНаборыДанных.СоздатьВТИмяРегистраСрезПоследних(
				"МаксимальныйРазмерЕжемесячнойСтраховойВыплаты",
				Запрос.МенеджерВременныхТаблиц,
				Ложь,
				ЗарплатаКадрыОбщиеНаборыДанных.ОписаниеФильтраДляСоздатьВТИмяРегистра(ИзмеренияДаты),
				ПараметрыПостроения);
			
			Запрос.Текст =
			"ВЫБРАТЬ
			|	МаксимальныйРазмер.Период КАК Период,
			|	МаксимальныйРазмер.Размер КАК Размер
			|ИЗ
			|	ВТМаксимальныйРазмерЕжемесячнойСтраховойВыплатыСрезПоследних­ КАК МаксимальныйРазмер";
			Выборка = Запрос.Выполнить().Выбрать();
			
			Пока Выборка.Следующий() Цикл
				ОграниченияДляПособийПоНС_ПЗ.Вставить(Выборка.Период, Выборка.Размер * 4);
			КонецЦикла;
		Иначе
			Для Каждого СтрокаТаблицы Из СтрокиРасчета Цикл
				ОграниченияДляПособийПоНС_ПЗ.Вставить(СтрокаТаблицы.ДатаНачала, 0);
			КонецЦикла;
		КонецЕсли;
		
	КонецЕсли;
	
	ПрименятьОграничениеПособияСнизуМРОТПоМесяцам = (
		ПараметрыОплаты.ПричинаНетрудоспособности = Перечисления.ПричиныНетрудоспособности.ПоУходуЗаРебенком);
	Если ПрименятьОграничениеПособияСнизуМРОТПоМесяцам Тогда
		КэшРасчетаПоМесяцам = Новый ТаблицаЗначений;
		КэшРасчетаПоМесяцам.Колонки.Добавить("СтрокаТаблицыРасчета");
		КэшРасчетаПоМесяцам.Колонки.Добавить("НачалоМесяца");
		КэшРасчетаПоМесяцам.Колонки.Добавить("Результат");
		КэшРасчетаПоМесяцам.Колонки.Добавить("РезультатБезЛьгот");
		КэшРасчетаПоМесяцам.Колонки.Добавить("ОграничениеПособияСнизу");
		Месяцы = Новый Массив;
	КонецЕсли;
	
	ДатаОтменыРасчета2010Года = УчетПособийСоциальногоСтрахованияКлиентСервер.ДатаНачалаРеформыСоцСтрахования();
	Для Каждого СтрокаТаблицы Из СтрокиРасчета Цикл
		
		Сторно = Ложь;
		Если ПрименяетсяСторнирование Тогда
			Сторно = СтрокаТаблицы.Сторно;
		КонецЕсли;
		
		СтрокаТаблицы.Результат = 0;
		СтрокаТаблицы.Дополнительно.Вставить("РезультатВТомЧислеЗаСчетФБ", 0);
		
		Если НазначитьПособие <> Истина Тогда
			// Нет данных для расчета.
			Продолжить;
		КонецЕсли;
		
		ОплачиваемоеВремя = РасчетЗарплаты.ЗначениеПоказателяПоИдентификатору(СтрокаТаблицы.Показатели, "КалендарныеДни");
		Если ОплачиваемоеВремя = Неопределено Тогда
			ОплачиваемоеВремя = 0;
		КонецЕсли;
		Если ПараметрыОплаты.ПричинаНетрудоспособности = Перечисления.ПричиныНетрудоспособности.ПоУходуЗаРебенком
			И ЗначениеЗаполнено(ПараметрыОплаты.ДатаНачалаПоловиннойОплаты)
			И СтрокаТаблицы.ДатаНачала >= ПараметрыОплаты.ДатаНачалаПоловиннойОплаты Тогда
			ПроцентОплаты = 50;
		Иначе
			ПроцентОплаты = ПараметрыОплаты.ПроцентОплаты;
		КонецЕсли;
		
		ПрименятьОграничениеМРОТом = ПараметрыОплаты.ОграничениеПособия = Перечисления.ВидыОграниченияПособия.ОграничениеВРазмереММОТ
			Или (СтрокаТаблицы.ДатаНачала >= ПараметрыОплаты.ДатаНарушенияРежима И ЗначениеЗаполнено(ПараметрыОплаты.ДатаНарушенияРежима));
		ПрименятьОграничениеМРОТомБезЛьгот = ПараметрыОплаты.ОграничениеПособияБезЛьгот = Перечисления.ВидыОграниченияПособия.ОграничениеВРазмереММОТ
			Или (СтрокаТаблицы.ДатаНачала >= ПараметрыОплаты.ДатаНарушенияРежима И ЗначениеЗаполнено(ПараметрыОплаты.ДатаНарушенияРежима));
		
		РасчетПоПравилам2010Года = ПараметрыОплаты.РасчетПоПравилам2010Года
			Или ПараметрыОплаты.ПериодРегистрации < ДатаОтменыРасчета2010Года
			Или ПараметрыОплаты.ДатаНачалаСобытия < ДатаОтменыРасчета2010Года;
		
		ТекущийРайонныйКоэффициент = 1;
		РайонныйКоэффициентРФ = РасчетЗарплаты.ЗначениеПоказателяПоИдентификатору(СтрокаТаблицы.Показатели, "РайонныйКоэффициентРФ");
		Если РайонныйКоэффициентРФ <> Неопределено Тогда
			ТекущийРайонныйКоэффициент = Макс(РайонныйКоэффициентРФ, 1);
		КонецЕсли;
		
		МРОТ = РасчетЗарплаты.ЗначениеПоказателяПоИдентификатору(СтрокаТаблицы.Показатели, "МРОТ");
		ТекущийМРОТ = МРОТ * ТекущийРайонныйКоэффициент;
		
		НормированноеОграничениеДляПособийПоНС_ПЗ = ОграниченияДляПособийПоНС_ПЗ[СтрокаТаблицы.ДатаНачала];
		
		НормаВремени = День(КонецМесяца(СтрокаТаблицы.ДатаНачала));
		Если ОплачиваемоеВремя < НормаВремени Тогда
			ОграничениеПособияМРОТом = Окр(Окр(ТекущийМРОТ / НормаВремени, 2) * ОплачиваемоеВремя, 2);
			НормированноеОграничениеДляПособийПоНС_ПЗ = Окр(Окр(НормированноеОграничениеДляПособийПоНС_ПЗ / НормаВремени, 2) * ОплачиваемоеВремя, 2);
		Иначе
			ОграничениеПособияМРОТом = Окр(ТекущийМРОТ,2);
		КонецЕсли;
		
		Если РасчетПоПравилам2010Года Тогда
			РазмерОграниченияДля2010года = Окр(РазмерОграниченияДля2010года() / 365, 2);
			Если ПараметрыОплаты.ОграничениеПособия = Перечисления.ВидыОграниченияПособия.БезОграничений Тогда
				Результат = ОплачиваемоеВремя * Окр(ПараметрыОплаты.СреднийДневнойЗаработок * ПроцентОплаты / 100, 2);
			Иначе
				Результат = ОплачиваемоеВремя * Окр(Мин(ПараметрыОплаты.СреднийДневнойЗаработок, РазмерОграниченияДля2010года) * ПроцентОплаты / 100, 2);
			КонецЕсли;
			
			// Ограничение пособия сверху
			Если ПрименятьОграничениеМРОТом Тогда
				Результат = Мин(Результат, ОграничениеПособияМРОТом);
			КонецЕсли;
			
			СтрокаТаблицы.Результат = Результат * ?(Сторно, -1, 1);
			
			Если ЗначениеЗаполнено(ПараметрыОплаты.ПроцентОплатыБезЛьгот) И ЗначениеЗаполнено(ПараметрыОплаты.ФинансированиеФедеральнымБюджетом) Тогда
				Если ПараметрыОплаты.ПричинаНетрудоспособности = Перечисления.ПричиныНетрудоспособности.ПоУходуЗаРебенком
						И ЗначениеЗаполнено(ПараметрыОплаты.ДатаНачалаПоловиннойОплаты)
						И СтрокаТаблицы.ДатаНачала >= ПараметрыОплаты.ДатаНачалаПоловиннойОплаты Тогда
					ПроцентОплаты = 50;
				Иначе
					ПроцентОплаты = ПараметрыОплаты.ПроцентОплатыБезЛьгот;
				КонецЕсли;

				Если ПараметрыОплаты.ОграничениеПособияБезЛьгот = Перечисления.ВидыОграниченияПособия.БезОграничений Тогда
					РезультатБезЛьгот = ОплачиваемоеВремя * Окр(ПараметрыОплаты.СреднийДневнойЗаработок * ПроцентОплаты / 100, 2);
				Иначе
					РезультатБезЛьгот = ОплачиваемоеВремя * Окр(Мин(ПараметрыОплаты.СреднийДневнойЗаработок, РазмерОграниченияДля2010года) * ПроцентОплаты / 100, 2);
				КонецЕсли;
				
				// Ограничение пособия сверху
				Если ПрименятьОграничениеМРОТомБезЛьгот Тогда
					РезультатБезЛьгот = Мин(РезультатБезЛьгот, ОграничениеПособияМРОТом);
				КонецЕсли;
				
				Если РезультатБезЛьгот < Результат Тогда
					СтрокаТаблицы.Дополнительно.РезультатВТомЧислеЗаСчетФБ = (Результат - РезультатБезЛьгот) * ?(Сторно, -1, 1);
					СтрокаТаблицы.ЗаписьРасчета.РезультатВТомЧислеЗаСчетФБ = СтрокаТаблицы.Дополнительно.РезультатВТомЧислеЗаСчетФБ;
				КонецЕсли;
			КонецЕсли;
		Иначе
			МинимальныйСреднедневнойЗаработок = МинимальныйСреднедневнойЗаработокДляСравненияСМРОТ(
				ПараметрыОплаты.МинимальныйСреднедневнойЗаработок, 
				ПараметрыОплаты.РайонныйКоэффициентРФНаНачалоСобытия,
				ПараметрыОплаты.ДатаНачалаСобытия);
			Если ПараметрыОплаты.СреднийДневнойЗаработок >= МинимальныйСреднедневнойЗаработок Тогда
				ДневноеПособие = Окр(ПараметрыОплаты.СреднийДневнойЗаработок * ПроцентОплаты / 100, 2);
				Результат = Окр(ОплачиваемоеВремя * ДневноеПособие, 2);
			Иначе
				ДневноеПособие = Окр(ПараметрыОплаты.МинимальныйСреднедневнойЗаработок * ПроцентОплаты / 100, 2);
				Результат = Окр(ОплачиваемоеВремя * ДневноеПособие * ПараметрыОплаты.РайонныйКоэффициентРФНаНачалоСобытия, 2);
			КонецЕсли;
			
			// Ограничение пособия сверху
			Если ПрименятьОграничениеМРОТом Тогда
				Результат = Мин(Результат, ОграничениеПособияМРОТом);
			ИначеЕсли ПрименятьОграничениеДляПособийПоНС_ПЗ Тогда
				Результат = Мин(Результат, НормированноеОграничениеДляПособийПоНС_ПЗ);
			КонецЕсли;
			
			// Ограничение пособия снизу
			ОграничениеПособияСнизу = ОграничениеПособияСнизуМРОТ(
				ПараметрыОплаты.ПричинаНетрудоспособности,
				СтрокаТаблицы.ДатаНачала,
				ОплачиваемоеВремя,
				РайонныйКоэффициентРФ,
				ПараметрыОплаты.ДоляНеполногоВремени,
				МРОТ);
			Если ОграничениеПособияСнизу > 0 Тогда
				Если ПрименятьОграничениеПособияСнизуМРОТПоМесяцам Тогда
					НачалоМесяца = НачалоМесяца(СтрокаТаблицы.ДатаНачала);
					Если Месяцы.Найти(НачалоМесяца) = Неопределено Тогда
						Месяцы.Добавить(НачалоМесяца);
					КонецЕсли;
					СтрокаТаблицыПоМесяцам = КэшРасчетаПоМесяцам.Добавить();
					СтрокаТаблицыПоМесяцам.СтрокаТаблицыРасчета = СтрокаТаблицы;
					СтрокаТаблицыПоМесяцам.НачалоМесяца = НачалоМесяца;
					СтрокаТаблицыПоМесяцам.Результат = Результат;
					СтрокаТаблицыПоМесяцам.РезультатБезЛьгот = 0;
					СтрокаТаблицыПоМесяцам.ОграничениеПособияСнизу = ОграничениеПособияСнизу;
				Иначе
					Результат = Макс(Результат, ОграничениеПособияСнизу);
				КонецЕсли;
			КонецЕсли;
			
			СтрокаТаблицы.Результат = Результат * ?(Сторно, -1, 1);
			
			// Часть пособия, финансируемая федеральным бюджетом.
			Если ЗначениеЗаполнено(ПараметрыОплаты.ПроцентОплатыБезЛьгот) И ЗначениеЗаполнено(ПараметрыОплаты.ФинансированиеФедеральнымБюджетом) Тогда
				Если ПараметрыОплаты.ПричинаНетрудоспособности = Перечисления.ПричиныНетрудоспособности.ПоУходуЗаРебенком
						И ЗначениеЗаполнено(ПараметрыОплаты.ДатаНачалаПоловиннойОплаты)
						И СтрокаТаблицы.ДатаНачала >= ПараметрыОплаты.ДатаНачалаПоловиннойОплаты Тогда
					ПроцентОплаты = 50;
				Иначе
					ПроцентОплаты = ПараметрыОплаты.ПроцентОплатыБезЛьгот;
				КонецЕсли;
				
				Если ПараметрыОплаты.СреднийДневнойЗаработок >= МинимальныйСреднедневнойЗаработок Тогда
					ДневноеПособие = Окр(ПараметрыОплаты.СреднийДневнойЗаработок * ПроцентОплаты / 100, 2);
					РезультатБезЛьгот = Окр(ОплачиваемоеВремя * ДневноеПособие, 2);
				Иначе
					ДневноеПособие = Окр(ПараметрыОплаты.МинимальныйСреднедневнойЗаработок * ПроцентОплаты / 100, 2);
					РезультатБезЛьгот = Окр(ОплачиваемоеВремя * ДневноеПособие * ПараметрыОплаты.РайонныйКоэффициентРФНаНачалоСобытия, 2);
				КонецЕсли;
				
				Если ПрименятьОграничениеМРОТомБезЛьгот Тогда
					РезультатБезЛьгот = Мин(РезультатБезЛьгот, ОграничениеПособияМРОТом);
				КонецЕсли;
				
				// Ограничение пособия снизу в размере МРОТ,
				// применяемое с 01.04.2020 в связи с эпидемией коронавируса,
				// не зависит от процентов стажа.
				Если ОграничениеПособияСнизу > 0 Тогда
					Если ПрименятьОграничениеПособияСнизуМРОТПоМесяцам Тогда
						СтрокаТаблицыПоМесяцам.РезультатБезЛьгот = РезультатБезЛьгот;
					Иначе
						РезультатБезЛьгот = Макс(РезультатБезЛьгот, ОграничениеПособияСнизу);
					КонецЕсли;
				КонецЕсли;
				
				Если РезультатБезЛьгот < Результат Тогда
					СтрокаТаблицы.Дополнительно.РезультатВТомЧислеЗаСчетФБ = (Результат - РезультатБезЛьгот) * ?(Сторно, -1, 1);
					СтрокаТаблицы.ЗаписьРасчета.РезультатВТомЧислеЗаСчетФБ = СтрокаТаблицы.Дополнительно.РезультатВТомЧислеЗаСчетФБ;
				КонецЕсли;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	//-=Н=- по заявке № 816268, Необходимо найти причину, исправить и чтоб в дальнейшем при расчете Больничного колонка "В том числе за счет фед.бюджета" не заполнялась.
	//Причина в том, что софинансирование с Фед.бюджетом вообще не используется.  
	//Милов А.В., 14 октября 2020 г. 14:06:22
	//Цель:	Исправление ошибки
	//---------------
	//-=Новый код=-
	//---------------
	ЕСЛИ Не (ЗначениеЗаполнено(ПараметрыОплаты.ПроцентОплатыБезЛьгот) И ЗначениеЗаполнено(ПараметрыОплаты.ФинансированиеФедеральнымБюджетом)) Тогда
		Возврат;
	КОНЕЦЕСЛИ;
	//-=К=-
	
	Если ПрименятьОграничениеПособияСнизуМРОТПоМесяцам И КэшРасчетаПоМесяцам.Количество() > 0 Тогда
		Для Каждого НачалоМесяца Из Месяцы Цикл
			
			Копия = КэшРасчетаПоМесяцам.Скопировать(Новый Структура("НачалоМесяца", НачалоМесяца));
			
			ИтогРезультат               = Копия.Итог("Результат");
			ИтогРезультатБезЛьгот       = Копия.Итог("РезультатБезЛьгот");
			ИтогОграничениеПособияСнизу = Копия.Итог("ОграничениеПособияСнизу");
			
			ЗаменитьРезультатНаМРОТ         = (ИтогОграничениеПособияСнизу > ИтогРезультат);
			ЗаменитьРезультатБезЛьготНаМРОТ = (ИтогОграничениеПособияСнизу > ИтогРезультатБезЛьгот);
			
			Если ЗаменитьРезультатНаМРОТ Или ЗаменитьРезультатБезЛьготНаМРОТ Тогда
				
				Для Каждого КэшСтроки Из Копия Цикл
					СтрокаТаблицы = КэшСтроки.СтрокаТаблицыРасчета;
					
					Сторно = ПрименяетсяСторнирование И СтрокаТаблицы.Сторно;
					
					Если ЗаменитьРезультатНаМРОТ Тогда
						КэшСтроки.Результат     = КэшСтроки.ОграничениеПособияСнизу;
						СтрокаТаблицы.Результат = КэшСтроки.ОграничениеПособияСнизу * ?(Сторно, -1, 1);
					КонецЕсли;
					
					Если ЗаменитьРезультатБезЛьготНаМРОТ Тогда
						КэшСтроки.РезультатБезЛьгот = КэшСтроки.ОграничениеПособияСнизу;
					КонецЕсли;
					
					Если КэшСтроки.РезультатБезЛьгот < КэшСтроки.Результат Тогда
						СтрокаТаблицы.Дополнительно.РезультатВТомЧислеЗаСчетФБ = (КэшСтроки.Результат - КэшСтроки.РезультатБезЛьгот) * ?(Сторно, -1, 1);
						СтрокаТаблицы.ЗаписьРасчета.РезультатВТомЧислеЗаСчетФБ = СтрокаТаблицы.Дополнительно.РезультатВТомЧислеЗаСчетФБ;
					КонецЕсли;
					
				КонецЦикла;
				
			КонецЕсли;
			
		КонецЦикла;
	КонецЕсли;
	
КонецПроцедуры
Показать
user750336; +1 Ответить
3. milov.aleksey 333 15.10.20 14:43 Сейчас в теме
(1) регистрация ошибки в техподе 1С https://bugboard.v8.1c.ru/error/000099430.
Описание стажа сотрудника, ребенка и больничного в ворд-файле.
По поводу расширения. Сделал самое очевидное, простое и модное: обнулить!
Аннотация &После, можно взять всю типовую процедуру с поправкой и заменить с помощью аннотации &Вместо
Прикрепленные файлы:
Описание ошибки 10226359.docx
user750336; +1 Ответить
4. user750336 15.10.20 16:28 Сейчас в теме
(3) Алексей, спасибо за подробный ответ с примером! Действительно, появляются эти суммы за счет ФБ, хотя и не во всех случаях. Но я бы всё-таки предложила немного по-другому эту ошибку исправить в последнем условии процедуры расчета пособия. Всё-таки, если весь новый алгоритм оборачивать в условие применения льгот, то ограничение МРОТом снизу совсем не будет применяться (то, что дорабатывали в расчете с 01.04.2020):
Если ПрименятьОграничениеПособияСнизуМРОТПоМесяцам И КэшРасчетаПоМесяцам.Количество() > 0 Тогда
		Для Каждого НачалоМесяца Из Месяцы Цикл
			
			Копия = КэшРасчетаПоМесяцам.Скопировать(Новый Структура("НачалоМесяца", НачалоМесяца));
			
			ИтогРезультат               = Копия.Итог("Результат");
			ИтогРезультатБезЛьгот       = Копия.Итог("РезультатБезЛьгот");
			ИтогОграничениеПособияСнизу = Копия.Итог("ОграничениеПособияСнизу");
			
			ЗаменитьРезультатНаМРОТ         = (ИтогОграничениеПособияСнизу > ИтогРезультат);
			ЗаменитьРезультатБезЛьготНаМРОТ = (ИтогОграничениеПособияСнизу > ИтогРезультатБезЛьгот);
			
			Если ЗаменитьРезультатНаМРОТ Или ЗаменитьРезультатБезЛьготНаМРОТ Тогда
				
				Для Каждого КэшСтроки Из Копия Цикл
					СтрокаТаблицы = КэшСтроки.СтрокаТаблицыРасчета;
					
					Сторно = ПрименяетсяСторнирование И СтрокаТаблицы.Сторно;
					
					Если ЗаменитьРезультатНаМРОТ Тогда
						КэшСтроки.Результат     = КэшСтроки.ОграничениеПособияСнизу;
						СтрокаТаблицы.Результат = КэшСтроки.ОграничениеПособияСнизу * ?(Сторно, -1, 1);
					КонецЕсли;
					
					//++ Исправление 15.10.2020
					Если ЗначениеЗаполнено(ПараметрыОплаты.ФинансированиеФедеральнымБюджетом) Тогда
					//-- Исправление 15.10.2020
					
					Если ЗаменитьРезультатБезЛьготНаМРОТ Тогда
						КэшСтроки.РезультатБезЛьгот = КэшСтроки.ОграничениеПособияСнизу;
					КонецЕсли;
					
					Если КэшСтроки.РезультатБезЛьгот < КэшСтроки.Результат Тогда
						СтрокаТаблицы.Дополнительно.РезультатВТомЧислеЗаСчетФБ = (КэшСтроки.Результат - КэшСтроки.РезультатБезЛьгот) * ?(Сторно, -1, 1);
						СтрокаТаблицы.ЗаписьРасчета.РезультатВТомЧислеЗаСчетФБ = СтрокаТаблицы.Дополнительно.РезультатВТомЧислеЗаСчетФБ;
					КонецЕсли;
					
					//++ Исправление 15.10.2020
					КонецЕсли;
					//-- Исправление 15.10.2020
					
				КонецЦикла;
				
			КонецЕсли;
			
		КонецЦикла;
	КонецЕсли;

Показать
5. milov.aleksey 333 15.10.20 16:43 Сейчас в теме
(4)Да, так лучше. Спасибо! Но вот &Вместо не сработало. У нас используется Профиль безопасности, а с ними "не дружат" расширения.
Оставьте свое сообщение
Вопросы с вознаграждением