При выгрузке данных, обработкой v77exp.ert, которая идет в составе ЗУП 2.5.45.3, неверно выгружаются сведения о предоставленных вычетах по НДФЛ..
Кто не знает - эта обработка хранится в ЗУП в справочнике "Конвертации из информационных баз 1С:Предприятие 7.7"
Ошибка закралась в функции ЗаполнитьТаблицуНДФЛПредоставленныеСтдВычетыФизЛиц()
Функция ЗаполнитьТаблицуНДФЛПредоставленныеСтдВычетыФизЛиц(
ИсходящиеДанные = "", ВходящиеДанные = "", Источник = "", Приемник = "", ТипПриемника = "", Значение = "", Выражение = "",
Пусто = "", ВыборкаДанных = "", Объект = "", КоллекцияОбъектов = "", ОбъектКоллекции = "", ИмяПКО = "", ИмяПКОВидСубконто = "",
НомерПКО = "", НомерПКС = "", Правило = "", КлючВыгружаемыхДанных = "", НеЗапоминатьВыгруженные = "", НеЗамещатьОбъектПриЗагрузке = "",
ВсеОбъектыВыгружены = "", ТолькоПолучитьУзелСсылки = "", РежимЗаписи = "", РежимПроведения = "", СтандартнаяОбработка = "",
НеЗамещать = "", НеОчищать = "", УзелСсылки = "", УзелКоллекцииОбъектов = "", УзелОбъектаКоллекции = "", УзелСвойства = "",
ВидСубконто = "", Субконто = "", Отказ = "")
СписокФизлиц = ИсходящиеДанные;
ДоходыВычетыНалогиСотрудников = ВходящиеДанные;
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц = Источник;
Год = Приемник;
ВсегоСотров = СписокФизлиц.РазмерСписка();
НомерРелизаИБ = Число(СтрЗаменить(Константа.НомерРелиза, ".",""));
Если ВсегоСотров > 0 Тогда
БуферРазделов=СоздатьОбъект("СписокЗначений");
Для СчСотров = 1 По ВсегоСотров Цикл
СтрокаИтоговойТаблицы = (СчСотров-1)*12;
ФизЛицо = СписокФизлиц.ПолучитьЗначение(СчСотров);
БуферРазделов.УдалитьВсе();
ПоследнийМесяц = 0;
// заполняем буферы
Если (Год>=2011) и (НомерРелизаИБ >= 770318) Тогда
ТаблицаВычетов = ПолучитьСписокСтандартныхВычетов(ФизЛицо,ДоходыВычетыНалогиСотрудников,СтрокаИтоговойТаблицы,Год, ПоследнийМесяц);
Если (ТаблицаВычетов.КоличествоСтрок() <> 0) Тогда
Для СчМес = 1 По ПоследнийМесяц Цикл
ПериодРегистрацииДохода = Дата(Год,СчМес,1);
ПодразделениеОрганизации = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы+СчМес,"Подразделение");
МесяцНалоговогоПериода = Дата(Год,СчМес,1);
НомСтроки = "";
Если ТаблицаВычетов.НайтиЗначение(СчМес,НомСтроки,"Месяц")>0 Тогда
Для СчСтрок = НомСтроки По ТаблицаВычетов.КоличествоСтрок() Цикл
ТаблицаВычетов.ПолучитьСтрокуПоНомеру(СчСтрок);//вот этой строки не хватает
Если ТаблицаВычетов.Месяц<>СчМес Тогда
Прервать;
КонецЕсли;
Если ТаблицаВычетов.СуммаВычета<>0 Тогда
ПримененныйВычет = ТаблицаВычетов.СуммаВычета;
КодВычета = ТаблицаВычетов.КодВычета;
ЗаполнитьТаблицуПредоставленныхВычетов(
ФизЛицо,
ПериодРегистрацииДохода,
ПодразделениеОрганизации,
МесяцНалоговогоПериода,
КодВычета,
ПримененныйВычет,
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Иначе
Если Год>=2009 Тогда
глЗаполнитьРазделыНК2009(ФизЛицо,"",Год,ДоходыВычетыНалогиСотрудников,СтрокаИтоговойТаблицы,БуферРазделов,БуферРазделов,БуферРазделов,БуферРазделов,БуферРазделов,ПоследнийМесяц);
Иначе
глЗаполнитьРазделыНК2005(ФизЛицо,"",Год,ДоходыВычетыНалогиСотрудников,СтрокаИтоговойТаблицы,БуферРазделов,БуферРазделов,БуферРазделов,БуферРазделов,БуферРазделов,ПоследнийМесяц);
КонецЕсли;
Если (БуферРазделов.РазмерСписка() <> 0) Тогда
Для СчМес = 1 По ПоследнийМесяц Цикл
ПериодРегистрацииДохода = Дата(Год,СчМес,1);
ПодразделениеОрганизации = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы+СчМес,"Подразделение");
МесяцНалоговогоПериода = Дата(Год,СчМес,1);
СчСтрок = ?(СтрДлина(СчМес)=1, "0"+СчМес, СчМес);
Если Год>=2009 Тогда
Сумма103 = Число(Сокрлп(БуферРазделов.Получить("СВМес3" + СчСтрок)));
Если Сумма103<>0 Тогда
ПримененныйВычет = Сумма103;
КодВычета = "103";
ЗаполнитьТаблицуПредоставленныхВычетов(
ФизЛицо,
ПериодРегистрацииДохода,
ПодразделениеОрганизации,
МесяцНалоговогоПериода,
КодВычета,
ПримененныйВычет,
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);
КонецЕсли;
Сумма104 = Число(Сокрлп(БуферРазделов.Получить("СВМес4" + СчСтрок)));
Если Сумма104<>0 Тогда
ПримененныйВычет = Сумма104;
КодВычета = "104";
ЗаполнитьТаблицуПредоставленныхВычетов(
ФизЛицо,
ПериодРегистрацииДохода,
ПодразделениеОрганизации,
МесяцНалоговогоПериода,
КодВычета,
ПримененныйВычет,
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);
КонецЕсли;
Сумма105 = Число(Сокрлп(БуферРазделов.Получить("СВМес5" + СчСтрок)));
Если Сумма105<>0 Тогда
ПримененныйВычет = Сумма105;
КодВычета = "105";
ЗаполнитьТаблицуПредоставленныхВычетов(
ФизЛицо,
ПериодРегистрацииДохода,
ПодразделениеОрганизации,
МесяцНалоговогоПериода,
КодВычета,
ПримененныйВычет,
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);
КонецЕсли;
Сумма108 = Число(Сокрлп(БуферРазделов.Получить("СВМес8" + СчСтрок)));
Если Сумма108<>0 Тогда
ПримененныйВычет = Сумма108;
КодВычета = "108";
ЗаполнитьТаблицуПредоставленныхВычетов(
ФизЛицо,
ПериодРегистрацииДохода,
ПодразделениеОрганизации,
МесяцНалоговогоПериода,
КодВычета,
ПримененныйВычет,
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);
КонецЕсли;
Сумма109 = Число(Сокрлп(БуферРазделов.Получить("СВМес9" + СчСтрок)));
Если Сумма109<>0 Тогда
ПримененныйВычет = Сумма109;
КодВычета = "109";
ЗаполнитьТаблицуПредоставленныхВычетов(
ФизЛицо,
ПериодРегистрацииДохода,
ПодразделениеОрганизации,
МесяцНалоговогоПериода,
КодВычета,
ПримененныйВычет,
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);
КонецЕсли;
Сумма110 = Число(Сокрлп(БуферРазделов.Получить("СВМес10" + СчСтрок)));
Если Сумма110<>0 Тогда
ПримененныйВычет = Сумма110;
КодВычета = "110";
ЗаполнитьТаблицуПредоставленныхВычетов(
ФизЛицо,
ПериодРегистрацииДохода,
ПодразделениеОрганизации,
МесяцНалоговогоПериода,
КодВычета,
ПримененныйВычет,
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);
КонецЕсли;
Сумма111 = Число(Сокрлп(БуферРазделов.Получить("СВМес11" + СчСтрок)));
Если Сумма111<>0 Тогда
ПримененныйВычет = Сумма111;
КодВычета = "111";
ЗаполнитьТаблицуПредоставленныхВычетов(
ФизЛицо,
ПериодРегистрацииДохода,
ПодразделениеОрганизации,
МесяцНалоговогоПериода,
КодВычета,
ПримененныйВычет,
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);
КонецЕсли;
Сумма112 = Число(Сокрлп(БуферРазделов.Получить("СВМес12" + СчСтрок)));
Если Сумма112<>0 Тогда
ПримененныйВычет = Сумма112;
КодВычета = "112";
ЗаполнитьТаблицуПредоставленныхВычетов(
ФизЛицо,
ПериодРегистрацииДохода,
ПодразделениеОрганизации,
МесяцНалоговогоПериода,
КодВычета,
ПримененныйВычет,
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);
КонецЕсли;
Сумма113 = Число(Сокрлп(БуферРазделов.Получить("СВМес13" + СчСтрок)));
Если Сумма113<>0 Тогда
ПримененныйВычет = Сумма113;
КодВычета = "113";
ЗаполнитьТаблицуПредоставленныхВычетов(
ФизЛицо,
ПериодРегистрацииДохода,
ПодразделениеОрганизации,
МесяцНалоговогоПериода,
КодВычета,
ПримененныйВычет,
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);
КонецЕсли;
Иначе
Сумма101 = Число(Сокрлп(БуферРазделов.Получить("СВМес1" + СчСтрок)));
Если Сумма101<>0 Тогда
ПримененныйВычет = Сумма101;
КодВычета = "101";
ЗаполнитьТаблицуПредоставленныхВычетов(
ФизЛицо,
ПериодРегистрацииДохода,
ПодразделениеОрганизации,
МесяцНалоговогоПериода,
КодВычета,
ПримененныйВычет,
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);
КонецЕсли;
Сумма102 = Число(Сокрлп(БуферРазделов.Получить("СВМес2" + СчСтрок)));
Если Сумма102<>0 Тогда
ПримененныйВычет = Сумма102;
КодВычета = "102";
ЗаполнитьТаблицуПредоставленныхВычетов(
ФизЛицо,
ПериодРегистрацииДохода,
ПодразделениеОрганизации,
МесяцНалоговогоПериода,
КодВычета,
ПримененныйВычет,
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);
КонецЕсли;
Сумма103 = Число(Сокрлп(БуферРазделов.Получить("СВМес3" + СчСтрок)));
Если Сумма103<>0 Тогда
ПримененныйВычет = Сумма103;
КодВычета = "103";
ЗаполнитьТаблицуПредоставленныхВычетов(
ФизЛицо,
ПериодРегистрацииДохода,
ПодразделениеОрганизации,
МесяцНалоговогоПериода,
КодВычета,
ПримененныйВычет,
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);
КонецЕсли;
Сумма104 = Число(Сокрлп(БуферРазделов.Получить("СВМес4" + СчСтрок)));
Если Сумма104<>0 Тогда
ПримененныйВычет = Сумма104;
КодВычета = "104";
ЗаполнитьТаблицуПредоставленныхВычетов(
ФизЛицо,
ПериодРегистрацииДохода,
ПодразделениеОрганизации,
МесяцНалоговогоПериода,
КодВычета,
ПримененныйВычет,
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);
КонецЕсли;
Сумма105 = Число(Сокрлп(БуферРазделов.Получить("СВМес5" + СчСтрок)));
Если Сумма105<>0 Тогда
ПримененныйВычет = Сумма105;
КодВычета = "105";
ЗаполнитьТаблицуПредоставленныхВычетов(
ФизЛицо,
ПериодРегистрацииДохода,
ПодразделениеОрганизации,
МесяцНалоговогоПериода,
КодВычета,
ПримененныйВычет,
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);
КонецЕсли;
Сумма106 = Число(Сокрлп(БуферРазделов.Получить("СВМес6" + СчСтрок)));
Если Сумма106<>0 Тогда
ПримененныйВычет = Сумма106;
КодВычета = "106";
ЗаполнитьТаблицуПредоставленныхВычетов(
ФизЛицо,
ПериодРегистрацииДохода,
ПодразделениеОрганизации,
МесяцНалоговогоПериода,
КодВычета,
ПримененныйВычет,
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);
КонецЕсли;
Сумма107 = Число(Сокрлп(БуферРазделов.Получить("СВМес7" + СчСтрок)));
Если Сумма107<>0 Тогда
ПримененныйВычет = Сумма107;
КодВычета = "107";
ЗаполнитьТаблицуПредоставленныхВычетов(
ФизЛицо,
ПериодРегистрацииДохода,
ПодразделениеОрганизации,
МесяцНалоговогоПериода,
КодВычета,
ПримененныйВычет,
ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецФункции // ЗаполнитьТаблицуНДФЛПредоставленныеСтдВычетыФизЛиц()