Расширение конфигурации (и внешняя обработка), облегчающее работу пользователей - позволяет сформировать и отправить в ИФНС "Уведомление об исчисленных суммах налогов, авансовых платежей по налогам, сборов, страховых взносов" в части уплаченного НДФЛ и страховых взносов.
Тестирование проводилось на версии конфигурации Зарплата и кадры государственного учреждения, редакция 3.1 (3.1.24.310), а также Зарплата и управление персоналом, редакция 3.1 (3.1.24.310)
Как пользоваться:
1) Установить как расширение конфигурации в конфигураторе
Создаем тут расширение плюсиком, адаптация, снимаем все галки кроме "активно", загружаем из файла.
2) Обновляем конфигурацию базы данных стандартным способом, после чего можно входить в конфигурацию обычным способом.
3) После запуска в документе "Отражение удержанного НДФЛ в бухучете" появляется кнопка выгрузки и создания уведомления.
Кнопка внизу выполняет все, что нужно для создания уведомления
4) Нажимаем "Выгрузить НУ в файл" - программа запросит каталог сохранения файла уведомления, и автоматически создаст его, как показано на рисунке ниже, для отправки:
Код расширения, выполняющий действия по выгрузке.
&НаКлиенте
Асинх Процедура ВыполнитьКоманду(Команда)
Сообщить("Записываю НУ в файл "+Объект.Организация);
//Сообщить(ПериодРегистрацииСтрокой);
//Сообщить(ПолучитьИннПоНаименованию(Объект.Организация));
//Сообщить(ПолучитьРуководителя(Объект.Организация));
//Сообщить(Формат(ТекущаяДата(),"ДФ=yyyyMMdd"));
НачалоПредыдущегоМесяца = НачалоМесяца(ДобавитьМесяц(Объект.Дата, -1));
КонецПредыдущегоМесяца = КонецМесяца(ДобавитьМесяц(Объект.Дата, -1));
//Сообщить(НачалоПредыдущегоМесяца);
//Сообщить(КонецПредыдущегоМесяца);
//Сообщить(ПолучитьЕдиный(Объект.Организация,НачалоПредыдущегоМесяца,КонецПредыдущегоМесяца));
год = лев(Формат(ТекущаяДата(),"ДФ=yyyyMMdd"),4);
мес = сред(Формат(ТекущаяДата(),"ДФ=yyyyMMdd"),5,2);
дн = прав(Формат(ТекущаяДата(),"ДФ=yyyyMMdd"),2);
//Сообщить(мес);
пер = "";
номермескв = "";
если (мес="01") или (мес="02") или (мес="03") тогда
пер = "21";
номермескв = мес;
конецесли;
если (мес="04") или (мес="05") или (мес="06") тогда
пер = "31";
если мес="04" тогда
номермескв = "01";
конецесли;
если мес="05" тогда
номермескв = "02";
конецесли;
если мес="06" тогда
номермескв = "03";
конецесли;
конецесли;
если (мес="07") или (мес="08") или (мес="09") тогда
пер = "33";
если мес="07" тогда
номермескв = "01";
конецесли;
если мес="08" тогда
номермескв = "02";
конецесли;
если мес="09" тогда
номермескв = "03";
конецесли;
конецесли;
если (мес="10") или (мес="11") или (мес="12") тогда
пер = "34";
если мес="10" тогда
номермескв = "01";
конецесли;
если мес="11" тогда
номермескв = "02";
конецесли;
если мес="12" и число(дн)<23 тогда
номермескв = "03";
конецесли;
если мес="12" и число(дн)>=23 тогда
номермескв = "04";
конецесли;
конецесли;
//Сообщить(пер + " " + номермескв);
кно = ""; кпп = "";
Текст = Новый ТекстовыйДокумент;
Текст.ДобавитьСтроку("<?xml version=""1.0"" encoding=""windows-1251""?>");
Текст.ДобавитьСтроку("<Подписант ПрПодп=""1"">");
Текст.ДобавитьСтроку("<ФИО Фамилия="""+РазложитьСтроку(ПолучитьРуководителя(Объект.Организация))[0]+""" Имя="""+РазложитьСтроку(ПолучитьРуководителя(Объект.Организация))[1]+""" Отчество="""+РазложитьСтроку(ПолучитьРуководителя(Объект.Организация))[2]+"""/>");
Текст.ДобавитьСтроку("</Подписант>");
Для каждого Строка из Объект.УдержанныйНДФЛ Цикл
Текст.ДобавитьСтроку("<УвИсчСумНалог КППДекл="""+СокрЛП(Строка.КПП)+""" ОКТМО="""+Строка.КодПоОКТМО+""" КБК="""+Строка.КБК+""" СумНалогАванс="""+СтрЗаменить(Формат(Строка.Сумма,"ЧГ=0;ЧДЦ=2"),",",".")+""" Период="""+пер+""" НомерМесКварт="""+номермескв+""" Год="""+год+"""/>");
кно = Строка.КодНалоговогоОргана;
кпп = СокрЛП(Строка.КПП);
//Сообщить(СтрЗаменить(Формат(Строка.Сумма,"ЧГ=0;ЧДЦ=2"),",",".")); СтрЗаменить(Строка.Сумма,Символы.НПП, "")
КонецЦикла;
если мес="02" или мес="03" или мес="05" или мес="06" или мес="08" или мес="09" или мес="11" или мес="12" тогда
//18210201000011000160
Режим = РежимДиалогаВопрос.ДаНет;
Ответ = Ждать ВопросАсинх(НСтр("ru = 'Необходимо отправить налоговое уведомление по страховым взносам за прошлый месяц!"+Символы.ПС+"Либо из этого документа,совместно с данными по НДФЛ,"+Символы.ПС+"либо отдельно - из документа Отражение зарплаты в бухучете!"+Символы.ПС+"--------------------------------------------------"+Символы.ПС+"Включить данные по страховым взносам в текущий файл?';"
+ " en = 'You should use russian language!'"), Режим, 0);
Если Ответ = КодВозвратаДиалога.Да Тогда
//Возврат;
кэбэка = "18210201000011000160";
п_номермескв = лев(номермескв,1)+строка(число(прав(номермескв,1))-1);
суммастрах = ПолучитьЕдиный(Объект.Организация,НачалоПредыдущегоМесяца,КонецПредыдущегоМесяца);
Сведения = Новый СписокЗначений;
Сведения.Добавить("", "КППЮЛ");
Сведения.Добавить("", "ОКТМО");
ОргСведения = РегламентированнаяОтчетностьВызовСервера.ПолучитьСведенияОбОрганизации(Объект.Организация, ТекущаяДата(), Сведения);
//Сообщить(ОргСведения.КППЮЛ);
кпп2=СокрЛП(ОргСведения.КППЮЛ);
Текст.ДобавитьСтроку("<УвИсчСумНалог КППДекл="""+СокрЛП(кпп2)+""" ОКТМО="""+ОргСведения.ОКТМО+""" КБК="""+кэбэка+""" СумНалогАванс="""+СтрЗаменить(Формат(суммастрах,"ЧГ=0;ЧДЦ=2"),",",".")+""" Период="""+пер+""" НомерМесКварт="""+п_номермескв+""" Год="""+год+"""/>");
КонецЕсли;
конецесли;
Текст.ДобавитьСтроку("</Документ>");
Текст.ДобавитьСтроку("</Файл>");
Сведения = Новый СписокЗначений;
Сведения.Добавить("", "КППЮЛ");
Сведения.Добавить("", "КодНО");
ОргСведения = РегламентированнаяОтчетностьВызовСервера.ПолучитьСведенияОбОрганизации(Объект.Организация, ТекущаяДата(), Сведения);
//Сообщить(ОргСведения.КППЮЛ);
кпп=СокрЛП(ОргСведения.КППЮЛ);
кно = СокрЛП(ОргСведения.КодНО);
ку = "UT_UVISCHSUMNAL_"+кно+"_"+кно+"_"+ПолучитьИннПоНаименованию(Объект.Организация)+кпп+"_"+Формат(ТекущаяДата(),"ДФ=yyyyMMdd")+"_"+новый УникальныйИдентификатор();
ку=СтрЗаменить(ку,Символы.НПП, "");
Текст.ВставитьСтроку(2,"<Файл xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" ИдФайл="""+ку+""" ВерсПрог=""1С:ПРЕДПРИЯТИЕ 8.3 ЗиК ГУ"" ВерсФорм=""5.02"">");
Текст.ВставитьСтроку(3,"<Документ КНД=""1110355"" ДатаДок="""+РазложитьСтроку(Объект.Дата)[0]+""" КодНО="""+кно+""">");
Текст.ВставитьСтроку(4,"<СвНП>");
Текст.ВставитьСтроку(5,"<НПЮЛ ИННЮЛ="""+ПолучитьИннПоНаименованию(Объект.Организация)+""" КПП="""+кпп+"""/>");
Текст.ВставитьСтроку(6,"</СвНП>");
Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытия.Каталог = "";
ДиалогОткрытия.МножественныйВыбор = Ложь;
ДиалогОткрытия.Заголовок = "Выберите каталог для сохранения файла НУ";
Если ДиалогОткрытия.Выбрать() Тогда
ПутьККаталогу = ДиалогОткрытия.Каталог;
ФайлПуть = ПутьККаталогу+"\"+ку+".xml";
Текст.Записать(ПутьККаталогу+"\"+ку+".xml","windows-1251");
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗакрытияПредупреждения", ЭтотОбъект, Неопределено);
ДокументооборотСКОКлиент.ПолучитьКонтекстЭДО(ОписаниеОповещения);
КонецЕсли;
КонецПроцедуры
По нажатию на кнопку - автоматически формирует и выгружает файл.
И сразу загружает его в 1С Отчетность с возможностью отправки.
_________________________________________________________________
UPD.
Добавил автоматическое определение периода в соответствии с правилами:
НДФЛ
01.01-22.01 21/01
23.01-22.02 21/02
23.02-22.03 21/03
23.03-22.04 31/01
23.04-22.05 31/02
23.05-22.06 31/03
23.06-22.07 33/01
23.07-22.08 33/02
23.08-22.09 33/03
23.09-22.10 34/01
23.10-22.11 34/02
23.11-22.12 34/03
23.12-31.12 34/04
В скором времени сделаю аналогичный функционал для Страховых взносов.
UPD.
Проверил работу в ЗУП 3.1 - все отлично, сформировалось и выгрузилось, это не удивительно так как конфигурации очень похожи, интерфейс один в один!)
UPD 03.02.2023
Обновление - реализовано формирование строки налогового уведомления для суммы по Страховым взносам за прошлый месяц из документа Отражение зарплаты в бухучете.
Обратите внимание что пока непосредственно из этого документа отдельной выгрузки нет - расширение предлагает (из за этого версия платформы теперь должна быть не ниже 8.3.18) выгрузить данные в налоговое уведомление по страховым СОВМЕСТНО (что кажется логичным, правильным и вроде как рекомендуемым самой налоговой) с данными НДФЛ (можно согласиться или отказаться - тогда сформируются только сведения по НДФЛ) как показано на картинке ниже:
КБК для страховых 18210201000011000160 согласно источнику ссылка.
Расширение анализирует текущий месяц - и в тот период когда ну по страховым отправлять не нужно, оно не предлагает выгрузку.
Периоды для налоговых уведомлений по страховым (не позднее) согласно источнику ссылка
январь 27.02.2023 21/01
февраль 27.03.2023 21/02
апрель 25.05.2023 31/01
май 26.06.2023 31/02
июль 25.08.2023 33/01
август 25.09.2023 33/02
октябрь 27.11.2023 34/01
ноябрь 25.12.2023 34/02
Также исправлены некоторые возможные ошибки (в части определения кпп и кода но организаций с подразделениями)
Буду рад любым вашим комментариям и замечаниям, в дальнейших планах сделать отдельную выгрузку только файла налогового уведомления по страховым из документа Отражение зарплаты в бухучете - там будет внизу такая же кнопка.
UPD.
Добавлена кнопка отдельной выгрузки уведомления по страховым, если это кому то надо, использовать с осознанием того факта что уведомление по страховым отправляется в месяце следующим за текущим. В те месяцы когда отправка не предусмотрена - выгрузка не происходит.
UPD. 09.02.2023
Сделал внешнюю обработку для пользователей базовый версий конфигураций.
UPD. 11.02.2023 В ЗУП обычном и базовом - документ отражения в бухучете называется немного иначе чем в ЗиК ГУ, добавил второй файл обработки. Для расширения также добавил отдельный файл для ЗУП.
UPD. 14.02.2023
У ИП нет КПП и сам формат уведомления чуть иной, поправил расширение конфигурации для ЗУП 3.1!
Теперь автоматически определяет ИП это или юрлицо.
И обработку для ЗУП 3.1 тоже поправил, для ЗИК ГУ 3.1 оставил как есть - там только юрлица.
Файлы обновил, просьба скачать и протестировать.