Имя: Пароль:
1C
1С v8
вывод значений в ячейку (параметр или шаблон)
0 Kansk1c
 
28.08.18
07:19
Добрый день!Подскажите, пожалуйста, как вывести по отдельности ФИО студентов в разные ячейки таблицы ? тут есть только вывод в строку все фио.





////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ПЕЧАТИ ФОРМЫ

// Процедура формирует и выводит печатную форму документа по указанному макету.
//
// Параметры:
//    ТабличныйДокумент - ТабличныйДокумент в который будет выводится печатная
//                   форма.
//  ИмяМакета    - Строка, имя макета печатной формы.
//
Функция ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, ИмяМакета,ПараметрыПечати=Неопределено)
    
    ТабличныйДокумент = Новый ТабличныйДокумент;
    
    ПервыйДокумент = Истина;
    
    Для Каждого ТекущийДокумент Из МассивОбъектов Цикл
        
        Если Не ПервыйДокумент Тогда
            ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        ПервыйДокумент = Ложь;
        
        НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
        
        Если ИмяМакета = "ПриказОПрохожденииПрактикиБезСписка" Тогда
            
            Запрос=Новый Запрос;
            Запрос.Текст="ВЫБРАТЬ
                         |    ПриказПоПрактике.Ссылка,
                         |    ПриказПоПрактике.ПометкаУдаления,
                         |    ПриказПоПрактике.Номер,
                         |    ПриказПоПрактике.Дата,
                         |    ПриказПоПрактике.Проведен,
                         |    ПриказПоПрактике.Организация,
                         |    ПриказПоПрактике.Группа Как УчебнаяГруппа,
                         |    ПриказПоПрактике.ВидПрактики,
                         |    ПриказПоПрактике.УчебныйПериод,
                         |    ПриказПоПрактике.ДатаНачала,
                         |    ПриказПоПрактике.ДатаОкончания,
                         |    ПриказПоПрактике.РуководительПрактики,
                         |    ПриказПоПрактике.Ответственный,
                         |    ПриказПоПрактике.Комментарий,
                         |    ПриказПоПрактике.Утвержден,
                         |    ПриказПоПрактике.РуководительПрактики.Физлицо.Пол КАК РуководительПрактикиПол,
                         |    ПриказПоПрактике.РегистрационныйНомер,
                         |    ПриказПоПрактике.ПрофМодуль
                         |ИЗ
                         |    Документ.ПриказПоПрактике КАК ПриказПоПрактике
                         |ГДЕ
                         |    ПриказПоПрактике.Ссылка = &ТекущийДокумент";
            Запрос.УстановитьПараметр("ТекущийДокумент",ТекущийДокумент);
            Шапка=Запрос.Выполнить().Выбрать();
            Шапка.Следующий();
            
            
            ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПриказОПрохожденииПрактики_ПриказОПрохожденииПрактикиБезСписка";
            Макет = УправлениеПечатью.ПолучитьМакет("Документ.ПриказПоПрактике.ПФ_MXL_ПриказОПрохожденииПрактикиБезСписка");
            ВыводОбщейШапки=Константы.ИспользоватьОбщуюШапкуПриказа.Получить();
            Если ВыводОбщейШапки Тогда
                МакетШапки =  УправлениеПечатью.ПолучитьМакет("ОбщийМакет.ПФ_MXL_ОбщаяШапкаПриказа");
                ОбластьМакета = МакетШапки.ПолучитьОбласть("Шапка");
                //ОбластьМакета.УдалитьОбласть(Шапка.Область("УчебнаяГруппаИПериод"),ТипСмещенияТабличногоДокумента.ПоГоризонтали);
                ОбластьМакета.УдалитьОбласть(ОбластьМакета.Область("Общежитие"),ТипСмещенияТабличногоДокумента.ПоГоризонтали);    
                ДанныеКартинки = РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайлаИДвоичныеДанные(ТекущийДокумент.Организация.ФайлЛоготип);
                Если ЗначениеЗаполнено(ДанныеКартинки.ДвоичныеДанные) Тогда
                    Попытка
                        ОбластьМакета.Рисунки.Логотип.Картинка = Новый Картинка(ДанныеКартинки.ДвоичныеДанные);
                    Исключение
                    КонецПопытки;
                КонецЕсли;
                ОбластьМакета.Параметры.Заполнить(Шапка);
                ОбластьМакета.Параметры.Формулировка="В соответствии с графиком учебного процесса приказываю "+Символы.ПС+"1. Направить на практику "+Шапка.ВидПрактики+ " по "+Шапка.ПрофМодуль+Символы.ПС+"Продолжительность практики с "+Формат(Шапка.ДатаНачала,"ДФ=dd.MM.yyyy")+" по "+Формат(Шапка.ДатаОкончания,"ДФ=dd.MM.yyyy")+Символы.ПС+"2. Руководителем практики назначить "+Шапка.РуководительПрактики.ФизЛицо.ФИОВинительныйПадеж+".";
                
            Иначе
                ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
                Если СтрДлина(СокрЛП(Шапка.ПрофМодуль))=0 Тогда
                    ОбластьМакета.Параметры.ВидПрактики= Шапка.ВидПрактики;
                Иначе
                    ОбластьМакета.Параметры.ВидПрактики= ""+Шапка.ВидПрактики+ " по "+Шапка.ПрофМодуль;
                КонецЕсли;
                ОбластьМакета.Параметры.Группа=Шапка.УчебнаяГруппа;
                ОбластьМакета.Параметры.Специальность=Шапка.УчебнаяГруппа.Специальность;
                ОбластьМакета.Параметры.ДатаНачала=Формат(Шапка.ДатаНачала,"ДФ=dd.MM.yyyy");
                ОбластьМакета.Параметры.ДатаОкончания=Формат(Шапка.ДатаОкончания,"ДФ=dd.MM.yyyy");
                Результат="";      
                
                ОбластьМакета.Параметры.РуководительПрактики=Шапка.РуководительПрактики.ФизЛицо.ФИОВинительныйПадеж;        
            КонецЕсли;
            Если Константы.ФункциональнаяОпцияИспользоватьРегистрационныеНомераПриказов.Получить() Тогда
                Если Шапка.РегистрационныйНомер.Пустая() Тогда
                    ОбластьМакета.Параметры.Номер = Шапка.Номер;
                    ОбластьМакета.Параметры.Дата = Формат(Шапка.Дата,"ДФ=dd.MM.yyyy");
                Иначе
                    ОбластьМакета.Параметры.Номер = Шапка.РегистрационныйНомер.Код;
                    ОбластьМакета.Параметры.Дата = Формат(Шапка.РегистрационныйНомер.ДатаРегистрации,"ДФ=dd.MM.yyyy");
                КонецЕсли;
            Иначе
                ОбластьМакета.Параметры.Номер = Шапка.Номер;
                ОбластьМакета.Параметры.Дата = Формат(Шапка.Дата,"ДФ=dd.MM.yyyy");
            КонецЕсли;
            ОбластьМакета.Параметры.ОрганизацияНаименованиеПолное =Шапка.Организация.НаименованиеПолное ;
            ТабличныйДокумент.Вывести(ОбластьМакета);
            СтрокаПодписи = Макет.ПолучитьОбласть("СтрокаПодписи");
            
            Для Каждого Стр Из ТекущийДокумент.Подписи Цикл
                СтрокаПодписи.Параметры.Должность=Стр.Должность;
                СтрокаПодписи.Параметры.Сотрудник=Стр.Сотрудник;
                ТабличныйДокумент.Вывести(СтрокаПодписи);
                
            КонецЦикла;
        ИначеЕсли ИмяМакета = "ПриказОПрохожденииПрактики" Тогда
            Запрос=Новый Запрос;
            Запрос.Текст="ВЫБРАТЬ
                         |    ПриказПоПрактике.Ссылка,
                         |    ПриказПоПрактике.ПометкаУдаления,
                         |    ПриказПоПрактике.Номер,
                         |    ПриказПоПрактике.Дата,
                         |    ПриказПоПрактике.Проведен,
                         |    ПриказПоПрактике.Организация,
                         |    ПриказПоПрактике.Группа Как УчебнаяГруппа,
                         |    ПриказПоПрактике.ВидПрактики,
                         |    ПриказПоПрактике.УчебныйПериод,
                         |    ПриказПоПрактике.ДатаНачала,
                         |    ПриказПоПрактике.ДатаОкончания,
                         |    ПриказПоПрактике.РуководительПрактики,
                         |    ПриказПоПрактике.Ответственный,
                         |    ПриказПоПрактике.Комментарий,
                         |    ПриказПоПрактике.Утвержден,
                         |    ПриказПоПрактике.РаспределениеПрактикантов.(
                         |        Ссылка,
                         |        НомерСтроки,
                         |        Студент,
                         |        Контрагент,
                         |        Договор,
                         |        РуководительПрактикиОтКонтрагента
                         |    ),
                         |    ПриказПоПрактике.РуководительПрактики.Физлицо.Пол КАК РуководительПрактикиПол,
                         |    ПриказПоПрактике.РегистрационныйНомер,
                         |    ПриказПоПрактике.ПрофМодуль
                         |ИЗ
                         |    Документ.ПриказПоПрактике КАК ПриказПоПрактике
                         |ГДЕ
                         |    ПриказПоПрактике.Ссылка = &ТекущийДокумент";
            Запрос.УстановитьПараметр("ТекущийДокумент",ТекущийДокумент);
            Шапка=Запрос.Выполнить().Выбрать();
            Шапка.Следующий();
            
            СписокСтудентов = Шапка.РаспределениеПрактикантов.Выбрать();
            
            ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПриказОПрохожденииПрактики_ПриказОПрохожденииПрактики";
            
            Макет = УправлениеПечатью.ПолучитьМакет("Документ.ПриказПоПрактике.ПФ_MXL_ПриказОПрохожденииПрактики");
            ВыводОбщейШапки=Константы.ИспользоватьОбщуюШапкуПриказа.Получить();
            Если ВыводОбщейШапки Тогда
                МакетШапки =  УправлениеПечатью.ПолучитьМакет("ОбщийМакет.ПФ_MXL_ОбщаяШапкаПриказа");
                ОбластьМакета = МакетШапки.ПолучитьОбласть("Шапка");
                //ОбластьМакета.УдалитьОбласть(Шапка.Область("УчебнаяГруппаИПериод"),ТипСмещенияТабличногоДокумента.ПоГоризонтали);
                ОбластьМакета.УдалитьОбласть(ОбластьМакета.Область("Общежитие"),ТипСмещенияТабличногоДокумента.ПоГоризонтали);    
                ДанныеКартинки = РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайлаИДвоичныеДанные(ТекущийДокумент.Организация.ФайлЛоготип);
                Если ЗначениеЗаполнено(ДанныеКартинки.ДвоичныеДанные) Тогда
                    Попытка
                        ОбластьМакета.Рисунки.Логотип.Картинка = Новый Картинка(ДанныеКартинки.ДвоичныеДанные);
                    Исключение
                    КонецПопытки;
                КонецЕсли;
                ОбластьМакета.Параметры.Заполнить(Шапка);
                ОбластьМакета.Параметры.Формулировка="В соответствии с графиком учебного процесса приказываю "+Символы.ПС+"1. Направить на практику "+Шапка.ВидПрактики+ " по "+Шапка.ПрофМодуль+Символы.ПС+"студентов учебной группы "+Шапка.УчебнаяГруппа+Символы.ПС+"Продолжительность практики с "+Формат(Шапка.ДатаНачала,"ДФ=dd.MM.yyyy")+" по "+Формат(Шапка.ДатаОкончания,"ДФ=dd.MM.yyyy")+Символы.ПС+"2. Руководителем практики назначить "+Шапка.РуководительПрактики.ФизЛицо.ФИОВинительныйПадеж+".";
                
            Иначе
                ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
                Если СтрДлина(СокрЛП(Шапка.ПрофМодуль))=0 Тогда
                    ОбластьМакета.Параметры.ВидПрактики= Шапка.ВидПрактики;
                Иначе
                    ОбластьМакета.Параметры.ВидПрактики= ""+Шапка.ВидПрактики+ " по "+Шапка.ПрофМодуль;
                КонецЕсли;
                ОбластьМакета.Параметры.Группа=Шапка.УчебнаяГруппа;
                ОбластьМакета.Параметры.Специальность=Шапка.УчебнаяГруппа.Специальность;
                ОбластьМакета.Параметры.ДатаНачала=Формат(Шапка.ДатаНачала,"ДФ=dd.MM.yyyy");
                ОбластьМакета.Параметры.ДатаОкончания=Формат(Шапка.ДатаОкончания,"ДФ=dd.MM.yyyy");
                Результат="";      
                
                ОбластьМакета.Параметры.РуководительПрактики=Шапка.РуководительПрактики.ФизЛицо.ФИОВинительныйПадеж;        
            КонецЕсли;
            Если Константы.ФункциональнаяОпцияИспользоватьРегистрационныеНомераПриказов.Получить() Тогда
                Если Шапка.РегистрационныйНомер.Пустая() Тогда
                    ОбластьМакета.Параметры.Номер = Шапка.Номер;
                    ОбластьМакета.Параметры.Дата = Формат(Шапка.Дата,"ДФ=dd.MM.yyyy");
                Иначе
                    ОбластьМакета.Параметры.Номер = Шапка.РегистрационныйНомер.Код;
                    ОбластьМакета.Параметры.Дата = Формат(Шапка.РегистрационныйНомер.ДатаРегистрации,"ДФ=dd.MM.yyyy");
                КонецЕсли;
            Иначе
                ОбластьМакета.Параметры.Номер = Шапка.Номер;
                ОбластьМакета.Параметры.Дата = Формат(Шапка.Дата,"ДФ=dd.MM.yyyy");
            КонецЕсли;
            ОбластьМакета.Параметры.ОрганизацияНаименованиеПолное =Шапка.Организация.НаименованиеПолное ;
            ТабличныйДокумент.Вывести(ОбластьМакета);
            СтрокаПодписи = Макет.ПолучитьОбласть("СтрокаПодписи");
            
            ОбластьМакета = Макет.ПолучитьОбласть("Шапка2");
            ТабличныйДокумент.Вывести(ОбластьМакета);
            
            ОбластьМакета = Макет.ПолучитьОбласть("Строка");
            ПП=1;
            ЕстьОценки=Ложь;
            Пока СписокСтудентов.Следующий() Цикл
                
                ОбластьМакета.Параметры.ФИО=СписокСтудентов.Студент;
                ОбластьМакета.Параметры.Предприятие=СписокСтудентов.Контрагент;
                ОбластьМакета.Параметры.Номер=ПП;
                ОбластьМакета.Параметры.Договор = СписокСтудентов.Договор;
                ОбластьМакета.Параметры.РуководительПрактикиОтКонтрагента = СписокСтудентов.РуководительПрактикиОтКонтрагента;
                ТабличныйДокумент.Вывести(ОбластьМакета);
                
                ПП = ПП + 1;
                
            КонецЦикла;
            Для Каждого Стр Из ТекущийДокумент.Подписи Цикл
                СтрокаПодписи.Параметры.Должность=Стр.Должность;
                СтрокаПодписи.Параметры.Сотрудник=Стр.Сотрудник;
                ТабличныйДокумент.Вывести(СтрокаПодписи);
                
            КонецЦикла;
        ИначеЕсли ИмяМакета = "ЗаданияВсе" Тогда
            Для Каждого Стр Из ТекущийДокумент.Подписи Цикл
                Должность=Стр.Должность;
                Сотрудник=Стр.Сотрудник;
                Продолжить;
            КонецЦикла;
            Запрос=Новый Запрос;
            Запрос.Текст="ВЫБРАТЬ
            |    ПриказПоПрактикеРаспределениеПрактикантов.Студент,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Организация,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Группа,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ДатаНачала,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ДатаОкончания,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.РуководительПрактики КАК Руководитель,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Группа.Специальность КАК Специальность,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Группа.Специальность.Код КАК КодСпециальности,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ВидПрактики КАК НаименованиеПрактики
            |ИЗ
            |    Документ.ПриказПоПрактике.РаспределениеПрактикантов КАК ПриказПоПрактикеРаспределениеПрактикантов
            |ГДЕ
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка = &ТекущийДокумент";
            Запрос.УстановитьПараметр("ТекущийДокумент",ТекущийДокумент);
            Шапка=Запрос.Выполнить().Выбрать();
            Пока Шапка.Следующий() Цикл
                
                ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПриказОПрохожденииПрактики_ЗаданияВсе";
                
                Макет = УправлениеПечатью.ПолучитьМакет("Документ.ПриказПоПрактике.ПФ_MXL_ЗаданияВсе");
                        
                
                ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
                ОбластьМакета.Параметры.Должность=Должность;
                ОбластьМакета.Параметры.ФИО=Сотрудник;
                ОбластьМакета.Параметры.Заполнить(Шапка);
                ОбластьМакета.Параметры.ДатаНачала=Формат(Шапка.ДатаНачала,"ДФ=dd.MM.yyyy");
                ОбластьМакета.Параметры.ДатаОкончания=Формат(Шапка.ДатаОкончания,"ДФ=dd.MM.yyyy");
                ОбластьМакета.Параметры.Год=""+Формат(Шапка.ДатаНачала,"ДФ=гггг")+" г.";
                ТабличныйДокумент.Вывести(ОбластьМакета);
                ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            КонецЦикла;
        ИначеЕсли ИмяМакета = "ЗаданиеОдно" Тогда
            Для Каждого Стр Из ТекущийДокумент.Подписи Цикл
                Должность=Стр.Должность;
                Сотрудник=Стр.Сотрудник;
                Продолжить;
            КонецЦикла;
            Запрос=Новый Запрос;
            Запрос.Текст="ВЫБРАТЬ
            |    ПриказПоПрактикеРаспределениеПрактикантов.Студент,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Организация,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Группа,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ДатаНачала,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ДатаОкончания,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.РуководительПрактики КАК Руководитель,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Группа.Специальность КАК Специальность,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Группа.Специальность.Код КАК КодСпециальности,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ВидПрактики КАК НаименованиеПрактики
            |ИЗ
            |    Документ.ПриказПоПрактике.РаспределениеПрактикантов КАК ПриказПоПрактикеРаспределениеПрактикантов
            |ГДЕ
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка = &ТекущийДокумент
            |    И ПриказПоПрактикеРаспределениеПрактикантов.НомерСтроки = &НомерСтроки";
            Запрос.УстановитьПараметр("ТекущийДокумент",ТекущийДокумент);
            Запрос.УстановитьПараметр("НомерСтроки",ПараметрыПечати);
            Шапка=Запрос.Выполнить().Выбрать();
            Пока Шапка.Следующий() Цикл
                
                ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПриказОПрохожденииПрактики_ЗаданияВсе";
                
                Макет = УправлениеПечатью.ПолучитьМакет("Документ.ПриказПоПрактике.ПФ_MXL_ЗаданияВсе");
                
                
                ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
                ОбластьМакета.Параметры.Должность=Должность;
                ОбластьМакета.Параметры.ФИО=Сотрудник;
                ОбластьМакета.Параметры.Заполнить(Шапка);
                ОбластьМакета.Параметры.ДатаНачала=Формат(Шапка.ДатаНачала,"ДФ=dd.MM.yyyy");
                ОбластьМакета.Параметры.ДатаОкончания=Формат(Шапка.ДатаОкончания,"ДФ=dd.MM.yyyy");
                ОбластьМакета.Параметры.Год=""+Формат(Шапка.ДатаНачала,"ДФ=гггг")+" г.";
                ТабличныйДокумент.Вывести(ОбластьМакета);
                ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            КонецЦикла;
            
        ИначеЕсли ИмяМакета = "ДневникиВсе" Тогда
            Запрос=Новый Запрос;
            Запрос.Текст="ВЫБРАТЬ
            |    ПриказПоПрактикеРаспределениеПрактикантов.Студент,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Организация КАК НазваниеУчебногоЗаведения,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Группа,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ДатаНачала,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ДатаОкончания,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.РуководительПрактики КАК Руководитель,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Группа.Специальность КАК Специальность,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ВидПрактики КАК НаименованиеПрактики
            |ИЗ
            |    Документ.ПриказПоПрактике.РаспределениеПрактикантов КАК ПриказПоПрактикеРаспределениеПрактикантов
            |ГДЕ
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка = &ТекущийДокумент";
            Запрос.УстановитьПараметр("ТекущийДокумент",ТекущийДокумент);
            Шапка=Запрос.Выполнить().Выбрать();
            Пока Шапка.Следующий() Цикл
                
                ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПриказОПрохожденииПрактики_ДневникиВсе";
                
                Макет = УправлениеПечатью.ПолучитьМакет("Документ.ПриказПоПрактике.ПФ_MXL_ДневникиВсе");
                
                ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
                ОбластьМакета.Параметры.Заполнить(Шапка);
                ОбластьМакета.Параметры.ДатаНачала=Формат(Шапка.ДатаНачала,"ДФ=dd.MM.yyyy");
                ОбластьМакета.Параметры.ДатаОкончания=Формат(Шапка.ДатаОкончания,"ДФ=dd.MM.yyyy");
                ТабличныйДокумент.Вывести(ОбластьМакета);
                ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            КонецЦикла;
        ИначеЕсли ИмяМакета = "ДневникОдин" Тогда
            Запрос=Новый Запрос;
            Запрос.Текст="ВЫБРАТЬ
            |    ПриказПоПрактикеРаспределениеПрактикантов.Студент,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Организация КАК НазваниеУчебногоЗаведения,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Группа,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ДатаНачала,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ДатаОкончания,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.РуководительПрактики КАК Руководитель,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Группа.Специальность КАК Специальность,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ВидПрактики КАК НаименованиеПрактики
            |ИЗ
            |    Документ.ПриказПоПрактике.РаспределениеПрактикантов КАК ПриказПоПрактикеРаспределениеПрактикантов
            |ГДЕ
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка = &ТекущийДокумент
            |    И ПриказПоПрактикеРаспределениеПрактикантов.НомерСтроки = &НомерСтроки";
            Запрос.УстановитьПараметр("ТекущийДокумент",ТекущийДокумент);
            Запрос.УстановитьПараметр("НомерСтроки",ПараметрыПечати);
            Шапка=Запрос.Выполнить().Выбрать();
            Пока Шапка.Следующий() Цикл
                
                ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПриказОПрохожденииПрактики_ДневникиВсе";
                
                Макет = УправлениеПечатью.ПолучитьМакет("Документ.ПриказПоПрактике.ПФ_MXL_ДневникиВсе");
                
                
                ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
                ОбластьМакета.Параметры.Заполнить(Шапка);
                ОбластьМакета.Параметры.ДатаНачала=Формат(Шапка.ДатаНачала,"ДФ=dd.MM.yyyy");
                ОбластьМакета.Параметры.ДатаОкончания=Формат(Шапка.ДатаОкончания,"ДФ=dd.MM.yyyy");
                ТабличныйДокумент.Вывести(ОбластьМакета);
                ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            КонецЦикла;
        ИначеЕсли ИмяМакета = "НаправленияВсе" Тогда
            Запрос=Новый Запрос;
            Запрос.Текст="ВЫБРАТЬ
            |    ПриказПоПрактикеРаспределениеПрактикантов.Студент,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Организация,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Номер Как Приказ,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Группа,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ДатаНачала,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ДатаОкончания,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.РуководительПрактики КАК РуководительПрактики,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Группа.Специальность КАК Специальность,
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ВидПрактики КАК ВидПрактики
            |ИЗ
            |    Документ.ПриказПоПрактике.РаспределениеПрактикантов КАК ПриказПоПрактикеРаспределениеПрактикантов
            |ГДЕ
            |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка = &ТекущийДокумент";
            Запрос.УстановитьПараметр("ТекущийДокумент",ТекущийДокумент);
            Шапка=Запрос.Выполнить().Выбрать();
            ПервыйПроход=Истина;
            НомСтроки=1;
            ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПриказОПрохожденииПрактики_НаправленияВсе";
            Макет = УправлениеПечатью.ПолучитьМакет("Документ.ПриказПоПрактике.ПФ_MXL_НаправленияВсе");
            ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
            СтрокаМакета = Макет.ПолучитьОбласть("Строка");
            СтрокаПодписи = Макет.ПолучитьОбласть("СтрокаПодписи");
            Пока Шапка.Следующий() Цикл
                Если ПервыйПроход=Истина Тогда
                    ОбластьМакета.Параметры.Заполнить(Шапка);
                    ОбластьМакета.Параметры.ДатаНачала=Формат(Шапка.ДатаНачала,"ДФ=dd.MM.yyyy");
                    ОбластьМакета.Параметры.ДатаОкончания=Формат(Шапка.ДатаОкончания,"ДФ=dd.MM.yyyy");
                    ОбластьМакета.Параметры.РуководительПрактики=Шапка.РуководительПрактики.ФизЛицо.ФИОВинительныйПадеж;
                    ТабличныйДокумент.Вывести(ОбластьМакета);
                    СтрокаМакета.Параметры.НомСтроки=НомСтроки;
                    СтрокаМакета.Параметры.Студент=Шапка.Студент;
                    ТабличныйДокумент.Вывести(СтрокаМакета);
                    ПервыйПроход=Ложь;
                Иначе
                    СтрокаМакета.Параметры.НомСтроки=НомСтроки;
                    СтрокаМакета.Параметры.Студент=Шапка.Студент;
                    ТабличныйДокумент.Вывести(СтрокаМакета);
                КонецЕсли;
                НомСтроки=НомСтроки+1;
            КонецЦикла;
            
            Для Каждого Стр Из ТекущийДокумент.Подписи Цикл
                СтрокаПодписи.Параметры.Должность=Стр.Должность;
                СтрокаПодписи.Параметры.Сотрудник=Стр.Сотрудник;
                ТабличныйДокумент.Вывести(СтрокаПодписи);
                
            КонецЦикла;
            
        ИначеЕсли ИмяМакета = "НаправлениеОдно" Тогда
            Запрос=Новый Запрос;
            Запрос.Текст="ВЫБРАТЬ
                         |    ПриказПоПрактикеРаспределениеПрактикантов.Контрагент,
                         |    ПриказПоПрактикеРаспределениеПрактикантов.Студент,
                         |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Организация,
                         |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Номер Как Приказ,
                         |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Группа,
                         |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ДатаНачала,
                         |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ДатаОкончания,
                         |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.РуководительПрактики КАК РуководительПрактики,
                         |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.Группа.Специальность КАК Специальность,
                         |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка.ВидПрактики КАК ВидПрактики
                         |ИЗ
                         |    Документ.ПриказПоПрактике.РаспределениеПрактикантов КАК ПриказПоПрактикеРаспределениеПрактикантов
                         |ГДЕ
                         |    ПриказПоПрактикеРаспределениеПрактикантов.Ссылка = &ТекущийДокумент
                         |    И ПриказПоПрактикеРаспределениеПрактикантов.НомерСтроки = &НомерСтроки";
            Запрос.УстановитьПараметр("ТекущийДокумент",ТекущийДокумент);
            Запрос.УстановитьПараметр("НомерСтроки",ПараметрыПечати);
            Шапка=Запрос.Выполнить().Выбрать();
            Пока Шапка.Следующий() Цикл
                
                ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПриказОПрохожденииПрактики_НаправлениеОдно";
                
                Макет = УправлениеПечатью.ПолучитьМакет("Документ.ПриказПоПрактике.ПФ_MXL_НаправлениеОдно");
                ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
                СтрокаПодписи = Макет.ПолучитьОбласть("СтрокаПодписи");
                ОбластьМакета.Параметры.Заполнить(Шапка);
                ОбластьМакета.Параметры.РуководительПрактики=Шапка.РуководительПрактики.ФизЛицо.ФИОВинительныйПадеж;
                ОбластьМакета.Параметры.ФИО=Шапка.Студент.ФизЛицо.ФИОВинительныйПадеж;
                ОбластьМакета.Параметры.ДатаНачала=Формат(Шапка.ДатаНачала,"ДФ=dd.MM.yyyy");
                ОбластьМакета.Параметры.ДатаОкончания=Формат(Шапка.ДатаОкончания,"ДФ=dd.MM.yyyy");
                ТабличныйДокумент.Вывести(ОбластьМакета);
            КонецЦикла;
            Для Каждого Стр Из ТекущийДокумент.Подписи Цикл
                СтрокаПодписи.Параметры.Должность=Стр.Должность;
                СтрокаПодписи.Параметры.Сотрудник=Стр.Сотрудник;
                ТабличныйДокумент.Вывести(СтрокаПодписи);
                
            КонецЦикла;
        ИначеЕсли ИмяМакета = "ПереченьПредприятий" Тогда
            Запрос=Новый Запрос;
            Запрос.Текст="ВЫБРАТЬ
                         |    ПриказПоПрактике.Дата КАК ДатаПриказа,
                         |    ПриказПоПрактике.Организация,
                         |    ПриказПоПрактике.Группа,
                         |    ПриказПоПрактике.ВидПрактики,
                         |    ПриказПоПрактике.ДатаНачала,
                         |    ПриказПоПрактике.ДатаОкончания,
                         |    ПриказПоПрактике.Группа.Специальность КАК Специальность,
                         |    ПриказПоПрактике.РаспределениеПрактикантов.(
                         |        Студент КАК ФИО,
                         |        Контрагент КАК Предприятие
                         |    )
                         |ИЗ
                         |    Документ.ПриказПоПрактике КАК ПриказПоПрактике
                         |ГДЕ
                         |    ПриказПоПрактике.Ссылка = &ТекущийДокумент";
            Запрос.УстановитьПараметр("ТекущийДокумент",ТекущийДокумент);
            Запрос.УстановитьПараметр("ПустойКонтрагент",Справочники.Контрагенты.ПустаяСсылка());
            Шапка=Запрос.Выполнить().Выбрать();
            Шапка.Следующий();
                ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПриказОПрохожденииПрактики_ПереченьПредприятий";
                Макет = УправлениеПечатью.ПолучитьМакет("Документ.ПриказПоПрактике.ПФ_MXL_ПереченьПредприятий");
                ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
                ОбластьМакета.Параметры.Заполнить(Шапка);
                ОбластьМакета.Параметры.ДатаНачала=Формат(Шапка.ДатаНачала,"ДФ=dd.MM.yyyy");
                ОбластьМакета.Параметры.ДатаОкончания=Формат(Шапка.ДатаОкончания,"ДФ=dd.MM.yyyy");
                ТабличныйДокумент.Вывести(ОбластьМакета);
            СписокСтудентов=Шапка.РаспределениеПрактикантов.Выбрать();
            Ном=1;
            ОбластьМакета = Макет.ПолучитьОбласть("Строка");
            Пока СписокСтудентов.Следующий() Цикл
                Если ЗначениеЗаполнено(СписокСтудентов.Предприятие) Тогда
                ОбластьМакета.Параметры.Заполнить(СписокСтудентов);
                ОбластьМакета.Параметры.Номер=Ном;
                ТабличныйДокумент.Вывести(ОбластьМакета);
                Ном=Ном+1;
                Конецесли;
            КонецЦикла;
        ИначеЕсли ИмяМакета = "ВсеДоговора" Тогда
            Запрос=Новый Запрос;
            Запрос.Текст="ВЫБРАТЬ
                         |    ПриказПоПрактике.Дата КАК ДатаДоговора,
                         |    ПриказПоПрактике.Группа,
                         |    ПриказПоПрактике.ВидПрактики,
                         |    ПриказПоПрактике.ДатаНачала,
                         |    ПриказПоПрактике.ДатаОкончания,
                         |    ПриказПоПрактике.Группа.Специальность КАК Специальность,
                         |    ПриказПоПрактике.РаспределениеПрактикантов.(
                         |        Студент КАК ФИО,
                         |        Контрагент КАК Контрагент,
                         |        Договор
                         |    ),
                         |    Директор.Сотрудник КАК ФИО,
                         |    ПриказПоПрактике.Организация.НаименованиеПолное КАК Организация,
                         |    ПриказПоПрактике.Организация.Наименование КАК СокрНаименование,
                         |    ВложенныйЗапрос.Город,
                         |    Директор.Сотрудник.Физлицо.ФИОВинительныйПадеж КАК ФИОВинительныйПадеж
                         |ИЗ
                         |    Документ.ПриказПоПрактике КАК ПриказПоПрактике
                         |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                         |            ОрганизацииКонтактнаяИнформация.Город КАК Город,
                         |            ОрганизацииКонтактнаяИнформация.Ссылка КАК Ссылка
                         |        ИЗ
                         |            Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
                         |        ГДЕ
                         |            ОрганизацииКонтактнаяИнформация.Тип = &Тип
                         |            И ОрганизацииКонтактнаяИнформация.Вид = &Вид) КАК ВложенныйЗапрос
                         |        ПО ПриказПоПрактике.Организация = ВложенныйЗапрос.Ссылка
                         |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                         |            ОтветственныеЛицаОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
                         |            ОтветственныеЛицаОрганизацийСрезПоследних.Организация КАК Организация
                         |        ИЗ
                         |            РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних КАК ОтветственныеЛицаОрганизацийСрезПоследних
                         |        ГДЕ
                         |            ОтветственныеЛицаОрганизацийСрезПоследних.Должность = &Должность) КАК Директор
                         |        ПО ПриказПоПрактике.Организация = Директор.Организация
                         |ГДЕ
                         |    ПриказПоПрактике.Ссылка = &ТекущийДокумент";
            Запрос.УстановитьПараметр("ТекущийДокумент",ТекущийДокумент);
            Запрос.УстановитьПараметр("Должность",Справочники.Должности.Директор);
            Запрос.УстановитьПараметр("Тип",Перечисления.ТипыКонтактнойИнформации.Адрес);
            Запрос.УстановитьПараметр("Вид",Справочники.ВидыКонтактнойИнформации.ОрганизацияФактическийАдрес);
            Шапка=Запрос.Выполнить().Выбрать();
            Шапка.Следующий();
            СписокКонтрагентов=Шапка.РаспределениеПрактикантов.Выгрузить();
            СписокКонтрагентов.Свернуть("Контрагент,Договор","");
            СписокСтудентов=Шапка.РаспределениеПрактикантов.выгрузить();
            Для Каждого СтрКонтрагент Из СписокКонтрагентов Цикл
                Если НЕ ЗначениеЗаполнено(СтрКонтрагент.Контрагент) ТОгда
                Продолжить;    
                КонецЕсли;
                ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПриказОПрохожденииПрактики_ВсеДоговора";
                Макет = УправлениеПечатью.ПолучитьМакет("Документ.ПриказПоПрактике.ПФ_MXL_Договор");
                ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
                ОбластьМакета.Параметры.Заполнить(Шапка);
                ОбластьМакета.Параметры.Город=СтрЗаменить(Шапка.Город,"г","");
                ОбластьМакета.Параметры.ДатаДОговора=Формат(Шапка.ДатаДоговора,"ДФ=dd.MMMM.yyyy");
                ОбластьМакета.Параметры.ФИО=Шапка.ФИОВинительныйПадеж;
                ОбластьМакета.Пар
1 Kansk1c
 
28.08.18
07:21
данные нужно вывести в таблицу (в шапке)
2 Kansk1c
 
28.08.18
07:28
ИначеЕсли ИмяМакета = "ВсеДоговора" Тогда
            Запрос=Новый Запрос;
            Запрос.Текст="ВЫБРАТЬ
                         |    ПриказПоПрактике.Дата КАК ДатаДоговора,
                         |    ПриказПоПрактике.Группа,
                         |    ПриказПоПрактике.ВидПрактики,
                         |    ПриказПоПрактике.ДатаНачала,
                         |    ПриказПоПрактике.ДатаОкончания,
                         |    ПриказПоПрактике.Группа.Специальность КАК Специальность,
                         |    ПриказПоПрактике.РаспределениеПрактикантов.(
                         |        Студент КАК ФИО,
                         |        Контрагент КАК Контрагент,
                         |        Договор
                         |    ),
                         |    Директор.Сотрудник КАК ФИО,
                         |    ПриказПоПрактике.Организация.НаименованиеПолное КАК Организация,
                         |    ПриказПоПрактике.Организация.Наименование КАК СокрНаименование,
                         |    ВложенныйЗапрос.Город,
                         |    Директор.Сотрудник.Физлицо.ФИОВинительныйПадеж КАК ФИОВинительныйПадеж
                         |ИЗ
                         |    Документ.ПриказПоПрактике КАК ПриказПоПрактике
                         |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                         |            ОрганизацииКонтактнаяИнформация.Город КАК Город,
                         |            ОрганизацииКонтактнаяИнформация.Ссылка КАК Ссылка
                         |        ИЗ
                         |            Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
                         |        ГДЕ
                         |            ОрганизацииКонтактнаяИнформация.Тип = &Тип
                         |            И ОрганизацииКонтактнаяИнформация.Вид = &Вид) КАК ВложенныйЗапрос
                         |        ПО ПриказПоПрактике.Организация = ВложенныйЗапрос.Ссылка
                         |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                         |            ОтветственныеЛицаОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
                         |            ОтветственныеЛицаОрганизацийСрезПоследних.Организация КАК Организация
                         |        ИЗ
                         |            РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних КАК ОтветственныеЛицаОрганизацийСрезПоследних
                         |        ГДЕ
                         |            ОтветственныеЛицаОрганизацийСрезПоследних.Должность = &Должность) КАК Директор
                         |        ПО ПриказПоПрактике.Организация = Директор.Организация
                         |ГДЕ
                         |    ПриказПоПрактике.Ссылка = &ТекущийДокумент";
            Запрос.УстановитьПараметр("ТекущийДокумент",ТекущийДокумент);
            Запрос.УстановитьПараметр("Должность",Справочники.Должности.Директор);
            Запрос.УстановитьПараметр("Тип",Перечисления.ТипыКонтактнойИнформации.Адрес);
            Запрос.УстановитьПараметр("Вид",Справочники.ВидыКонтактнойИнформации.ОрганизацияФактическийАдрес);
            Шапка=Запрос.Выполнить().Выбрать();
            Шапка.Следующий();
            СписокКонтрагентов=Шапка.РаспределениеПрактикантов.Выгрузить();
            СписокКонтрагентов.Свернуть("Контрагент,Договор","");
            СписокСтудентов=Шапка.РаспределениеПрактикантов.выгрузить();
            Для Каждого СтрКонтрагент Из СписокКонтрагентов Цикл
                Если НЕ ЗначениеЗаполнено(СтрКонтрагент.Контрагент) ТОгда
                Продолжить;    
                КонецЕсли;
                ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПриказОПрохожденииПрактики_ВсеДоговора";
                Макет = УправлениеПечатью.ПолучитьМакет("Документ.ПриказПоПрактике.ПФ_MXL_Договор");
                ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
                ОбластьМакета.Параметры.Заполнить(Шапка);
                ОбластьМакета.Параметры.Город=СтрЗаменить(Шапка.Город,"г","");
                ОбластьМакета.Параметры.ДатаДОговора=Формат(Шапка.ДатаДоговора,"ДФ=dd.MMMM.yyyy");
                ОбластьМакета.Параметры.ФИО=Шапка.ФИОВинительныйПадеж;
                ОбластьМакета.Параметры.Контрагент=СтрКонтрагент.Контрагент;
                ОбластьМакета.Параметры.НомерДоговора=СтрКонтрагент.Договор;
                ТабличныйДокумент.Вывести(ОбластьМакета);
                СписокСтудентовМассив=СписокСтудентов.НайтиСтроки(Новый Структура("Контрагент",СтрКонтрагент.Контрагент));
                Ном=1;
                ОбластьМакета = Макет.ПолучитьОбласть("Строка");
                ДЛя Каждого СтрСтуденты Из СписокСтудентовМассив Цикл
                        ОбластьМакета.Параметры.Заполнить(СтрСтуденты);
                        ТабличныйДокумент.Вывести(ОбластьМакета);
                        Ном=Ном+1;
                КонецЦикла;
                ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
                ОбластьМакета.Параметры.Заполнить(Шапка);
                ОбластьМакета.Параметры.ФИО=РаботаСоСтрокамиСервер.ФамилияИнициалыФизЛица(Шапка.ФИО);
                ТабличныйДокумент.Вывести(ОбластьМакета);
                
            ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            КонецЦикла;
        ИначеЕсли ИмяМакета = "ДоговорПоКонтрагенту" Тогда
            Запрос=Новый Запрос;
            Запрос.Текст="ВЫБРАТЬ
                         |    ПриказПоПрактике.Дата КАК ДатаДоговора,
                         |    ПриказПоПрактике.Группа,
                         |    ПриказПоПрактике.ВидПрактики,
                         |    ПриказПоПрактике.ДатаНачала,
                         |    ПриказПоПрактике.ДатаОкончания,
                         |    ПриказПоПрактике.Группа.Специальность КАК Специальность,
                         |    ПриказПоПрактике.РаспределениеПрактикантов.(
                         |        Студент КАК ФИО,
                         |        Контрагент КАК Контрагент,
                         |        Договор
                         |    ),
                         |    Директор.Сотрудник.Наименование КАК ФИО,
                         |    ПриказПоПрактике.Организация.НаименованиеПолное КАК Организация,
                         |    ПриказПоПрактике.Организация.Наименование КАК СокрНаименование,
                         |    ВложенныйЗапрос.Город,
                         |    Директор.Сотрудник.Физлицо.ФИОВинительныйПадеж КАК ФИОВинительныйПадеж
                         |ИЗ
                         |    Документ.ПриказПоПрактике КАК ПриказПоПрактике
                         |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                         |            ОрганизацииКонтактнаяИнформация.Город КАК Город,
                         |            ОрганизацииКонтактнаяИнформация.Ссылка КАК Ссылка
                         |        ИЗ
                         |            Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
                         |        ГДЕ
                         |            ОрганизацииКонтактнаяИнформация.Тип = &Тип
                         |            И ОрганизацииКонтактнаяИнформация.Вид = &Вид) КАК ВложенныйЗапрос
                         |        ПО ПриказПоПрактике.Организация = ВложенныйЗапрос.Ссылка
                         |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                         |            ОтветственныеЛицаОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
                         |            ОтветственныеЛицаОрганизацийСрезПоследних.Организация КАК Организация
                         |        ИЗ
                         |            РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних КАК ОтветственныеЛицаОрганизацийСрезПоследних
                         |        ГДЕ
                         |            ОтветственныеЛицаОрганизацийСрезПоследних.Должность = &Должность) КАК Директор
                         |        ПО ПриказПоПрактике.Организация = Директор.Организация
                         |ГДЕ
                         |    ПриказПоПрактике.Ссылка = &ТекущийДокумент
                         |    И ПриказПоПрактике.РаспределениеПрактикантов.Контрагент = &Контрагент";
            Запрос.УстановитьПараметр("ТекущийДокумент",ТекущийДокумент);
            Запрос.УстановитьПараметр("Должность",Справочники.Должности.Директор);
            Запрос.УстановитьПараметр("Тип",Перечисления.ТипыКонтактнойИнформации.Адрес);
            Запрос.УстановитьПараметр("Вид",Справочники.ВидыКонтактнойИнформации.ОрганизацияФактическийАдрес);
            Запрос.УстановитьПараметр("Контрагент",ТекущийДокумент.РаспределениеПрактикантов[ПараметрыПечати-1].Контрагент);
            Шапка=Запрос.Выполнить().Выбрать();
            Шапка.Следующий();
            СписокКонтрагентов=Шапка.РаспределениеПрактикантов.Выгрузить();
            СписокКонтрагентов.Свернуть("Контрагент,Договор","");
            СписокСтудентов=Шапка.РаспределениеПрактикантов.выгрузить();
            Для Каждого СтрКонтрагент Из СписокКонтрагентов Цикл
                Если НЕ ЗначениеЗаполнено(СтрКонтрагент.Контрагент) ТОгда
                Продолжить;    
                КонецЕсли;
                ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПриказОПрохожденииПрактики_ВсеДоговора";
                Макет = УправлениеПечатью.ПолучитьМакет("Документ.ПриказПоПрактике.ПФ_MXL_Договор");
                ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
                ОбластьМакета.Параметры.Заполнить(Шапка);
                ОбластьМакета.Параметры.Город=СтрЗаменить(Шапка.Город,"г","");
                ОбластьМакета.Параметры.ДатаДОговора=Формат(Шапка.ДатаДоговора,"ДФ=dd.MMMM.yyyy");
                ОбластьМакета.Параметры.ФИО=Шапка.ФИОВинительныйПадеж;
                ОбластьМакета.Параметры.Контрагент=СтрКонтрагент.Контрагент;
                ОбластьМакета.Параметры.НомерДоговора=СтрКонтрагент.Договор;
                ТабличныйДокумент.Вывести(ОбластьМакета);
                СписокСтудентовМассив=СписокСтудентов.НайтиСтроки(Новый Структура("Контрагент",СтрКонтрагент.Контрагент));
                Ном=1;
                ОбластьМакета = Макет.ПолучитьОбласть("Строка");
                ДЛя Каждого СтрСтуденты Из СписокСтудентовМассив Цикл
                        ОбластьМакета.Параметры.Заполнить(СтрСтуденты);
                        ТабличныйДокумент.Вывести(ОбластьМакета);
                        Ном=Ном+1;
                КонецЦикла;
                ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
                ОбластьМакета.Параметры.Заполнить(Шапка);
                ОбластьМакета.Параметры.ФИО=РаботаСоСтрокамиСервер.ФамилияИнициалыФизЛица(Шапка.ФИО);
                ТабличныйДокумент.Вывести(ОбластьМакета);
                
            ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            КонецЦикла;
        КонецеСли;        
        
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ТекущийДокумент);
        
    КонецЦикла;
    
    ТабличныйДокумент.АвтоМасштаб = Истина;
    
    Возврат ТабличныйДокумент;
    
КонецФункции // ПечатнаяФорма()

// Сформировать печатные формы объектов
//
// ВХОДЯЩИЕ:
//   ИменаМакетов    - Строка    - Имена макетов, перечисленные через запятую
//   МассивОбъектов  - Массив    - Массив ссылок на объекты которые нужно распечатать
//   ПараметрыПечати - Структура - Структура дополнительных параметров печати
//
// ИСХОДЯЩИЕ:
//   КоллекцияПечатныхФорм - Таблица значений - Сформированные табличные документы
//   ПараметрыВывода       - Структура        - Параметры сформированных табличных документов
//
Процедура Печать(МассивОбъектов,
    ПараметрыПечати,
    КоллекцияПечатныхФорм,
    ОбъектыПечати,
    ПараметрыВывода) Экспорт
    
    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПриказОПрохожденииПрактики") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПриказОПрохожденииПрактики", "ПриказОПрохожденииПрактики", ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, "ПриказОПрохожденииПрактики"));
    ИначеЕсли УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПриказОПрохожденииПрактикиБезСписка") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПриказОПрохожденииПрактикиБезСписка", "ПриказОПрохожденииПрактикиБезСписка", ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, "ПриказОПрохожденииПрактикиБезСписка"));
    ИначеЕсли УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ЗаданияВсе") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ЗаданияВсе", "ЗаданияВсе", ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, "ЗаданияВсе"));
    ИначеЕсли УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ЗаданиеОдно") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ЗаданиеОдно", "ЗаданиеОдно", ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, "ЗаданиеОдно",ПараметрыПечати));
    ИначеЕсли УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ДневникиВсе") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ДневникиВсе", "ДневникиВсе", ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, "ДневникиВсе"));
    ИначеЕсли УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ДневникОдин") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ДневникОдин", "ДневникОдин", ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, "ДневникОдин",ПараметрыПечати));
    ИначеЕсли УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "НаправленияВсе") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "НаправленияВсе", "НаправленияВсе", ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, "НаправленияВсе"));
    ИначеЕсли УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "НаправлениеОдно") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "НаправлениеОдно", "НаправлениеОдно", ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, "НаправлениеОдно",ПараметрыПечати));
    ИначеЕсли УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПереченьПредприятий") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПереченьПредприятий", "ПереченьПредприятий", ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, "ПереченьПредприятий"));
    ИначеЕсли УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ВсеДоговора") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ВсеДоговора", "ВсеДоговора", ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, "ВсеДоговора"));
    ИначеЕсли УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ДоговорПоКонтрагенту") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ДоговорПоКонтрагенту", "ДоговорПоКонтрагенту", ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, "ДоговорПоКонтрагенту",ПараметрыПечати));
        
    КонецЕсли;
    
КонецПроцедуры
3 Kansk1c
 
28.08.18
07:32
прописывал |    ПриказПоПрактике.Студент, в ДоговорПоКонтрагенту , ни чего не выводится.
4 organizm
 
28.08.18
07:50
не асилил, много букаф
5 Kansk1c
 
28.08.18
08:00
вот тут что прописать , чтобы начали выводится фио студентов?

ИначеЕсли ИмяМакета = "ДоговорПоКонтрагенту" Тогда
            Запрос=Новый Запрос;
            Запрос.Текст="ВЫБРАТЬ
                         |    ПриказПоПрактике.Дата КАК ДатаДоговора,
                         |    ПриказПоПрактике.Группа,
                         |    ПриказПоПрактике.ВидПрактики,
                         |    ПриказПоПрактике.ДатаНачала,
                         |    ПриказПоПрактике.ДатаОкончания,
                         |    ПриказПоПрактике.Группа.Специальность КАК Специальность,
                         |    ПриказПоПрактике.РаспределениеПрактикантов.(
                         |        Студент КАК ФИО,
                         |        Контрагент КАК Контрагент,
                         |        Договор
                         |    ),
                         |    Директор.Сотрудник.Наименование КАК ФИО,
                         |    ПриказПоПрактике.Организация.НаименованиеПолное КАК Организация,
                         |    ПриказПоПрактике.Организация.Наименование КАК СокрНаименование,
                         |    ВложенныйЗапрос.Город,
                         |    Директор.Сотрудник.Физлицо.ФИОВинительныйПадеж КАК ФИОВинительныйПадеж
                         |ИЗ
                         |    Документ.ПриказПоПрактике КАК ПриказПоПрактике
                         |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                         |            ОрганизацииКонтактнаяИнформация.Город КАК Город,
                         |            ОрганизацииКонтактнаяИнформация.Ссылка КАК Ссылка
                         |        ИЗ
                         |            Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
                         |        ГДЕ
                         |            ОрганизацииКонтактнаяИнформация.Тип = &Тип
                         |            И ОрганизацииКонтактнаяИнформация.Вид = &Вид) КАК ВложенныйЗапрос
                         |        ПО ПриказПоПрактике.Организация = ВложенныйЗапрос.Ссылка
                         |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                         |            ОтветственныеЛицаОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
                         |            ОтветственныеЛицаОрганизацийСрезПоследних.Организация КАК Организация
                         |        ИЗ
                         |            РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних КАК ОтветственныеЛицаОрганизацийСрезПоследних
                         |        ГДЕ
                         |            ОтветственныеЛицаОрганизацийСрезПоследних.Должность = &Должность) КАК Директор
                         |        ПО ПриказПоПрактике.Организация = Директор.Организация
                         |ГДЕ
6 catena
 
28.08.18
08:04
(5)Делать выборку по табличной части или разбирать таблицу значений при обходе.
7 Kansk1c
 
28.08.18
08:56
catena, я не силен в таких терминах)