Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Раздел 1 (столбец1) при печати НН вывдит в каждой строке "i"
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
firefox1984
Налоговая накладная, 1С предприятие 7.7 версия 7.70.027, Конфигурация "торговля и склад 7.70.007".

Раздел 1 (столбец1) при печати выводит в каждой строке "I". Как в модуле прописать, чтоб выводило один раз?

Сейчас прописано так:

ПерваяСтрока = 1;
          
         ТрансСуммаБезНДС = 0;
        ТрансСуммаСНДС = 0;
        ТрансНДС = 0;

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


В тавблице прописано " ?(ПерваяСтрока=1,"I","") "

Подскажите в чем может быть причина.
Vofka
ПерваяСтрока = 1;
          
         ТрансСуммаБезНДС = 0;
        ТрансСуммаСНДС = 0;
        ТрансНДС = 0;

        ИтСуммаБезСкидки = 0;
        ВыбратьСтроки();
        Пока ПолучитьСтроку() > 0 Цикл
            Если Товар.Транспорт = 0 Тогда
              
                Если ПерваяСтрока = 1 Тогда
                    НомерРаздела = "I";
                    ПерваяСтрока = 0;
                Иначе
                    НомерРаздела = "";
                КонецЕсли;
                ПерваяСтрока = ПерваяСтрока + 1;
Ardi
Бланк налоговой накладной из 007 уже 5 раз устарел. Ставьте новй релиз. Потом уже ищите ошибки.
firefox1984
я бланк НН уже поменял на новый. Осталась одна загвоздка в этом
Домовик
тогда дело, возможно не в этом куске кода. Когда первая строка, то признак ПерваяСтрока обнуляется. все верно. Возможно он не обнуляется где-то еще
.
Покажите полностью цикл!, полностью условие! вырван кусок!
Vofka
Я ж написал, так не работает?
Домовик
Цитата(Vofka @ 10.01.12, 7:04) необходимо зарегистрироваться для просмотра ссылки
Я ж написал, так не работает?

в этом контексте, который видно, нет, не заработает. ПерваяСтрока обнуляется, становится не первой, вы снова плюсуете 1. Становится опять первой.
firefox1984
необходимо зарегистрироваться для просмотра ссылки

Процедура Печать(БыстраяПечать=0)
  
Перем ПечЦенаБезНДС, ПечСуммаБезСкидки, ПечСуммаБезТранс, ПечСуммаТранс, ПечВозвТара,
    ПечСуммаНадбавки, ПечСуммаСкидки, ПечИтогСуммаБезНДС, ПечИтогНДС, ПечИтогСуммаСНДС, ПечВсего, НФ;

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

    Если ДатаДок < Дата ("10.01.2011") Тогда
        КонтрагентНалогНомер = ?(ПустоеЗначение(Контрагент.ИНН)=1,"           0", Прав("            " + СокрЛП(Контрагент.ИНН),12));
        КонтрагентНомСвид = ?(ПустоеЗначение(Контрагент.НомерСвидетельства)=1,  "         0", Прав("         " + СокрЛП(Контрагент.НомерСвидетельства),10));
    Иначе  
        КонтрагентНалогНомер = ?(ПустоеЗначение(Контрагент.ИНН)=1,"           0", Прав("            " + СокрЛП(Контрагент.ИНН),12));
        КонтрагентНомСвид = ?(ПустоеЗначение(Контрагент.НомерСвидетельства)=1,  "         0", Прав("         " + СокрЛП(Контрагент.НомерСвидетельства),10));
    КонецЕсли;
  
    Приложение1 = "";
                                      
    ПечНомерДок = глНомерБезПрефикса(Контекст);
    ПечНомерДок = Прав("      "+Число(ПечНомерДок),7);
  
    ЧМГ=Формат(ДатаДок,"ДГГГГММДД");  
    Дог = Контрагент.ОсновнойДоговорТорг;
    ДатаДоговора=Формат(Дог.ДатаДок,"ДГГГГММДД");  
    НомерДоговора=Дог.НомерДок;
  
    Таб = СоздатьОбъект( "Таблица" );
        
    Если (Валюта <> Гривня)
    И (Контрагент.ВидКонтрагента = Перечисление.ВидыКонтрагентов.Нерезидент) Тогда
        // Экспорт
        Таб.ИсходнаяТаблица("НДСЭкспорт");
    Иначе  
        Если СтавкаНДС = Перечисление.ЗначенияНДС.БезНДС Тогда
            Таб.ИсходнаяТаблица("БезНДС");
        ИначеЕсли СтавкаНДС = Перечисление.ЗначенияНДС.ЛьготнаяСтавкаНДС Тогда
            Таб.ИсходнаяТаблица("НДС0");
        Иначе  
            Если ДатаДок < Дата ("10.01.2011") Тогда
                Таб.ИсходнаяТаблица("НДС20");  
            Иначе
               Таб.ИсходнаяТаблица("НДС20_2011");        
            КонецЕсли;  
        КонецЕсли;                                                    
    КонецЕсли;
  
