gifts2017

Печать налоговой накладной и приложения 2 из регламентированной отчетности для Украины

Опубликовал Виталий Трач (vitalya24) в раздел Печать - Регламентированная отчетность

Вариант реализации печати налоговой накладной и приложения 2 к налоговой накладной из одноименной регламентированной отчетности, чего нет в типовых конфигурациях  для Украины

Данная реализация тестировалась и работает в конфигурации Управление торговым предприятием  1.2.6.1, т.е для последнего на данный момент обновления, но вполне вероятно, и скорее всего механизмы регламентированной отчетности во всех типовых конфигурациях идентичны, значит возможна реализация в любой типовой конфигцрации содержащей в своем составе бух. учет.

 Необходимость печати возникла когда налоговый документ визуально отображенный в регламентированном отчете и выгрузке в налоговую отличался от сохраненного в конфигурации. Т.е. когда форма этого документа в регламентированном отчете "Налоговая накладная" по каким-то причинам отличалась от того что было заполнено из сохраненного документа налоговой накладной. Для того чтобы распечатать такой документ, нужно визуально запомнить корректировки формы, внести изменения в документ НН, и затем распечатать. Долго, увеличивается вероятность ошибки. Для этого и была реализована печать.

 Для начала нужно обновить Вашу конфигурацию до последнего актуального релиза.

Найти в дереве конфигурации "РегламентированныйОтчетНалоговаяНакладная", открыть форму "ФормаОтчета2012". 

Добавить кнопку "печать"  на командной панели внизу, добавить обработчик в модуле формы и разметить в прцедуре обработчика следующий код:

ОбновитьСтруктуруМногострочныхРазделов();
КолонкаНоменклатура = мСтруктураМногострочныхРазделов.R.ВыгрузитьКолонку("RG3S");
КолонкаУКТЗЕДСтроки = мСтруктураМногострочныхРазделов.R.ВыгрузитьКолонку("RG4");
КолонкаУКТЗЕД = Новый Массив;
Для Каждого ЭлементМас Из КолонкаУКТЗЕДСтроки Цикл
Поиск = Справочники.КлассификаторУКТВЭД.НайтиПоКоду(СокрЛП(ЭлементМас));
Если Поиск = Справочники.КлассификаторУКТВЭД.ПустаяСсылка() Тогда
Поиск = Справочники.КлассификаторУКТВЭД.СоздатьЭлемент();
Поиск.Код = СокрЛП(ЭлементМас);
Поиск.Наименование = СокрЛП(ЭлементМас);
Поиск.НаименованиеПолное = СокрЛП(ЭлементМас);
Поиск.Записать();
КонецЕсли;
КолонкаУКТЗЕД.Добавить(Поиск);
КонецЦикла;

СтруктураДопПараметров = Новый Структура;
СтруктураДопПараметров.Вставить("КолонкаНоменклатура", КолонкаНоменклатура);
СтруктураДопПараметров.Вставить("КолонкаУКТЗЕД", КолонкаУКТЗЕД);
ОбъектНалоговая = НалоговыйДокумент.ПолучитьОбъект();
ОбъектНалоговая.ПечатьИзРегламен = Истина;
ОбъектНалоговая.Печать("НалоговаяНакладная", ,,,СтруктураДопПараметров);

 Работа с регламетированным отчетом закончена, теперь можно перейти к документу налоговая накладная.

Откройте в дереве конфигурации документ налоговая накладная, откройте модуль объекта этого документа.

Нужно найти процедуру "Печать", заменить заголовок процедуры, добавив еще один параметр:

//Процедура осуществляет печать документа. Можно направить печать на
// экран или принтер, а также распечатать необходмое количество копий.
//
// Название макета печати передается в качестве параметра,
// по переданному названию находим имя макета в соответствии.
//
// Параметры:
// НазваниеМакета - строка, название макета.
//
Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь, НепосредственнаяПечать = Ложь, СтруктураДопПараметров = Неопределено) Экспорт 

 В теле процедуры нужно найти код

// Получить экземпляр документа на печать
Если ИмяМакета = "НалоговаяНакладная" Тогда
ТабДокумент = ПечатьДокумента(,СтруктураДопПараметров);
КонецЕсли;

Другими словами функции ПечатьДокумента добавить параметр  - структура параметров.

Затем перейти к функции ПечатьДокумента, добавить ей параметр в заголовок

Функция ПечатьДокумента(ТолькоФормироватьСтруктуруПоказателейПечатнойФормы = Ложь, СтруктураДопПараметров = Неопределено) Экспорт  

