Имя: Пароль:
1C
 
Не заполняются параметры макета ВПФ
0 Filkkore
 
17.06.20
08:58
ЗУП 3.1

Требуется вывести на макет несколько параметров, сделал запрос с заполнением данных ВТ, тот ничего не выводит... Объясните пожалуйста, что я сделал не так.

КОД:

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

Функция СоздатьДокумент(МассивОбъектов, ОбъектыПечати)
    
    ТабДок = Новый ТабличныйДокумент;
    
    Выборка = ЗапросДляПечати(МассивОбъектов).Выбрать();
    
    Макет = ПолучитьМакет("Макет");
    
    ОбластьДокумент = Макет.ПолучитьОбласть("Документ");
    
    ОбластьДокумент.Параметры.Должность = Выборка.Должность;
    ОбластьДокумент.Параметры.ФИОПолные = Выборка.ФИОПолные;
    ОбластьДокумент.Параметры.ИОФамилия = Выборка.ИОФамилия;
    ОбластьДокумент.Параметры.Дата = Выборка.Дата;
    Табдок.Вывести(ОбластьДокумент);
    
    Возврат Табдок;
    
КонецФункции

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ЭТК") Тогда
    
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ЭТК",
        "Заявления о предоставлении сведений о трудовой деятельности (внешняя печатная форма)",
        СоздатьДокумент(МассивОбъектов, ОбъектыПечати),,"Макет");
    
    КонецЕсли;

КонецПроцедуры
1 Ёпрст
 
17.06.20
09:01
(0)
для начала, вот это условие хотя бы выполняется ?

Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ЭТК")
2 SleepyHead
 
гуру
17.06.20
09:01
Выборка = ЗапросДляПечати(МассивОбъектов).Выбрать();

После этого Выборка.Следующий()
хотя бы 1 раз. А вообще столько раз, сколько строк в выборке. Обычно это делают циклом, но я не вполне понимаю, сколько у тебя строк может быть.
3 Filkkore
 
17.06.20
09:07
(1) Ну так макет-то выводится
4 Filkkore
 
17.06.20
09:08
(2) Спасибо большое, реально помогло, чёт совсем уже забываю про какие-то элементарные вещи...
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн