Имя: Пароль:
1C
1С v8
Как задать условие для вывода шапки?
0 Sky69
 
03.12.12
09:03
Проблема следующая: выводить нужно шапку до определенной страницы, потом не выводить. Пыталась в цикл шапку вывести, но некрасиво смотрится при выводе отчета пользователю,хотя на печать красиво. В данном коде вывожу шапку на каждой странице. Т.е. перед Область = Макет.ПолучитьОбласть("Подзаголовок"); уже шапку выводить не надо. Как это можно сделать посоветуйте пожалуйста

   //---------------------------------------------------------------
   //ВЫВОД В ОТЧЕТ
   //ФОРМИРОВАНИЕ МАКЕТА
   //---------------------------------------------------------------
   НовНеявкиОрганизаций.Сортировать("Сотрудник,НомерМесяца,НомерГода");    
   ИтогоЗаГодКолПотерь=0;
   сч = 0;
   колСтрок=НовНеявкиОрганизаций.Количество();
   Для Каждого СтрокаТаблицыЗначений Из НовНеявкиОрганизаций Цикл
       Сотрудник = СтрокаТаблицыЗначений.Сотрудник ;
       Прервать;
   КонецЦикла;

   
   ОтчетПоДнямНеВключеннымВЛьготныйСтаж = Новый ТабличныйДокумент();
   
   Макет = ПолучитьМакет("ДниНеВключенныеВЛьготныйСтаж");
   Область = Макет.ПолучитьОбласть("Заголовок");
   Область.Параметры.Период = "за период "+Формат(НачПериода, "ДЛФ=Д")+"-"+Формат(КонПериода, "ДЛФ=Д")+" по ООО СМЗ";
   ОтчетПоДнямНеВключеннымВЛьготныйСтаж.Вывести(Область);
   Область = Макет.ПолучитьОбласть("Шапка");
   ОтчетПоДнямНеВключеннымВЛьготныйСтаж.Вывести(Область);
   //ФОРМИРОВАНИЕ ДАННЫХ ДЛЯ МАКЕТА
       Для Каждого СтрокаТаблицыЗначений Из НовНеявкиОрганизаций Цикл
       //    //   выводим на печать
       //    //--------------------------------------------------------------
       строкаСотрудник=СтрокаТаблицыЗначений.Сотрудник;
       сч = сч+1; //Считаем номер записи по порядку
       Если Сотрудник <> СтрокаТаблицыЗначений.Сотрудник или сч = 1  Тогда
   //        Область = Макет.ПолучитьОбласть("Шапка");
   //        ОтчетПоДнямНеВключеннымВЛьготныйСтаж.Вывести(Область);
   //
           // выводим ФИО
           Область = Макет.ПолучитьОбласть("ФИО");
           Область.Параметры.ФИО = СтрокаТаблицыЗначений.Сотрудник;
           Область.Параметры.Сотрудник=СтрокаТаблицыЗначений.Сотрудник.ФизЛицо.СтраховойНомерПФР+Символы.ПС+СтрокаТаблицыЗначений.Сотрудник.Должность;
           Область.ПолеСверху = 3;      
           Область.ПолеСнизу = 3;
           ОтчетПоДнямНеВключеннымВЛьготныйСтаж.Вывести(Область);
           ИтогоЗаГодКолПотерь=0;
           //выводим строку
           Область = Макет.ПолучитьОбласть("Строка");
           Для каждого стрТЗ из НовНеявкиОрганизаций цикл
               Если    стрТЗ.Сотрудник=строкаСотрудник Тогда
                   //Считаем итог за год по сотруднику
                   ИтогоЗаГодКолПотерь = ИтогоЗаГодКолПотерь+стрТЗ.КоличествоПотерь;
                   Потери="Потери"+стрТЗ.НомерМесяца;
                   Строка="Стр"+стрТЗ.НомерМесяца;
                   Область.Параметры[Потери]= стрТЗ.КоличествоПотерь;
                   Область.Параметры[Строка]= стрТЗ.СтрокаПФР;
               КонецЕсли;
           КонецЦикла;
           Область.ПолеСверху = 3;
           Область.ПолеСнизу = 3;
           ОтчетПоДнямНеВключеннымВЛьготныйСтаж.Вывести(Область);
           //выводим данные в отчет
           Область = Макет.ПолучитьОбласть("Итог");
           Область.Параметры.итог=ИтогоЗаГодКолПотерь;
           Область.ПолеСверху = 3;
           Область.ПолеСнизу = 3;
           ОтчетПоДнямНеВключеннымВЛьготныйСтаж.Вывести(Область);
           //обнуляем
           ИтогоЗаГодКолПотерь=0;
       КонецЕсли;
       Сотрудник = СтрокаТаблицыЗначений.Сотрудник;
       ОтчетПоДнямНеВключеннымВЛьготныйСтаж.ВывестиГоризонтальныйРазделительСтраниц();
       
   КонецЦикла;
   
       ОтчетПоДнямНеВключеннымВЛьготныйСтаж.ПовторятьПриПечатиСтроки = Макет.Области.Шапка;
   
   ОтчетПоДнямНеВключеннымВЛьготныйСтаж.ВывестиГоризонтальныйРазделительСтраниц();
   стр3= СтрокаТаблицыЗначений;
   Колич = ТЗВсеЛьготники.Количество();
   Если Колич>0 тогда
               Область = Макет.ПолучитьОбласть("Подзаголовок");
       Область.Параметры.Подзаголовок=" Список льготников, для которых нет вычетов из льготного стажа за указанный период";    
       ОтчетПоДнямНеВключеннымВЛьготныйСтаж.Вывести(Область);
       Для каждого стр3 из ТЗВсеЛьготники Цикл
           Область = Макет.ПолучитьОбласть("СписокЛьготниковБезВычета");
           СтрокаЛ = " "+стр3.СтраховойНомерПФР+"    "+стр3.Должность;
           Область.Параметры.Имя = стр3.Сотрудник;
           //попытка        
           //        Область.Параметры.ТН = ""+Формат(Число(стр3.ТабНом),"ЧЦ=; ЧГ=0");
           //Исключение
           //        Область.Параметры.ТН = стр3.ТабНом;
           //конецПопытки;
           Область.Параметры.СписокЛьготниковБезВычета = СтрокаЛ;
           ОтчетПоДнямНеВключеннымВЛьготныйСтаж.Вывести(Область);
       конецЦикла;
   КонецЕсли;

   
   //ВЫВОД МАКЕТА    
   ОтчетПоДнямНеВключеннымВЛьготныйСтаж.ФиксацияСверху = 6;
   ОтчетПоДнямНеВключеннымВЛьготныйСтаж.ВерхнийКолонтитул.Выводить = Истина;
   ОтчетПоДнямНеВключеннымВЛьготныйСтаж.ВерхнийКолонтитул.ТекстСлева = " "+глЗначениеПеременной("глТекущийПользователь")+" "+ТекущаяДата();
   ОтчетПоДнямНеВключеннымВЛьготныйСтаж.НижнийКолонтитул.НачальнаяСтраница = 1;
   ОтчетПоДнямНеВключеннымВЛьготныйСтаж.НижнийКолонтитул.Выводить = Истина;
   ОтчетПоДнямНеВключеннымВЛьготныйСтаж.НижнийКолонтитул.ТекстСправа = "страница [&НомерСтраницы] из [&СтраницВсего]";
   ОтчетПоДнямНеВключеннымВЛьготныйСтаж.ТолькоПросмотр = Истина;
   ОтчетПоДнямНеВключеннымВЛьготныйСтаж.Показать();
КонецПроцедуры