Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Войти | Зарегистрироваться )




>  Печать Налоговой Накладной
Yriy
Отправлено: 11.06.11, 16:57


Молчаливый
*

Группа: Пользователи
Сообщений: 2
Регистрация: 10.06.11
Пользователь №: 9704


Цитата(Инна2 @ 11.06.11, 13:38) *
Такой вопрос на кнопке печатьНН в свойствах - дополнительно написана формула печать() или печатьНН()?


ПечатьНН()
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #25272 · Ответов: 6 · Просмотров: 4496
 

>  Печать Налоговой Накладной
Yriy
Отправлено: 10.06.11, 19:23


Молчаливый
*

Группа: Пользователи
Сообщений: 2
Регистрация: 10.06.11
Пользователь №: 9704


Здравствуйте.
Предварительно информация о конфигурации:
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С.
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #25253 · Ответов: 6 · Просмотров: 4496
 


Новые сообщения  Открытая тема (есть новые ответы)
Опрос  Опрос (есть новые голоса)
Нет новых сообщений  Открытая тема (нет новых ответов)
Нет новых голосов  Опрос (нет новых голосов)
Популярная тема  Горячая тема (есть новые ответы)
Закрыта  Закрытая тема
Нет новых  Горячая тема (нет новых ответов) Перемещена  Тема перемещена
 

RSS Текстовая версия Сейчас: 28.05.24, 1:36
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!