Для реализации этого метода предлагаю 2 варианта.
1. Стандартный механизм «Внешние печатные формы».
1.1. Качаете обработку «Печать2НДФЛ.epf»
1.2. Регистрируете в системе 1С:Предприятия как внешнюю печатную форму (об этом вот тут http://www.avtexpert.ru/kak-podklyuchit-vneshnyuyu-pechatnuyu-formu.html , причем с видео)
1.3. Наслаждаетесь 🙂
2. Доработка конфигурации
2.1. Добавляете в общий модуль СправкиПоНДФЛ экспортную функцию ПечатьСправок2НДФЛ_ВФоне
// ----------------------------------------------------------------------------------------------
// Параметры:
// Физлицо - ссылки на физлиц
// Организация - ссылка на орг
// НалоговыйПериод - год
// Основание - строка: сводно или по ОКАТО
// КоличествоЭкземпляров - число
// НаПринтер - булево
//
// Описание:
// служит для вызова печати справок без создания документа.
//
// если есть проведенная справка по указанному ф/л, используется она,
// иначе вызывается контекст модуля документа, где в транзакции
// происходит заполнение реквизитов, сохранение и печать, после чего
// транзакция отменяется
//
// Возвращает:
// Табличный документ
//
Функция ПечатьСправок2НДФЛ_ВФоне(Физлицо, Знач Организация = Неопределено, Знач НалоговыйПериод = Неопределено, Знач Основание = Неопределено, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт
Если НалоговыйПериод = Неопределено Тогда
НалоговыйПериод = Год(ОбщегоНазначения.ПолучитьРабочуюДату());
КонецЕсли;
Если Организация = Неопределено Тогда
Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнаяОрганизация")
КонецЕсли;
Если Основание = Неопределено Тогда
Основание = Перечисления.ПорядокФормированияСправкиОДоходахФизлица.ФизлицуСводно;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
| СправкаПоНДФЛ.Ссылка
|ИЗ
| Документ.СправкаПоНДФЛСотруднику КАК СправкаПоНДФЛ
|ГДЕ
| СправкаПоНДФЛ.Сотрудник = &Сотрудник
| И СправкаПоНДФЛ.Проведен
| И СправкаПоНДФЛ.Организация = &Организация
| И СправкаПоНДФЛ.НалоговыйПериод = &НалоговыйПериод";
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("НалоговыйПериод", НалоговыйПериод);
Запрос.УстановитьПараметр("Сотрудник", Физлицо);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
ДокОбъектДляПечати = Выборка.Ссылка.ПолучитьОбъект();
Возврат ДокОбъектДляПечати.Печать("Справка", КоличествоЭкземпляров, НаПринтер);
Иначе
ДокОбъектДляПечати = Документы.СправкаПоНДФЛСотруднику.СоздатьДокумент();
ДокОбъектДляПечати.Дата = РабочаяДата;
ДокОбъектДляПечати.УстановитьНовыйНомер();
ДокОбъектДляПечати.Организация = Организация;
ДокОбъектДляПечати.НалоговыйПериод = НалоговыйПериод;
ДокОбъектДляПечати.Сотрудник = Физлицо;
ДокОбъектДляПечати.СпособФормирования = Основание;
ДокОбъектДляПечати.ЗаполнитьРеквизитыЗначениямиПоУмолчанию();
СписокОКАТОиКПП = СписокОКАТОиКПП(Организация);
ДокОбъектДляПечати.ОКАТО_КПП = ?(СписокОКАТОиКПП.Количество() > 0, СписокОКАТОиКПП[0].Значение, "");
ГоловнаяОрганизация = ОбщегоНазначения.ГоловнаяОрганизация(Организация);
ПрочитатьДанныеСотрудника(ДокОбъектДляПечати, ДокОбъектДляПечати.Дата, НалоговыйПериод);
ПрочитатьДанныеСправки(ДокОбъектДляПечати, ДокОбъектДляПечати.СведенияОДоходах, ДокОбъектДляПечати.СведенияОВычетах, ДокОбъектДляПечати.СуммыНалогов, НалоговыйПериод, Организация, ГоловнаяОрганизация, Неопределено, КонецДня(ДокОбъектДляПечати.Дата)+1);
НачатьТранзакцию();
ДокОбъектДляПечати.Записать();
ДокОбъектДляПечати.Печать("Справка", КоличествоЭкземпляров, НаПринтер);
ОтменитьТранзакцию();
КонецЕсли;
КонецФункции // ПечатьСправок2НДФЛ_ВФоне
2.2. Вызов производится из любого модуля методом СправкиПоНДФЛ.ПечатьСправок2НДФЛ_ВФоне(Физлицо, Организация)
Экспериментировал на ЗБУ 1.0.42.1 и ЗУП 2.5.37.1, но думаю на УПП метода аналогичная.
Всем удачного кодинга, посоны! 🙂
«1.2. Регистрируете в системе 1С:Предприятия как внешнюю печатную форму» — регистрируем для какого объекта?
(1) Справочник «Сотрудники»
нда.. неплохая такая реклама стороннего ресурса