Кто может помочь со строками в таблице ? В ТабНДФЛ есть старые строки у сотрудников которых их нужно (либо удалить и добавить новую , либо помнять Результат, но тогда нужно будет добавить недостоющие)
Функция РасчетНДФЛ()
Ставка = РегистрыСведений.СтавкиНДФЛ.Выбрать(Дата(01,01,0001),КонецГода(Дата));
ТабНДФЛ = НДФЛПроводки.Выгрузить();
ТабНач = НачисленияПроводки.Выгрузить();
ТабВзнос = ВзносыПроводки.Выгрузить();
ТабОтрВБУ = ОтражениеВРеглУчете.Выгрузить();
Для Каждого Строчка из ТабНач Цикл
Работник = Строчка.Сотрудник;
Если Строчка.СчетКт.Ссылка = ПланыСчетов.Хозрасчетный.РасчетыПоДругимВыплатам.Ссылка Тогда
Для каждого Строка из ТабНДФЛ Цикл
СумБоль = 0;
СумНДФЛ = 0;
СумВС = 0;
СуммВзн661 = 0;
СуммВзн663 = 0;
СуммНач = 0;
Если Строка.Сотрудник = Работник Тогда
Для Каждого Стр Из ТабВзнос цикл
Если Стр.Сотрудник = Работник И НЕ Стр.Результат = 0 и
//Стр.СчетДТ.Ссылка = ПланыСчетов.Хозрасчетный.РасчетыПоДругимВыплатам.Ссылка Тогда
Стр.СтатьяНалоговойДекларации.Ссылка = Справочники.СтатьиНалоговыхДеклараций.ЕСВ_Больничные.Ссылка Тогда
СумВзн663 = Стр.Результат;
СуммВзн663 = СуммВзн663 + СумВзн663;
СуммаВзн663 = СуммВзн663
ИначеЕсли Стр.Сотрудник = Работник И НЕ Стр.Результат = 0 и
//Стр.СчетДТ.Ссылка = ПланыСчетов.Хозрасчетный.РасчетыПоЗаработнойПлате.Ссылка Тогда
Стр.СтатьяНалоговойДекларации.Ссылка = Справочники.СтатьиНалоговыхДеклараций.ЕСВ_Работники.Ссылка Тогда
СумВзн661 = Стр.Результат;
СуммВзн661 = СуммВзн661 + СумВзн661;
СуммаВзн661 = СуммВзн661;
КонецЕсли;
КонецЦикла;
Для Каждого Строк из ТабОтрВБУ Цикл
Если Строк.СубконтоКт1 = Работник Тогда
СумНач = Строк.Сумма;
СуммНач = СуммНач + СумНач;
СуммаНач = СуммНач
КонецЕсли;
КонецЦикла;
Для каждого Ст из ТабНач Цикл
Если Строчка.СчетКт.Ссылка = ПланыСчетов.Хозрасчетный.РасчетыПоДругимВыплатам.Ссылка и Ст.Сотрудник = Работник Тогда
СуммБоль = ст.Результат;
СумБоль = СумБоль + СуммБоль;
СуммаБоль = СумБоль;
КонецЕсли;
Если Ст.Сотрудник = Работник Тогда
Если НЕ Строка.ДоходНДФЛ.Ссылка = Справочники.ВидыДоходовНДФЛ.ВоенныйСбор.Ссылка Тогда
СуммНДФЛ = Строка.Результат;
СумНДФЛ = СумНДФЛ + СуммНДФЛ;
СуммаНДФЛ = СумНДФЛ;
КонецЕсли;
Если Строка.ДоходНДФЛ.Ссылка = Справочники.ВидыДоходовНДФЛ.ВоенныйСбор.Ссылка Тогда
СуммВС = Строка.Результат;
СумВС = СумВС + СуммВС;
СуммаВС = СумВС;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если НЕ СуммаБоль = 0 И НЕ СуммаНДФЛ = 0 И НЕ СуммаВС = 0 И
НЕ СуммаБоль = Неопределено и НЕ СуммаНДФЛ = Неопределено И НЕ СуммаВС = Неопределено Тогда
СуммаНач661 = СуммаНач - СуммаБоль;
СуммаНач663 = СуммаБоль;
СуммаНачБезВзн663 = СуммаНач663-СуммаВзн663;
СуммаНачБезВзн661 = СуммаНач661-СуммаВзн661;
ПроцентБольничных = (СуммаНачБезВзн663*100)/(СуммаНачБезВзн661);
СуммаНДФЛ663 = СуммаНДФЛ/ПроцентБольничных;
СуммаНДФЛ661 = СуммаНДФЛ - СуммаНДФЛ663;
СуммаВС663 = СуммаВС/ПроцентБольничных;
СуммаВС661 = СуммаВС - СуммаВС663;
КонецЕсли;
КонецЕсли;
КонецЦикла;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Если СуммаНДФЛ663 > 0 Тогда
НовСтрока = ТабНДФЛ.Добавить();
НовСтрока.БазаВзноса = Строка.БазаВзноса;
НовСтрока.БазовыйПериодНачало = Строка.БазовыйПериодНачало;
НовСтрока.ВидРасчетаБазы = Строка.ВидРасчетаБазы;
НовСтрока.ДоходНДФЛ = Справочники.ВидыДоходовНДФЛ.Код01.Ссылка;
НовСтрока.НомерСтроки = Строка.НомерСтроки;
НовСтрока.Результат = СуммаНДФЛ663;
НовСтрока.РезультатТочный = Строка.РезультатТочный;
НовСтрока.Сотрудник = Работник;
НовСтрока.СубконтоДт1 = Работник;
НовСтрока.СубконтоКт1 = Строка.СубконтоКт1;
НовСтрока.СчетДт = ПланыСчетов.Хозрасчетный.РасчетыПоДругимВыплатам.Ссылка;
НовСтрока.СчетКт = Строка.СчетКт;
КонецЕсли;
Если СуммаВС663 > 0 Тогда
НовСтрока = ТабНДФЛ.Добавить();
НовСтрока.БазаВзноса = Строка.БазаВзноса;
НовСтрока.БазовыйПериодНачало = Строка.БазовыйПериодНачало;
НовСтрока.ВидРасчетаБазы = Строка.ВидРасчетаБазы;
НовСтрока.ДоходНДФЛ = Справочники.ВидыДоходовНДФЛ.ВоенныйСбор.Ссылка;
НовСтрока.НомерСтроки = Строка.НомерСтроки;
НовСтрока.Результат = СуммаВС663;
НовСтрока.РезультатТочный = Строка.РезультатТочный;
НовСтрока.Сотрудник = Работник;
НовСтрока.СубконтоДт1 = Работник;
НовСтрока.СубконтоКт1 = Строка.СубконтоКт1;
НовСтрока.СчетДт = ПланыСчетов.Хозрасчетный.РасчетыПоДругимВыплатам.Ссылка;
НовСтрока.СчетКт = Строка.СчетКт;
КонецЕсли;
Если СуммаНДФЛ661 > 0 Тогда
НовСтрока = ТабНДФЛ.Добавить();
НовСтрока.БазаВзноса = Строка.БазаВзноса;
НовСтрока.БазовыйПериодНачало = Строка.БазовыйПериодНачало;
НовСтрока.ВидРасчетаБазы = Строка.ВидРасчетаБазы;
НовСтрока.ДоходНДФЛ = Справочники.ВидыДоходовНДФЛ.Код01.Ссылка;
НовСтрока.НомерСтроки = Строка.НомерСтроки;
НовСтрока.Результат = СуммаНДФЛ661;
НовСтрока.РезультатТочный = Строка.РезультатТочный;
НовСтрока.Сотрудник = Работник;
НовСтрока.СубконтоДт1 = Работник;
НовСтрока.СубконтоКт1 = Строка.СубконтоКт1;
НовСтрока.СчетДт = ПланыСчетов.Хозрасчетный.РасчетыПоЗаработнойПлате.Ссылка;
НовСтрока.СчетКт = Строка.СчетКт;
КонецЕсли;
Если СуммаВС661 > 0 Тогда
НовСтрока = ТабНДФЛ.Добавить();
НовСтрока.БазаВзноса = Строка.БазаВзноса;
НовСтрока.БазовыйПериодНачало = Строка.БазовыйПериодНачало;
НовСтрока.ВидРасчетаБазы = Строка.ВидРасчетаБазы;
НовСтрока.ДоходНДФЛ = Справочники.ВидыДоходовНДФЛ.ВоенныйСбор.Ссылка;
НовСтрока.НомерСтроки = Строка.НомерСтроки;
НовСтрока.Результат = СуммаВС661;
НовСтрока.РезультатТочный = Строка.РезультатТочный;
НовСтрока.Сотрудник = Работник;
НовСтрока.СубконтоДт1 = Работник;
НовСтрока.СубконтоКт1 = Строка.СубконтоКт1;
НовСтрока.СчетДт = ПланыСчетов.Хозрасчетный.РасчетыПоЗаработнойПлате.Ссылка;
НовСтрока.СчетКт = Строка.СчетКт;
КонецЕсли;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
КонецЕсли;
КонецЦикла;
НДФЛПроводки.Очистить();
НДФЛПроводки.Загрузить(ТабНДФЛ);
КонецФункции
Сообщение отредактировал Vofka - 13.09.15, 19:00