Данная реализация тестировалась и работает в конфигурации Управление торговым предприятием 1.2.6.1, т.е для последнего на данный момент обновления, но вполне вероятно, и скорее всего механизмы регламентированной отчетности во всех типовых конфигурациях идентичны, значит возможна реализация в любой типовой конфигцрации содержащей в своем составе бух. учет.
Необходимость печати возникла когда налоговый документ визуально отображенный в регламентированном отчете и выгрузке в налоговую отличался от сохраненного в конфигурации. Т.е. когда форма этого документа в регламентированном отчете "Налоговая накладная" по каким-то причинам отличалась от того что было заполнено из сохраненного документа налоговой накладной. Для того чтобы распечатать такой документ, нужно визуально запомнить корректировки формы, внести изменения в документ НН, и затем распечатать. Долго, увеличивается вероятность ошибки. Для этого и была реализована печать.
Для начала нужно обновить Вашу конфигурацию до последнего актуального релиза.
Найти в дереве конфигурации "РегламентированныйОтчетНалоговаяНакладная", открыть форму "ФормаОтчета2012".
Добавить кнопку "печать" на командной панели внизу, добавить обработчик в модуле формы и разметить в прцедуре обработчика следующий код:
ОбновитьСтруктуруМногострочныхРазделов();
КолонкаНоменклатура = мСтруктураМногострочныхРазделов.R.ВыгрузитьКолонку("RG3S");
КолонкаУКТЗЕДСтроки = мСтруктураМногострочныхРазделов.R.ВыгрузитьКолонку("RG4");
КолонкаУКТЗЕД = Новый Массив;
Для Каждого ЭлементМас Из КолонкаУКТЗЕДСтроки Цикл
Поиск = Справочники.КлассификаторУКТВЭД.НайтиПоКоду(СокрЛП(ЭлементМас));
Если Поиск = Справочники.КлассификаторУКТВЭД.ПустаяСсылка() Тогда
Поиск = Справочники.КлассификаторУКТВЭД.СоздатьЭлемент();
Поиск.Код = СокрЛП(ЭлементМас);
Поиск.Наименование = СокрЛП(ЭлементМас);
Поиск.НаименованиеПолное = СокрЛП(ЭлементМас);
Поиск.Записать();
КонецЕсли;
КолонкаУКТЗЕД.Добавить(Поиск);
КонецЦикла;
СтруктураДопПараметров = Новый Структура;
СтруктураДопПараметров.Вставить("КолонкаНоменклатура", КолонкаНоменклатура);
СтруктураДопПараметров.Вставить("КолонкаУКТЗЕД", КолонкаУКТЗЕД);
ОбъектНалоговая = НалоговыйДокумент.ПолучитьОбъект();
ОбъектНалоговая.ПечатьИзРегламен = Истина;
ОбъектНалоговая.Печать("НалоговаяНакладная", ,,,СтруктураДопПараметров);
Работа с регламетированным отчетом закончена, теперь можно перейти к документу налоговая накладная.
Откройте в дереве конфигурации документ налоговая накладная, откройте модуль объекта этого документа.
Нужно найти процедуру "Печать", заменить заголовок процедуры, добавив еще один параметр:
//Процедура осуществляет печать документа. Можно направить печать на
// экран или принтер, а также распечатать необходмое количество копий.
//
// Название макета печати передается в качестве параметра,
// по переданному названию находим имя макета в соответствии.
//
// Параметры:
// НазваниеМакета - строка, название макета.
//
Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь, НепосредственнаяПечать = Ложь, СтруктураДопПараметров = Неопределено) Экспорт
В теле процедуры нужно найти код
// Получить экземпляр документа на печать
Если ИмяМакета = "НалоговаяНакладная" Тогда
ТабДокумент = ПечатьДокумента(,СтруктураДопПараметров);
КонецЕсли;
Другими словами функции ПечатьДокумента добавить параметр - структура параметров.
Затем перейти к функции ПечатьДокумента, добавить ей параметр в заголовок
Функция ПечатьДокумента(ТолькоФормироватьСтруктуруПоказателейПечатнойФормы = Ложь, СтруктураДопПараметров = Неопределено) Экспорт
В теле функции заменить код на следующий:
Если Дата >= глЗначениеПеременной("ДатаВступленияВСилуПриказа1379") Тогда
Возврат ПечатьДокументаНалоговыйКодекс2012(ТолькоФормироватьСтруктуруПоказателейПечатнойФормы, СтруктураДопПараметров);
Иначе
Возврат ПечатьДокументаНалоговыйКодекс(ТолькоФормироватьСтруктуруПоказателейПечатнойФормы);
КонецЕсли;
Т.е. функции ПечатьДокументаНалоговыйКодекс2012 указать параметр СтруктураДопПараметров.
Затем перейти к функции ПечатьДокументаНалоговыйКодекс2012 опять указать в заголовке дополнительный параметр:
Функция ПечатьДокументаНалоговыйКодекс2012(ТолькоФормироватьСтруктуруПоказателейПечатнойФормы, СтруктураДопПараметров = Неопределено) Экспорт
В теле процедуры найти следующий код:
...
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_НалоговаяНакладная_НалоговаяНакладная";
Макет = ПолучитьМакет("НалоговаяНакладная2012");
Макет.КодЯзыкаМакета = "ru";
ПодготовитьТаблицы(СтруктураШапкиДокумента, ТаблицаНоменклатуры, ТаблицаПоТаре, ТаблицаПоУслугам, ТаблицаПоОС, ТаблицаПоНМА);
После этого кода вставьте следующий код:
Если ПечатьИзРегламен <> Неопределено Тогда
ТаблицаНоменклатуры.ЗагрузитьКолонку(СтруктураДопПараметров.КолонкаНоменклатура, "Номенклатура");
ТаблицаНоменклатуры.ЗагрузитьКолонку(СтруктураДопПараметров.КолонкаУКТЗЕД, "КодУКТВЭД");
КонецЕсли;
Последнее что нужно сделать это в модуле в разделе объявления переменных нужно объявить экспортную переменную ПечатьИзРегламен, следующим кодом:
Перем ПечатьИзРегламен Экспорт;
Обсолютно аналогичны действия для РегламентированныйОтчетПриложение2кНалоговойНакладной.
В итоге получаем возможность печати документов.
В приложенном файле сложено описание действий.