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






При конвертации данных штатными средствами ЗУП 2.5.45.3, неверно переносится сведения о предоставленных вычетах по НДФЛ.
Перейти к публикации
Молоток, чего тут скажешь
Умница!!!! У меня правда зарплата бюджетная, но судя по картинке косяк тот-же. Попробую поправлю. Но плюсик готова уже сейчас поставить.
В 7 зик у сотрудника два вычета на детей 114108 и 115 с 01/06/2011. Поправила прцедуру конвертации. 115 код в документе «Перенос данных» встал правильно, а 114108 вообще не перенесся. У меня 8 ЗикБУ (8-ка зарплата бюджет) релиз 1.0.35.1 (но по моему косяк с 34 релиза). Отпуска, больничные считаются правильно, но хочется чтобы все было красиво. Может еще где-то надо править?
(3) Так трудно сказать…
Есть еще не понятный для меня цикл в функции ПолучитьСписокСтандартныхВычетов()
Для чего оно надо, я так и не понял… но может оно именно и мешает?
в самом конце
Показать
(3) Неправильная функция: Найти(КодВычета, «114108»), надо:
Найти(«114108»,КодВычета) или
Найти(КодВычета, «114») ИЛИ Найти(КодВычета, «114»)
// Вычеты на детей
в этом месте замените код:
ИначеЕсли (Найти(КодВычета, «114108») <> 0) ИЛИ (Найти(КодВычета, «115») <> 0) ИЛИ (Найти(КодВычета, «116») <> 0) ИЛИ (Найти(КодВычета, «117109») <> 0)
ИЛИ (Найти(КодВычета, «118110») <> 0) ИЛИ (Найти(КодВычета, «119») <> 0) ИЛИ (Найти(КодВычета, «120») <> 0) ИЛИ (Найти(КодВычета, «121112») <> 0)
ИЛИ (Найти(КодВычета, «122111») <> 0) ИЛИ (Найти(КодВычета, «123») <> 0) ИЛИ (Найти(КодВычета, «124») <> 0) ИЛИ (Найти(КодВычета, «125113») <> 0) Тогда
на
ИначеЕсли (Найти(КодВычета, «114») <> 0) ИЛИ (Найти(КодВычета, «108») <> 0) ИЛИ (Найти(КодВычета, «115») <> 0) ИЛИ (Найти(КодВычета, «116») <> 0)
ИЛИ (Найти(КодВычета, «109») <> 0) ИЛИ (Найти(КодВычета, «117») <> 0)
ИЛИ (Найти(КодВычета, «118») <> 0) ИЛИ (Найти(КодВычета, «110») <> 0) ИЛИ (Найти(КодВычета, «119») <> 0) ИЛИ (Найти(КодВычета, «120») <> 0)
ИЛИ (Найти(КодВычета, «112») <> 0) ИЛИ (Найти(КодВычета, «121») <> 0) ИЛИ (Найти(КодВычета, «122») <> 0)ИЛИ (Найти(КодВычета, «111») <> 0)
ИЛИ (Найти(КодВычета, «123») <> 0) ИЛИ (Найти(КодВычета, «124») <> 0) ИЛИ (Найти(КодВычета, «125») <> 0) ИЛИ (Найти(КодВычета, «113») <> 0) Тогда
и для комплексной такая же фигня
спасибо!
Спасибо большое, очень помогли!))
Спасиб помогло
(5) 1Cworking, Поправила модуль как написано, переносит 108 и 114 вычеты в справочник вычетов и в документы переноса , их потом обработкой можно заменить на вычет 114/108 и удалить. Такой результат меня устраивает. Но мне пришлось снимать конфигурацию с поддержки. А как теперь вернуть замочек на место. Я в программировании не сильна. Мне с замочком спокойнее. Подскажите, пожалуйста.
(10) Есть справочник «Конвертации из информационных баз…». Из него можно получить обработку выгрузки из ЗиК и уже редактировать и использовать ее при выгрузке из ЗиК. При этом конфигурация не меняется и замочек на месте.
Вот обработка , которую я использовал V77ExpМоя318.ert. В ней добавлена возможность загружать только непом.на уд.( это для того, чтобы можно было выгружать/загружать частями).
(11) 1Cworking, Я из 8 ЗикБУ выгражала V77Exp.ert, редактировала в конфигураторе 7 зик, снимала замочек с 8 ЗикБУ и опять загружала в справочник «Конвертации из информационных баз…». Из 7 Зик V77Exp.ert запускается, но там надо указать Имя файла правил. А где взять эти правила я не знаю. И как потом в 8-ку загрузить?
(12) правила выгружаются там же. Можете взять от сюда.
(13) 1Cworking, Огромное спасибо !!! Нашла я правила в справочнике «Конвертации из информационных баз…». Выгрузила данные из 7 зик 321 в 8 ЗикБУ 35,2, все получилось. Только выгрузка через файл выполнялась раза в три быстрее. 🙂
а если база уже перенесена как можно перегрузить именно эту информацию
(15) Prooa, посмотри .
(16) kis, это я сам уже сделал
Да, забавно. Еще в 2010 писал в ( про разные ошибочки, так этот вопрос и тянется, как Змей Горыныч трансформируясь и отращивая головы… 🙂
Хорошая обработка.А не то исправляли вручную.Будем использовать,Спасибо.