Расширение конфигурации, облегчающее работу пользователей - позволяет сформировать и отправить в ИФНС "Уведомление об исчисленных суммах налогов, авансовых платежей по налогам, сборов, страховых взносов" в части уплаченного НДФЛ.
Тестирование проводилось на версии конфигурации Зарплата и кадры государственного учреждения, редакция 3.1 (3.1.24.310), а также Зарплата и управление персоналом, редакция 3.1 (3.1.24.310)
Как пользоваться:
1) Установить как расширение конфигурации в конфигураторе
Создаем тут расширение плюсиком, адаптация, снимаем все галки кроме "активно", загружаем из файла.
2) Обновляем конфигурацию базы данных стандартным способом, после чего можно входить в конфигурацию обычным способом.
3) После запуска в документе "Отражение удержанного НДФЛ в бухучете" появляется кнопка выгрузки и создания уведомления.
Кнопка внизу выполняет все, что нужно для создания уведомления
4) Нажимаем "Выгрузить НУ в файл" - программа запросит каталог сохранения файла уведомления, и автоматически создаст его, как показано на рисунке ниже, для отправки:
Код расширения, выполняющий действия по выгрузке.
&НаКлиенте
Процедура ВыполнитьКоманду(Команда)
Сообщить("Записываю в файл "+Объект.Организация+" "+Объект.Дата+" "+Строка(Объект.УдержанныйНДФЛ.Количество()));
год = лев(Формат(ТекущаяДата(),"ДФ=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"),",",".")); СтрЗаменить(Строка.Сумма,Символы.НПП, "")
КонецЦикла;
Текст.ДобавитьСтроку("</Документ>");
Текст.ДобавитьСтроку("</Файл>");
ку = "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 - все отлично, сформировалось и выгрузилось, это не удивительно так как
конфигурации очень похожи, интерфейс один в один!)