//    ОбщСуммаНадбавки = 0;
//    ОбщСуммаСкидки = 0;

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

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

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

    КонецЦикла;

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


Цитата(Vofka @ 10.01.12, 12:04) необходимо зарегистрироваться для просмотра ссылки
Я ж написал, так не работает?

нет не работает
Домовик
по мне, строку эту нужно комментировать. А она была в коде? Может так надо? с буковкой выводить...
dmiter
Ошибка в процедуре Печать
Процедура Печать(БыстраяПечать=0)
...  
        ВыбратьСтроки();
        Пока ПолучитьСтроку() > 0 Цикл
            Если Товар.Транспорт = 0 Тогда
              
                Если ПерваяСтрока = 1 Тогда
                    НомерРаздела = "I";
                    ПерваяСтрока = 0;
                Иначе
                    НомерРаздела = "";
                КонецЕсли;
// !!!!! - ошибка                     ПерваяСтрока = ПерваяСтрока + 1;
// ПерваяСтрока всегда будет равна 1                
....
КонецПроцедуры
firefox1984
// !!!!! - ошибка ПерваяСтрока = ПерваяСтрока + 1;
строки там не было
5_kopeek
Цитата(firefox1984 @ 10.01.12, 10:12) необходимо зарегистрироваться для просмотра ссылки
В тавблице прописано " ?(ПерваяСтрока=1,"I","") "

Проверьте в таблице, в нужной ли ячейке установили "?(ПерваяСтрока=1,"I","")".
firefox1984
Цитата(5_kopeek @ 10.01.12, 12:56) необходимо зарегистрироваться для просмотра ссылки
Проверьте в таблице, в нужной ли ячейке установили "?(ПерваяСтрока=1,"I","")".

Да в первом столбце в секции РазделI2
5_kopeek
Цитата(firefox1984 @ 10.01.12, 12:15) необходимо зарегистрироваться для просмотра ссылки
Да в первом столбце в секции РазделI2

А таблица какая?
firefox1984
Цитата(5_kopeek @ 10.01.12, 13:22) необходимо зарегистрироваться для просмотра ссылки
А таблица какая?

НДС20_2011
5_kopeek
Уберите закомментированные строчки и добавьте одну перед концом цикла.
ПерваяСтрока = 1;
...
        ВыбратьСтроки();
        Пока ПолучитьСтроку() > 0 Цикл
            Если Товар.Транспорт = 0 Тогда
              
//                Если ПерваяСтрока = 1 Тогда
//                    НомерРаздела = "I";
//                    ПерваяСтрока = 0;
//                Иначе
//                    НомерРаздела = "";
//                КонецЕсли;
//                     ПерваяСтрока = ПерваяСтрока + 1;
                    
                ЕдИзм = Единица;
...
                    ПерваяСтрока = 0;
        КонецЦикла;

Хотя сути это не меняет. Проверьте, та ли процедура вызывается и прочие мелкие нюансы. И, вообще, с декабря 2011 новая накладная.
firefox1984
Я полностью перебрал НН под новый вид. Все заработало. спасибо
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.