Каталог решений - Исправление ошибки переноса стандартных вычетов по НДФЛ при конвертации данных ЗиК->ЗУП 2.5.45.3

Исправление ошибки переноса стандартных вычетов по НДФЛ при конвертации данных ЗиК->ЗУП 2.5.45.3

Исправление ошибки переноса стандартных вычетов по НДФЛ при конвертации данных ЗиК->ЗУП 2.5.45.3

В наличии

При  конвертации данных штатными средствами  ЗУП 2.5.45.3, неверно переносится сведения о предоставленных вычетах по НДФЛ.

Категория:

Описание

При выгрузке данных, обработкой 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»;
                                ЗаполнитьТаблицуПредоставленныхВычетов(
                                ФизЛицо,
                                ПериодРегистрацииДохода,
                                ПодразделениеОрганизации,
                                МесяцНалоговогоПериода,
                                КодВычета,
                                ПримененныйВычет,
                                ТаблицаНДФЛПредоставленныеСтандартныеВычетыФизЛиц);    
                            КонецЕсли;
                            
                            
                        КонецЕсли;
                        
                    КонецЦикла;
                    
                КонецЕсли;
                
            КонецЕсли;
            
        КонецЦикла;    
        
    КонецЕсли;

КонецФункции // ЗаполнитьТаблицуНДФЛПредоставленныеСтдВычетыФизЛиц()

has been added to your cart:
Оформление заказа