В теле функции заменить код на следующий:

Если Дата >= глЗначениеПеременной("ДатаВступленияВСилуПриказа1379") Тогда
Возврат ПечатьДокументаНалоговыйКодекс2012(ТолькоФормироватьСтруктуруПоказателейПечатнойФормы, СтруктураДопПараметров);
Иначе
Возврат ПечатьДокументаНалоговыйКодекс(ТолькоФормироватьСтруктуруПоказателейПечатнойФормы);
КонецЕсли;

 Т.е.  функции  ПечатьДокументаНалоговыйКодекс2012 указать параметр  СтруктураДопПараметров.

Затем перейти к функции  ПечатьДокументаНалоговыйКодекс2012 опять указать в заголовке дополнительный параметр:

Функция ПечатьДокументаНалоговыйКодекс2012(ТолькоФормироватьСтруктуруПоказателейПечатнойФормы, СтруктураДопПараметров = Неопределено) Экспорт

 В теле процедуры найти следующий код:

...

ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_НалоговаяНакладная_НалоговаяНакладная";

Макет = ПолучитьМакет("НалоговаяНакладная2012");
Макет.КодЯзыкаМакета = "ru";

ПодготовитьТаблицы(СтруктураШапкиДокумента, ТаблицаНоменклатуры, ТаблицаПоТаре, ТаблицаПоУслугам, ТаблицаПоОС, ТаблицаПоНМА);

После этого кода вставьте следующий код:

Если ПечатьИзРегламен <> Неопределено Тогда
ТаблицаНоменклатуры.ЗагрузитьКолонку(СтруктураДопПараметров.КолонкаНоменклатура, "Номенклатура");
ТаблицаНоменклатуры.ЗагрузитьКолонку(СтруктураДопПараметров.КолонкаУКТЗЕД, "КодУКТВЭД");
КонецЕсли;

Последнее что нужно сделать это в модуле в разделе объявления переменных нужно объявить экспортную переменную  ПечатьИзРегламен, следующим кодом:

Перем  ПечатьИзРегламен Экспорт;

 

Обсолютно аналогичны действия для РегламентированныйОтчетПриложение2кНалоговойНакладной.

В итоге получаем возможность печати документов.

В приложенном файле сложено описание действий. 

Скачать файлы

Наименование Файл Версия Размер
печать налоговых из регламентированных отчетов 5
.doc 35,50Kb
05.02.12
5
.doc 35,50Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Евгений Сосна (pumbaE) 06.02.12 12:47
Извините, но это бред... По вашей логике, мы меняем печатную форму в выгрузке, а потом ищем исправляем сам документ Налоговая накладная, мне кажется это удаление гланд из ж...

1. Зачем менять типовую конфигурацию, сделаете как внешнюю обработку, и подключите ее из справочника РегламентированнаяОтчетность + сделать внешнюю печатную форму и ее вызывать - более красивое решение.
2. Откройте выгрузку в xml исправьте, нажмите меню "Файл"-"Сохранить"-выберете формат xls, откройте в Excel, выделить все, убрать заливку: вот вам печатная форма исправленная.
2. Виталий Трач (vitalya24) 06.02.12 13:06
1. Согласен что нужно было сделать как внешнюю обработку, но нет для этого особо времени, а поделиться идее хочется.
2. А вы пробовали распечатать такую форму? уверенны что она будет выведена на печать с соблюдение норм?
3. Евгений Сосна (pumbaE) 06.02.12 13:47
Распечатывать не пробовал, только посмотрел, что форма есть в Excel.
По поводу времени, статью наверное дольше писали, чем сделать копипаст - сохранить отчет как внешний, добавить туда кнопку печать. Даже модуль документа не надо исправлять, скопировал во внешний процедуру печати, там модули сделаны специально, что бы по ссылке печатались, де еще макет только скопировать в обработку и переопределить его вызовов.

Много времени не надо.
4. Виталий Трач (vitalya24) 06.02.12 13:57
можно было и так конечно. А печать из xml всетаки не получится правильно...
5. Владимир Костецкий (astonvilla) 07.02.12 13:53
А какое практическое применение данной разработке?
Каг-то нелогично печатать налоговые из регламентированной отчетности....
6. Виталий Трач (vitalya24) 07.02.12 15:29
Для моих заказчиков это было ох как логично. Разница между сохраняемыми НН и отправляемыми в налоговую, нежелание заполнять код УКТ ЗЕД там где его нужно заполнять... вообщем причин масса)))
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа