Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Печать Налоговой Накладной
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Yriy
Здравствуйте.
Предварительно информация о конфигурации:
1C:V7 starter program (multi-user) 7.70.0.27 (сетевая)
Бухгалтерия 7.7 ПРОФ для Украины ред.2.5 7.70.286

Конфигуратор - Документы - ПриходнаяНакладная - Форма -
кнопка на форме (самодельная) "ПечатьНН" привязана к ТаблицаНН этой формы (от 08.10.98 №

469)
В модуле ПН - это Процедура ПечатьНН () имеет код:

Процедура ПечатьНН()
Перем ПечЦенаБезНДС, ПечСуммаБезСкидки, ПечСуммаБезТранс, ПечСуммаТранс,

ПечВозвТара,
    ПечСуммаНадбавки, ПечСуммаСкидки, ПечИтогСуммаБезНДС, ПечИтогНДС,

ПечИтогСуммаСНДС, ПечВсего, НФ;
    
    СуммаВозвратнойТары = 0;
    НомерДокумента = глНомерБезПрефикса(НомерДок);
    
    ФирмаНалогНомер = Контрагент.ИНН;
    ФирмаНомСвид = Фирма.НомерСвидетельства;
    КонтрагентНалогНомер = ?(ПустоеЗначение(Фирма.ИНН)=1, "XXXXXXXXXXXX",

Фирма.ИНН);
    КонтрагентНомСвид = ?(ПустоеЗначение(Контрагент.НомерСвидетельства)=1,

"XXXXXXXXXXXX", Контрагент.НомерСвидетельства);
    Приложение1 = "";
    
    
    Таб = СоздатьОбъект( "Таблица" );
    Если Валюта = Гривня Тогда
        //Если Сокрлп(ВидНДС.Код) = "БезНДС" Тогда
        //    ИмяФайлаПечатнойФормы =

КаталогИБ()+"ExtForms\PrnForms\NNBez.mxl";
        //    Если ФС.СуществуетФайл(ИмяФайлаПечатнойФормы) = 1 Тогда
        //        Таб.ИсходнаяТаблица(ИмяФайлаПечатнойФормы);
        //    Иначе
        //        Таб.ИсходнаяТаблица("БезНДС");
        //    КонецЕсли;
        //ИначеЕсли Сокрлп(ВидНДС.Код) = "НДС0" Тогда
        //    ИмяФайлаПечатнойФормы =

КаталогИБ()+"ExtForms\PrnForms\NN0.mxl";
        //    Если ФС.СуществуетФайл(ИмяФайлаПечатнойФормы) = 1 Тогда
        //        Таб.ИсходнаяТаблица(ИмяФайлаПечатнойФормы);
        //    Иначе
        //        Таб.ИсходнаяТаблица("НДС0");
        //    КонецЕсли;
        //Иначе
            //Если ФС.СуществуетФайл(ИмяФайлаПечатнойФормы) = 1 Тогда
            //    Таб.ИсходнаяТаблица(ИмяФайлаПечатнойФормы);
            //Иначе
                Таб.ИсходнаяТаблица("ТаблицаНН");
            //КонецЕсли;
        //КонецЕсли;
    //Иначе
    //    // экспорт
    //    ИмяФайлаПечатнойФормы = КаталогИБ()+"ExtForms\PrnForms\NNExp.mxl";
    //    Если ФС.СуществуетФайл(ИмяФайлаПечатнойФормы) = 1 Тогда
    //        Таб.ИсходнаяТаблица(ИмяФайлаПечатнойФормы);
    //    Иначе
    //        Таб.ИсходнаяТаблица("НДСЭкспорт");
    //    КонецЕсли;
    КонецЕсли;
    
    ТаблТМЦ = СоздатьОбъект("ТаблицаЗначений");
    ВыгрузитьТабличнуюЧасть(ТаблТМЦ);
    Если Константа.СворачиватьПоПартиямПриПечати = Да Тогда
        //Если Итоговая=1 Тогда
        //    

ТаблТМЦ.Свернуть("ТМЦ,ЦенаБезНДС,Ед,Коэффициент,ОперДата","Кво,СуммаБезСкидки,Сум

маБезНДС,НДС,СуммаСНДС");
        //Иначе
            

ТаблТМЦ.Свернуть("ТМЦ,ЦенаБезНДС,Ед,Коэффициент","Кво,СуммаБезНДС,НДС,СуммаСНДС

");
        //КонецЕсли;
    КонецЕсли;
    
    СуммаНадбавки = 0; //?(Итог("Скидка") < 0, -Итог("Скидка"), 0);
    СуммаСкидки = 0; //?(Итог("Скидка") >= 0, Итог("Скидка"), 0);

    Для Страница = 1 По 1 Цикл
        Таб.ВывестиСекцию( "Пробел" );
        Если Страница = 1 Тогда
            Таб.ВывестиСекцию( "Оригинал" );
        ИначеЕсли Страница = 2 Тогда
            Таб.ВывестиСекцию( "ПерваяКопия" );
        Иначе
            Таб.ВывестиСекцию( "ВтораяКопия" );
        КонецЕсли;
        Таб.ВывестиСекцию( "Шапка" );

        ПерваяСтрока = 1;
        //Таб.ВывестиСекцию( "РазделI1" );

        ТрансСуммаБезНДС = 0;
        ТрансСуммаСНДС = 0;
        ТрансНДС = 0;
        ИтогПоЛьготам = "";
                        
        ТаблТМЦ.ВыбратьСтроки();
        Пока ТаблТМЦ.ПолучитьСтроку() > 0 Цикл
            //Если (Сокрлп(ВидНДС.Код) = "БезНДС") Тогда    
            //    СтатьяЛьготы = ПолучитьЛьготу(ТаблТМЦ.ТМЦ);
            //    
            //    Если ИтогПоЛьготам = "" Тогда
            //        ИтогПоЛьготам = СтатьяЛьготы;
            //    ИначеЕсли Найти(ИтогПоЛьготам, СтатьяЛьготы) = 0

Тогда
            //        ИтогПоЛьготам = СокрЛП(ИтогПоЛьготам) + ", "

+ СтатьяЛьготы;
            //    КонецЕсли;    
            //КонецЕсли;    
            //Если Итоговая=1 Тогда
            //    Дата2 = ?(ПустоеЗначение(ТаблТМЦ.ОперДата)=0,

ТаблТМЦ.ОперДата, ДатаДок);
            //Иначе
                Дата2 = ДатаДок;
            //КонецЕсли;
            Если ТаблТМЦ.ТМЦ.Вид() = "ТМЦ" Тогда
                Если ТаблТМЦ.ТМЦ.Транспорт = 0 Тогда
                    ЕдИзм = ТаблТМЦ.Ед;
                    Если Валюта <> Гривня Тогда
                        ПечЦенаБезНДС =

Формат(глПересчет(ТаблТМЦ.ЦенаБезНДС*ТаблТМЦ.Коэффициент,Валюта,Гривня,Курс,ДатаДо

к),"Ч12.2");
                        ПечСуммаБезСкидки =

Формат(глПересчет(ТаблТМЦ.СуммаБезСкидки,Валюта,Гривня,Курс,ДатаДок),"Ч12.2");
                    КонецЕсли;
                    Таб.ВывестиСекцию("РазделI2");
                Иначе
                    ТрансСуммаБезНДС = ТрансСуммаБезНДС +

ТаблТМЦ.СуммаБезНДС;
                    ТрансСуммаСНДС = ТрансСуммаСНДС +

ТаблТМЦ.СуммаСНДС;
                    ТрансНДС = ТрансНДС + ТаблТМЦ.НДС;
                КонецЕсли;
            Иначе
                ЕдИзм = ТаблТМЦ.ТМЦ.БазЕдиница;
                Если Валюта <> Гривня Тогда
                    ПечЦенаБезНДС =

Формат(глПересчет(ТаблТМЦ.ЦенаБезНДС*ТаблТМЦ.Коэффициент,Валюта,Гривня,Курс,ДатаДо

к),"Ч12.2");
                    ПечСуммаБезСкидки =

Формат(глПересчет(ТаблТМЦ.СуммаБезСкидки,Валюта,Гривня,Курс,ДатаДок),"Ч12.2");
                КонецЕсли;
                Таб.ВывестиСекцию("РазделI2");
            КонецЕсли;
            ПерваяСтрока = 0;
        КонецЦикла;
        Если Валюта <> Гривня Тогда
            ПечСуммаБезТранс =

Формат(глПересчет(Итог("СуммаБезСкидки")-ТрансСуммаБезНДС,Валюта,Гривня,Курс,ДатаДок)

,"Ч12.2");
            ПечСуммаТранс =

Формат(глПересчет(ТрансСуммаБезНДС,Валюта,Гривня,Курс,ДатаДок),"Ч12.2");
            ПечВозвТара =

Формат(глПересчет(0,Валюта,Гривня,Курс,ДатаДок),"Ч12.2");
            ПечСуммаНадбавки =

Формат(глПересчет(СуммаНадбавки,Валюта,Гривня,Курс,ДатаДок),"Ч12.2");
            ПечСуммаСкидки =

Формат(глПересчет(СуммаСкидки,Валюта,Гривня,Курс,ДатаДок),"Ч12.2");
            ПечИтогСуммаБезНДС =

Формат(глПересчет(Итог("СуммаБезНДС"),Валюта,Гривня,Курс,ДатаДок),"Ч12.2");
            ПечИтогНДС =

Формат(глПересчет(Итог("НДС"),Валюта,Гривня,Курс,ДатаДок),"Ч12.2");
            ПечИтогСуммаСНДС =

Формат(глПересчет(Итог("СуммаСНДС"),Валюта,Гривня,Курс,ДатаДок),"Ч12.2");
            ПечВсего =

Формат(глПересчет(Итог("СуммаСНДС"),Валюта,Гривня,Курс,ДатаДок),"Ч12.2");
        КонецЕсли;
        Таб.ВывестиСекцию( "РазделIВсего" );
        Таб.ВывестиСекцию( "ТовТранс" );
        Таб.ВывестиСекцию( "ВозврТара" );
        Таб.ВывестиСекцию( "Надбавка" );
        Таб.ВывестиСекцию( "ВсегоПоI_II_IV" );
        Таб.ВывестиСекцию( "НДС" );
        Таб.ВывестиСекцию( "ОбщаяСумма" );
        Таб.ВывестиСекцию( "Подвал" );

        Если Страница <> 2 Тогда
            Таб.НоваяСтраница();
        КонецЕсли;
    КонецЦикла;

    Таб.Опции(0, 0, 0, 0);
    Таб.ПараметрыСтраницы(1,,,,,,,,);
    Таб.Защита(Константа.ФлагЗащитыТаблиц);
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Печать налоговой накладной","");
КонецПроцедуры


Все нормально работает. Но, вот, надо теперь в Приходной Накладной
изменить таблицу на НДС_2011. Сделал (скопировал таблицу из Документы НН
в Документы ПН. Код модуля ПН не менял. Начались проблемы. Это понятно.
Тогда взял код из НН (печать)
Процедура Печать2011()
Перем ПечЦенаБезНДС, ПечСуммаБезСкидки, ПечСуммаБезТранс, ПечВозвТара,
     ПечИтогСуммаБезНДС, ПечИтогНДС,ПечВсего, Ст[4], Ск[4];
    
    НомерДокумента = глНомерБезПрефикса(НомерДок);
    НомерДокумента = Прав("      "+НомерДокумента,7);
    
    ТипПричиныПеч = ""; ТипПричиныИнд = 0;
    Если Оставляем = 1 Тогда
        ТипПричиныИнд = спТипПричины.НайтиЗначение(СокрЛП(ТипПричины));
        Если ТипПричиныИнд <> 0 Тогда
            ТипПричиныПеч = Прав("0" + Строка(ТипПричиныИнд+1),2);
        КонецЕсли;
    КонецЕсли;
    
    ФирмаПолнНаименование = Фирма.ПолнНаименованиеНал;
    ФирмаАдрес = Фирма.Адрес;
    Если Найти(Фирма.Телефоны,",") <> 0 Тогда
        ФирмаТел = Лев(Фирма.Телефоны,Найти(Фирма.Телефоны,",")-1);
    ИначеЕсли Найти(Фирма.Телефоны,";") <> 0 Тогда    
        ФирмаТел = Лев(Фирма.Телефоны,Найти(Фирма.Телефоны,";")-1);  
    Иначе    
        ФирмаТел = Фирма.Телефоны;  
    КонецЕсли;
    ФирмаТел = СтрЗаменить(ФирмаТел,"-","");
    ФирмаТел = СтрЗаменить(ФирмаТел," ","");
    ФирмаТел = СтрЗаменить(ФирмаТел,")","");
    ФирмаТел = СтрЗаменить(ФирмаТел,"(","");
    ФирмаТелефоны = Прав("         " + СокрЛП(ФирмаТел),10);
    ФирмаНалогНомер = Прав("           " + СокрЛП(Фирма.ИНН),12);
    ФирмаНомСвид = Прав("         " + СокрЛП(Фирма.НомерСвидетельства),10);
    КонтрагентПолнНаименование = Контрагент.ПолнНаименованиеНал;        
    Если  Контрагент.ВидКонтрагента =  Перечисление.ВидыКонтрагентов.ЧастноеЛицо

Тогда
        КонтрагентАдрес = Контрагент.ФизАдрес;
    Иначе
        КонтрагентАдрес = Контрагент.Адрес;
    КонецЕсли;
    Если Найти(Контрагент.Телефоны,",") <> 0 Тогда
        КонтрТел = Лев(Контрагент.Телефоны,Найти(Контрагент.Телефоны,",")-1);
    ИначеЕсли Найти(Контрагент.Телефоны,";") <> 0 Тогда    
        КонтрТел = Лев(Контрагент.Телефоны,Найти(Контрагент.Телефоны,";")-1);  
    Иначе    
        КонтрТел = Контрагент.Телефоны;  
    КонецЕсли;
    КонтрТел = СтрЗаменить(КонтрТел,"-","");
    КонтрТел = СтрЗаменить(КонтрТел," ","");
    КонтрТел = СтрЗаменить(КонтрТел,")","");
    КонтрТел = СтрЗаменить(КонтрТел,"(","");
    КонтрагентТелефоны = Прав("         " + СокрЛП(КонтрТел),10);
    Если (ВидОперации =

Перечисление.ВидыОперацийНалоговойНакладной.РаботыОтНерезидента) или
         (ТипПричиныИнд = 1) или (ТипПричиныИнд = 2) или (ТипПричиныИнд = 6)

или (ТипПричиныИнд = 3) Тогда
         //тип причины: 02, 03, 07, 04
        КонтрагентНалогНомер = "           0";
        КонтрагентНомСвид    = "         0";
    Иначе
        КонтрагентНалогНомер = ?(ПустоеЗначение(Контрагент.ИНН)=1,            

    "           0",  Прав("           " + СокрЛП(Контрагент.ИНН),12));
        КонтрагентНомСвид = ?(ПустоеЗначение(Контрагент.НомерСвидетельства)=1,  

"         0", Прав("         " + СокрЛП(Контрагент.НомерСвидетельства),10));
    КонецЕсли;
    
    Суффикс = "_2011";
    ПустаяЯчейка = Константа.ПустаяЯчейкаНалДок + Симв(160);
    ВидНомДогов = Константа.ВидНомДоговНН;
    ТекстДополненияГр3 = "";
    
    Таб = СоздатьОбъект( "Таблица" );
    ИмяФайлаПечатнойФормы = КаталогИБ()+"ExtForms\PrnForms\NN"+Суффикс+".mxl";
    Если ФС.СуществуетФайл(ИмяФайлаПечатнойФормы) = 1 Тогда
        Таб.ИсходнаяТаблица(ИмяФайлаПечатнойФормы);
    Иначе
        Таб.ИсходнаяТаблица("НДС"+Суффикс);
    КонецЕсли;
    
    Если Сокрлп(ВидНДС.Код) = "БезНДС" Тогда
        ТекущийСтолбец = 4
    ИначеЕсли Сокрлп(ВидНДС.Код) = "НДС0" Тогда
        Если ВидОперации =

Перечисление.ВидыОперацийНалоговойНакладной.Экспорт Тогда
            ТекущийСтолбец = 3
        Иначе
            ТекущийСтолбец = 2
        КонецЕсли;
    Иначе
        ТекущийСтолбец = 1;
        Если ВидОперации =

Перечисление.ВидыОперацийНалоговойНакладной.Экспорт Тогда
            НулевойСтолбец = 3
        Иначе
            НулевойСтолбец = 2
        КонецЕсли;
    КонецЕсли;
    
    
    ДопКолонка = ?(ЕстьНулевыеСтавкиНДС = 1, "НулеваяСтавкаНДС,","");
    
    ТаблТМЦ = СоздатьОбъект("ТаблицаЗначений");
    ВыгрузитьТабличнуюЧасть(ТаблТМЦ);
    Если Константа.СворачиватьПоПартиямПриПечати = Да Тогда
        Если Итоговая=1 Тогда
            ТаблТМЦ.Свернуть(ДопКолонка +

"ТМЦ,ЦенаБезНДС,Ед,Коэффициент,ОперДата","Кво,СуммаБезСкидки,Скидка,СуммаБезНДС,Н

ДС,СуммаСНДС");
        Иначе
            ТаблТМЦ.Свернуть(ДопКолонка +

"ТМЦ,ЦенаБезНДС,Ед,Коэффициент","Кво,СуммаБезСкидки,Скидка,СуммаБезНДС,НДС,Сумма

СНДС");
        КонецЕсли;       
    КонецЕсли;
    
    
    Для Страница = 1 По 2 Цикл
        Таб.ВывестиСекцию( "Пробел" );
        Если Страница = 1 Тогда  
            Оригинал = ?(Оставляем = 1, "","Х");;
            Копия = "";
            ЕРПН = ?(ЕРНН = 1, "Х","");
            ОстаетсяПеч = ?(Оставляем = 1, "Х","");  
        ИначеЕсли Страница = 2 Тогда
            Копия = "Х";
            Оригинал = "";
            ТипПричиныПеч = "";
            ЕРПН = "";
            ОстаетсяПеч = "";  
        КонецЕсли;
        Таб.ВывестиСекцию( "Оригинал" );
        Таб.ВывестиСекцию( "Шапка" );
    
        Если ВидНомДогов = 2 Тогда          
            Таб.ВывестиСекцию( "Договор2" );
        Иначе
            Таб.ВывестиСекцию( "Договор1" );
        КонецЕсли;
        Таб.ВывестиСекцию( "Шапка2" );

        ПерваяСтрока = 1;

        СуммаБезСкидки0 = 0;
        ИтогПоЛьготам = "";
        
        Для Н = 1 По 4 Цикл
            Если Н = ТекущийСтолбец Тогда
                Ст[Н] = 0;
            Иначе
                Ст[Н] = ПустаяЯчейка;
            КонецЕсли;    
        КонецЦикла;                    
                        
        ТаблТМЦ.ВыбратьСтроки();
        Пока ТаблТМЦ.ПолучитьСтроку() > 0 Цикл
            Если (Сокрлп(ВидНДС.Код) = "БезНДС") Тогда    
                СтатьяЛьготы = ПолучитьЛьготу(ТаблТМЦ.ТМЦ);
                
                Если ИтогПоЛьготам = "" Тогда
                    ИтогПоЛьготам = СтатьяЛьготы;
                ИначеЕсли Найти(ИтогПоЛьготам, СтатьяЛьготы) = 0

Тогда
                    ИтогПоЛьготам = СокрЛП(ИтогПоЛьготам) + ", "

+ СтатьяЛьготы;
                КонецЕсли;    
            КонецЕсли;    
            Если Итоговая=1 Тогда
                Дата2 = ?(ПустоеЗначение(ТаблТМЦ.ОперДата)=0,

ТаблТМЦ.ОперДата, ДатаДок);
            Иначе
                Дата2 = ДатаДок;
            КонецЕсли;
            Если (ТаблТМЦ.Кво <> 0) и (ТаблТМЦ.Скидка <> 0) Тогда
                //будем пересчитывать цену только при наличии скидки
                ПечЦенаБезНДС =

СуммаДляПечати(ТаблТМЦ.СуммаБезНДС / (ТаблТМЦ.Кво));
            Иначе      
                ПечЦенаБезНДС =

СуммаДляПечати(ТаблТМЦ.ЦенаБезНДС * ТаблТМЦ.Коэффициент);
            КонецЕсли;
            Если ТаблТМЦ.ТМЦ.Вид() = "ТМЦ" Тогда
                ЕдИзм = ТаблТМЦ.Ед;
                Если ЕстьНулевыеСтавкиНДС = 1 Тогда
                    Если ТаблТМЦ.НулеваяСтавкаНДС = Да Тогда
                        Ст[ТекущийСтолбец] = ПустаяЯчейка;
                        Ст[НулевойСтолбец] =

СуммаДляПечати(ТаблТМЦ.СуммаБезНДС);
                        СуммаБезСкидки0 = СуммаБезСкидки0

+ ТаблТМЦ.СуммаБезНДС;
                    Иначе
                        Ст[ТекущийСтолбец] =

СуммаДляПечати(ТаблТМЦ.СуммаБезНДС);
                        Ст[НулевойСтолбец] = ПустаяЯчейка;
                    КонецЕсли;
                Иначе
                    Ст[ТекущийСтолбец] =

СуммаДляПечати(ТаблТМЦ.СуммаБезНДС)
                КонецЕсли;
                Таб.ВывестиСекцию("РазделI2");
            Иначе
                ЕдИзм = ТаблТМЦ.ТМЦ.БазЕдиница;
                Если ЕстьНулевыеСтавкиНДС = 1 Тогда
                    Если ТаблТМЦ.НулеваяСтавкаНДС = Да Тогда
                        Ст[ТекущийСтолбец] = ПустаяЯчейка;
                        Ст[НулевойСтолбец] =

СуммаДляПечати(ТаблТМЦ.СуммаБезНДС);
                        СуммаБезСкидки0 = СуммаБезСкидки0

+ ТаблТМЦ.СуммаБезНДС;
                    Иначе
                        Ст[ТекущийСтолбец] =

СуммаДляПечати(ТаблТМЦ.СуммаБезНДС);
                        Ст[НулевойСтолбец] = ПустаяЯчейка;
                    КонецЕсли;
                Иначе
                    Ст[ТекущийСтолбец] =

СуммаДляПечати(ТаблТМЦ.СуммаБезНДС)
                КонецЕсли;
                Таб.ВывестиСекцию("РазделI2");
            КонецЕсли;
            ПерваяСтрока = 0;
        КонецЦикла;
        
        СуммаБезТранс = Итог("СуммаБезНДС");
        ПечСуммаБезТранс = СуммаДляПечати(СуммаБезТранс);
        Если ЕстьНулевыеСтавкиНДС = 1 Тогда
            Ст[ТекущийСтолбец] = СуммаДляПечати(СуммаБезТранс -

СуммаБезСкидки0);
            Ст[НулевойСтолбец] = СуммаДляПечати(СуммаБезСкидки0);
        Иначе
            Ст[ТекущийСтолбец] = ПечСуммаБезТранс;
        КонецЕсли;
        Таб.ВывестиСекцию( "РазделIВсего" );
        
        ПечВозвТара = СуммаДляПечати(СуммаВозвратнойТары);
        Таб.ВывестиСекцию( "ВозврТара" );
        
        Для Н = 1 По 4 Цикл
            Ст[Н] = "";
            Ск[Н] = "";
        КонецЦикла;
        
        ИтогСуммаБезНДС = Итог("СуммаБезНДС");
        ПечИтогСуммаБезНДС = СуммаДляПечати(ИтогСуммаБезНДС);
        Если ЕстьНулевыеСтавкиНДС = 1 Тогда
            ИтогСуммаБезНДС0 = СуммаБезСкидки0;
        КонецЕсли;
        
        ПечИтогНДС = СуммаДляПечати(Итог("НДС"));
        
        Если Сокрлп(ВидНДС.Код) = "НДС0" Тогда
            //по п.11 порядка заполнения НН
            Ст[2] = "0";
            Ст[3] = "0";
        ИначеЕсли ЕстьНулевыеСтавкиНДС = 1 Тогда
            Ст[ТекущийСтолбец] = ПечИтогНДС;
            Ст[НулевойСтолбец] = "0";
        ИначеЕсли Найти("2,3", ТекущийСтолбец) > 0 Тогда
            Ст[ТекущийСтолбец] = "0";
        ИначеЕсли ТекущийСтолбец = 4 Тогда
            Ст[ТекущийСтолбец] = "Без ПДВ ";
        Иначе
            Ст[ТекущийСтолбец] = ПечИтогНДС;
        КонецЕсли;
        Таб.ВывестиСекцию( "НДС" );  
        //теперь очистим
        Ст[2] = "";
        Ст[3] = "";
        
        ИтогСуммаСНДС = Итог("СуммаСНДС");
        ПечВсего = СуммаДляПечати(ИтогСуммаСНДС + СуммаВозвратнойТары);
        Если ЕстьНулевыеСтавкиНДС = 1 Тогда
            Ст[ТекущийСтолбец] = СуммаДляПечати(ИтогСуммаСНДС -

ИтогСуммаБезНДС0);
            Ст[НулевойСтолбец] = СуммаДляПечати(ИтогСуммаБезНДС0);
        Иначе
            Ст[ТекущийСтолбец] = СуммаДляПечати(ИтогСуммаСНДС);
        КонецЕсли;
        Таб.ВывестиСекцию( "ОбщаяСумма" );
        
        Таб.ВывестиСекцию( "Подвал" );

        Если Страница <> 2 Тогда
            Таб.НоваяСтраница();
        КонецЕсли;
    КонецЦикла;
    
    Если (ПродажаНижеОЦ=1) И (Сокрлп(ВидНДС.Код) = "НДС20") Тогда
        
        
        Таб.НоваяСтраница();
        
        ТаблТМЦ = СоздатьОбъект("ТаблицаЗначений");
        ВыгрузитьТабличнуюЧасть(ТаблТМЦ);
        Если Константа.СворачиватьПоПартиямПриПечати = Да Тогда
            Если Итоговая=1 Тогда
                ТаблТМЦ.Свернуть(ДопКолонка +

"ТМЦ,ОбычнаяЦена,ЦенаБезНДС,Ед,Коэффициент,ОперДата","Кво,СуммаПревышения,НДСПре

вышения");
            Иначе
                ТаблТМЦ.Свернуть(ДопКолонка +

"ТМЦ,ОбычнаяЦена,ЦенаБезНДС,Ед,Коэффициент","Кво,СуммаПревышения,НДСПревышения"

);
            КонецЕсли;
        КонецЕсли;
        
        ИтогПоЛьготам = "";
        
        ТекстДополненияГр3 = " (перевищення звичайної ціни над фактичною за

товарами, послугами, указаними в податковій накладній №"+ Строка(НомерДокумента) +

?(СпецРежимНалогообложения=0,"","/"+ СпецРежимНалогообложения);
        ТекстДополненияГр3 = ТекстДополненияГр3 + ?(ОЦВключаетПроценты=1,",

сума процентів нарахованих або таких, що мають бути нараховані на суму номіналу процентного

векселя)",")");
        
        НомерДокумента = Строка(НомерДокумента);
        
        
        
        Для Страница = 1 По 2 Цикл
            Таб.ВывестиСекцию( "Пробел" );
            Если Страница = 1 Тогда  
                Оригинал = "";
                Копия = "";
                ЕРПН = ?(ЕРНН = 1, "Х","");
                ОстаетсяПеч = "Х";
                ТипПричиныПеч = "01";
            ИначеЕсли Страница = 2 Тогда
                Копия = "Х";
                Оригинал = "";
                ТипПричиныПеч = "";
                ЕРПН = "";
                ОстаетсяПеч = "";  
            КонецЕсли;
            Таб.ВывестиСекцию( "Оригинал" );
            Таб.ВывестиСекцию( "Шапка" );
            Если ВидНомДогов = 2 Тогда          
                Таб.ВывестиСекцию( "Договор2" );
            Иначе    
                Таб.ВывестиСекцию( "Договор1" );
            КонецЕсли;
            Таб.ВывестиСекцию( "Шапка2" );
            
            ПерваяСтрока = 1;
            СуммаПревышения0 = 0;
    
            Для Н = 1 По 4 Цикл
                Если Н = ТекущийСтолбец Тогда
                    Ст[Н] = 0;
                Иначе
                    Ст[Н] = ПустаяЯчейка;
                КонецЕсли;    
            КонецЦикла;                    
                                
            ТаблТМЦ.ВыбратьСтроки();
            Пока ТаблТМЦ.ПолучитьСтроку() > 0 Цикл
                Если Итоговая=1 Тогда
                    Дата2 =

?(ПустоеЗначение(ТаблТМЦ.ОперДата)=0, ТаблТМЦ.ОперДата, ДатаДок);
                Иначе
                    Дата2 = ДатаДок;
                КонецЕсли;
                Если ТаблТМЦ.СуммаПревышения > 0 Тогда
                    Если ТаблТМЦ.ТМЦ.Вид() = "ТМЦ" Тогда
                        ЕдИзм = ТаблТМЦ.Ед;
                        ПечЦенаБезНДС = "";
                        Если ЕстьНулевыеСтавкиНДС = 1 Тогда
                            Если

ТаблТМЦ.НулеваяСтавкаНДС = Да Тогда
                                

Ст[ТекущийСтолбец] = ПустаяЯчейка;
                                Ст[НулевойСтолбец]

= СуммаДляПечати(ТаблТМЦ.СуммаПревышения);
                                СуммаПревышения0

= СуммаПревышения0 + ТаблТМЦ.СуммаПревышения;
                            Иначе
                                

Ст[ТекущийСтолбец] = СуммаДляПечати(ТаблТМЦ.СуммаПревышения);
                                Ст[НулевойСтолбец]

= ПустаяЯчейка;
                            КонецЕсли;
                        Иначе
                            Ст[ТекущийСтолбец] =

СуммаДляПечати(ТаблТМЦ.СуммаПревышения)
                        КонецЕсли;
                        Таб.ВывестиСекцию("РазделI2");
                    Иначе
                        ЕдИзм = ТаблТМЦ.ТМЦ.БазЕдиница;
                        ПечЦенаБезНДС = "";
                        Если ЕстьНулевыеСтавкиНДС = 1 Тогда
                            Если

ТаблТМЦ.НулеваяСтавкаНДС = Да Тогда
                                

Ст[ТекущийСтолбец] = ПустаяЯчейка;
                                Ст[НулевойСтолбец]

= СуммаДляПечати(ТаблТМЦ.СуммаПревышения);
                                СуммаПревышения0

= СуммаПревышения0 + ТаблТМЦ.СуммаПревышения;
                            Иначе
                                

Ст[ТекущийСтолбец] = СуммаДляПечати(ТаблТМЦ.СуммаПревышения);
                                Ст[НулевойСтолбец]

= ПустаяЯчейка;
                            КонецЕсли;
                        Иначе
                            Ст[ТекущийСтолбец] =

СуммаДляПечати(ТаблТМЦ.СуммаПревышения)
                        КонецЕсли;
                        Таб.ВывестиСекцию("РазделI2");
                    КонецЕсли;
                    ПерваяСтрока = 0;
                КонецЕсли;    
            КонецЦикла;
            
            СуммаБезТранс = Итог("СуммаПревышения");
            ПечСуммаБезТранс = СуммаДляПечати(СуммаБезТранс);
            Если ЕстьНулевыеСтавкиНДС = 1 Тогда
                Ст[ТекущийСтолбец] = СуммаДляПечати(СуммаБезТранс -

СуммаПревышения0);
                Ст[НулевойСтолбец] =

СуммаДляПечати(СуммаПревышения0);
            Иначе
                Ст[ТекущийСтолбец] = ПечСуммаБезТранс;
            КонецЕсли;
            Таб.ВывестиСекцию( "РазделIВсего" );

            ПечВозвТара = 0;
            Таб.ВывестиСекцию( "ВозврТара" );
            
            Для Н = 1 По 4 Цикл
                Ст[Н] = "";
                Ск[Н] = "";
            КонецЦикла;
            
            ИтогСуммаБезНДС = Итог("СуммаПревышения");
            ПечИтогСуммаБезНДС = СуммаДляПечати(ИтогСуммаБезНДС);
            Если ЕстьНулевыеСтавкиНДС = 1 Тогда
                ИтогСуммаБезНДС0 = СуммаПревышения0;
            Иначе
            КонецЕсли;
            
            ИтогНДС = Итог("НДСПревышения");
            ПечИтогНДС = СуммаДляПечати(ИтогНДС);
            Если ЕстьНулевыеСтавкиНДС = 1 Тогда
                Ст[ТекущийСтолбец] = ПечИтогНДС;
                Ст[НулевойСтолбец] = "0";
            Иначе
                Ст[ТекущийСтолбец] = ПечИтогНДС;
            КонецЕсли;
            Таб.ВывестиСекцию( "НДС" );
            
            ИтогСуммаСНДС = ИтогСуммаБезНДС + ИтогНДС;
            ПечВсего = СуммаДляПечати(ИтогСуммаСНДС);
            Если ЕстьНулевыеСтавкиНДС = 1 Тогда
                Ст[ТекущийСтолбец] = СуммаДляПечати(ИтогСуммаСНДС

- ИтогСуммаБезНДС0);
                Ст[НулевойСтолбец] =

СуммаДляПечати(ИтогСуммаБезНДС0);
            Иначе
                Ст[ТекущийСтолбец] = ПечВсего;
            КонецЕсли;
            Таб.ВывестиСекцию( "ОбщаяСумма" );
            
            Таб.ВывестиСекцию( "Подвал" );
            
            Если Страница <> 2 Тогда
                Таб.НоваяСтраница();
            КонецЕсли;
        КонецЦикла;
        
    КонецЕсли;    
    
    
    Таб.ПараметрыСтраницы(1,,,,,,,,);
    Таб.Опции(0, 0, 0, 0, "НН");
    Таб.Защита(Константа.ФлагЗащитыТаблиц);
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Печать налоговой накладной","");
КонецПроцедуры

и скопировал этот код вместо предыдущего. Ну и ничего не получилось.
В ошибках много необъявленных переменнных + необнаруженных агрегатных объектов.

Ну а смысл был таков:
Открываем Журнал - ПриходныеНакладные - открываем любую ПриходнуюНакладную,
затем вкладка Дополнительно и там жмем на кнопку ПечатьНН.
Печатается Налоговая Накладная (просто печатается и все, без Рееста НН и т.п., чисто просто
печать)
Не пулучилось у меня перевести на шаблон НН_2011.

Что сделал, что смог.
Сейчас более-менее делается это через не знаю что (в общем - не в 1С).
Перед печатью, после формирования НН на основе старого шаблона это сохраняется в файл
Exel - Печать.xls (например). Имеется шаблон Excel новой НН-2011 чистый.
Запускается скрипт (я писал), берет данные из старой НН *.xls и заносит в шаблон новой НН-2011
все данные соответственно ячеек.
Пожалусйта, помогите сделать это в 1С.
Инна2
Такой вопрос на кнопке печатьНН в свойствах - дополнительно написана формула печать() или печатьНН()?
Acid
те переменные на которые ругается 1с, нужно прописывать вручную.
какие данные используются для них смотрите в оригинале документа НН.
igmig65
В налоговой есть куча реквизитов, которых нет в ПН, чего ж вы хотели. В необходимо зарегистрироваться для просмотра ссылки если неполучается, ну а в принципе ничего сложного нет, только есть варианты: добавлять в ПН эти реквизиты или просто вносить в поля ввода перед печатью, ну или определять в модуле перед выводом.
Yriy
Цитата(Инна2 @ 11.06.11, 13:38) необходимо зарегистрироваться для просмотра ссылки
Такой вопрос на кнопке печатьНН в свойствах - дополнительно написана формула печать() или печатьНН()?


ПечатьНН()
-=VJ=-
Цитата(Yriy @ 10.06.11, 19:23) необходимо зарегистрироваться для просмотра ссылки
Пожалусйта, помогите сделать это в 1С.


Вот лучше б Вы бросили листинг сообщений об ошибках.
Инна2
Цитата(Yriy @ 11.06.11, 17:57) необходимо зарегистрироваться для просмотра ссылки
ПечатьНН()



Попробуй прописать Печать2011() и посмотри что получиться
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.