Имя: Пароль:
1C
1С v8
Вывод параметров на печатную форму в определенную область
0 Chuvaschow
 
11.08.15
16:42
Здравствуйте!

Подскажите, будьте добры: Есть запрос

Процедура ПЛТракториста(ТабДок, Ссылка) Экспорт
    //{{_КОНСТРУКТОР_ПЕЧАТИ(ПЛ Тракториста)
    Макет = Документы.ПутевойЛист2.ПолучитьМакет("ПутевойЛистТракториста");
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ПутевойЛист2.Ссылка,
    |    ПутевойЛист2.ВерсияДанных,
    |    ПутевойЛист2.ПометкаУдаления,
    |    ПутевойЛист2.Номер,
    |    ПутевойЛист2.Дата,
    |    ПутевойЛист2.Проведен,
    |    ПутевойЛист2.ДатаВыезда,
    |    ПутевойЛист2.ДатаПриезда,
    |    ПутевойЛист2.ЧасовРаботе,
    |    ПутевойЛист2.ЗарплатаРабота,
    |    ПутевойЛист2.ОстатокГСМВыезд,
    |    ПутевойЛист2.ОстатокГСМВозвращение,
    |    ПутевойЛист2.Выдано,
    |    ПутевойЛист2.ФактическийРасход,
    |    ПутевойЛист2.УсловныеГектары,
    |    ПутевойЛист2.ГосНомер,
    |    ПутевойЛист2.ПланВыполнен,
    |    ПутевойЛист2.ЗарплатаИтого,
    |    ПутевойЛист2.ДополнительнаяОплата,
    |    ПутевойЛист2.ЧасовНочных,
    |    ПутевойЛист2.ТонноКилометры,
    |    ПутевойЛист2.Водитель,
    |    ПутевойЛист2.Трактор,
    |    ПутевойЛист2.ПолевыеРаботы.(
    |        Ссылка,
    |        НомерСтроки,
    |        ВидРаботы,
    |        НомерПоля,
    |        Культура,
    |        Выработано,
    |        УсловныеГектарыРабота,
    |        ЗарплатаРабота,
    |        НормаВыработки,
    |        НормаРасхода,
    |        УсловныеГектары,
    |        Расценка,
    |        ЕдИзм,
    |        ПлановыйРасход,
    |        СменныхНорм,
    |        ЧасовВРаботе,
    |        ФактическийРасход,
    |        ДополнительнаяОплата,
    |        ПутевойЛист2.ПолевыеРаботы.ДополнительнаяОплата + ПутевойЛист2.ПолевыеРаботы.ЗарплатаРабота КАК ЗарплатаВсего
    |    ),
    |    ПутевойЛист2.ПрочиеРаботы.(
    |        Ссылка,
    |        НомерСтроки,
    |        ВидРаботы,
    |        НомерПоля,
    |        НавесноеОборудование,
    |        ЕдИзм,
    |        Выработано,
    |        ПлановыйРасход,
    |        УсловныеГектарыПрочие,
    |        ЗарплатаПрочие,
    |        НормаРасхода,
    |        НормаВыработки,
    |        КоличествоТн,
    |        СменныхНорм,
    |        ЧасовВРаботе,
    |        ФактическийРасход,
    |        ДополнительнаяОплата,
    |        ПутевойЛист2.ПрочиеРаботы.ДополнительнаяОплата + ПутевойЛист2.ПрочиеРаботы.ЗарплатаПрочие КАК ЗарплатаВсего
    |    ),
    |    ПутевойЛист2.СменныхНорм
    |ИЗ
    |    Документ.ПутевойЛист2 КАК ПутевойЛист2";
    Запрос.Параметры.Вставить("Ссылка", Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();

    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    Шапка = Макет.ПолучитьОбласть("Шапка");
    ТаблицаШапка = Макет.ПолучитьОбласть("ТаблицаШапка");
    ТаблицаПродолжение = Макет.ПолучитьОбласть("ТаблицаПродолжение");
    ТаблицаСтроки = Макет.ПолучитьОбласть("ТаблицаСтроки");
    Подвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьПолевыеРаботы = Макет.ПолучитьОбласть("ПолевыеРаботы");
    ОбластьПрочиеРаботы = Макет.ПолучитьОбласть("ПрочиеРаботы");

    
    ТабДок.Очистить();
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТабДок.ИмяПараметровПечати = "ПутевойЛист411_ПараметрыПечати";


    ВставлятьРазделительСтраниц = Ложь;
    Пока Выборка.Следующий() Цикл
        Если ВставлятьРазделительСтраниц Тогда
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        
        ОбластьЗаголовок.Параметры.Заполнить(Выборка);
        ТабДок.Вывести(ОбластьЗаголовок);

        Шапка.Параметры.Заполнить(Выборка);
        ТабДок.Вывести(Шапка, Выборка.Уровень());
        
        ВыборкаПолевыеРаботы = Выборка.ПолевыеРаботы.Выбрать();
        ВыборкаПрочиеРаботы = Выборка.ПрочиеРаботы.Выбрать();

        ТабДок.Вывести(ТаблицаШапка);
        
        Пока ВыборкаПолевыеРаботы.Следующий() Цикл
            ОбластьПолевыеРаботы.Параметры.Заполнить(ВыборкаПолевыеРаботы);
            ТабДок.Вывести(ОбластьПолевыеРаботы, ВыборкаПолевыеРаботы.Уровень());
        КонецЦикла;
        
        Пока ВыборкаПрочиеРаботы.Следующий() Цикл
            ОбластьПрочиеРаботы.Параметры.Заполнить(ВыборкаПрочиеРаботы);
            ТабДок.Вывести(ОбластьПрочиеРаботы, ВыборкаПрочиеРаботы.Уровень());
        КонецЦикла;

        
        //ДатаВыезда = Выборка.ДатаВыезда;
        //ОбластьПолевыеРаботы.Параметры.ДатаВыезда = ДатаВыезда;
        
        ТабДок.Вывести(ТаблицаСтроки);
        
        ТаблицаПродолжение.Параметры.Заполнить(Выборка);
        ТабДок.Вывести(ТаблицаПродолжение, Выборка.Уровень());
                    
        Подвал.Параметры.Заполнить(Выборка);
        ТабДок.Вывести(Подвал);

        ВставлятьРазделительСтраниц = Истина;
    КонецЦикла;
    //}}
КонецПроцедуры

Вот макет http://sendimage.me/dW174ywi

В макете в область "ПолевыеРаботы" и "ПрочиеРаботы" пишутся параметры из запроса Выборка.ПолевыеРаботы и Выборка.ПрочиеРаботы соответственно. Необходимо в параметр "ДатаВыезда" в этих областях прописать ДатаВыезда из реквизитов документа, т.е. из запроса Выборка, из реквизитов самого документа.

В комментариях в коде вариант, который я пробовал - не отработал...
1 KrabCore
 
11.08.15
16:45
Пока ВыборкаПолевыеРаботы.Следующий() Цикл
        ОбластьПолевыеРаботы.Параметры.Заполнить(ВыборкаПолевыеРаботы);
        ОбластьПолевыеРаботы.Параметры.ДатаВыезда = Выборка.ДатаВыезда;
        ТабДок.Вывести(ОбластьПолевыеРаботы, ВыборкаПолевыеРаботы.Уровень());
    КонецЦикла;
2 Chuvaschow
 
11.08.15
16:49
Вот ведь :) Простите за тупые вопросы  спасибо огромное!
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс