Вывод печатной формы списком (СРОЧНО!)

1. Гость 10.02.21 10:56
Может кто сталкивался с таким, не получается вывести табличную часть списком. Выводится только одна строка, остальные нет. Я только учусь, но решить надо срочно. Спасибо за помощь
Процедура Печать(ТабДок, Ссылка) Экспорт
	//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
	
	Макет = Документы.ПроизвольныйПриказ.ПолучитьМакет("Печать");
	
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ПроизвольныйПриказ.Дата КАК Дата,
	|	ПроизвольныйПриказ.Номер КАК Номер,
	|	ПроизвольныйПриказ.Организация КАК Организация,
	|	ПроизвольныйПриказ.Основание КАК Основание,
	|	ВЫБОР
	|		КОГДА ПроизвольныйПриказ.Причина.ПолноеНаименование = """"
	|			ТОГДА ПроизвольныйПриказ.Причина
	|		ИНАЧЕ ПроизвольныйПриказ.Причина.ПолноеНаименование
	|	КОНЕЦ КАК Причина,
	|	ПроизвольныйПриказ.Текст КАК Текст,
	|	ПроизвольныйПриказ.Руководитель.Фамилия КАК РуководительФамилия,
	|	ПроизвольныйПриказ.Руководитель.Инициалы КАК РуководительИнициалы,
	|	ПроизвольныйПриказ.ДолжностьРуководителя КАК ДолжностьРуководителя,
	|	ПроизвольныйПриказ.Организация.НаименованиеПолное КАК ОрганизацияНаименованиеПолное,
	|	ПроизвольныйПриказТЧ.Сотрудник КАК Сотрудник,
	|	ПроизвольныйПриказТЧ.НомерСтроки КАК НомерСтроки,
	|	ПроизвольныйПриказТЧ.ПериодДействияНачало КАК ПериодДействияНачало,
	|	ПроизвольныйПриказТЧ.ПериодДействияКонец КАК ПериодДействияКонец,
	|	ПроизвольныйПриказТЧ.Сотрудник.Код КАК СотрудникКод
	|ПОМЕСТИТЬ ВТ_ДанныеДокумента
	|ИЗ
	|	Документ.ПроизвольныйПриказ.ТЧ КАК ПроизвольныйПриказТЧ
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПроизвольныйПриказ КАК ПроизвольныйПриказ
	|		ПО ПроизвольныйПриказТЧ.Ссылка = ПроизвольныйПриказ.Ссылка
	|ГДЕ
	|	ПроизвольныйПриказ.Ссылка В(&Ссылка)
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение КАК ТекущееПодразделение,
	|	ТекущиеКадровыеДанныеСотрудников.ТекущаяДолжность КАК ТекущаяДолжность,
	|	ТекущиеКадровыеДанныеСотрудников.Сотрудник КАК Сотрудник
	|ПОМЕСТИТЬ ВТ_ДанныеСотрудника
	|ИЗ
	|	РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ВТ_ДанныеДокумента.Дата КАК Дата,
	|	ВТ_ДанныеДокумента.Номер КАК Номер,
	|	ВТ_ДанныеДокумента.Организация КАК Организация,
	|	ВТ_ДанныеДокумента.Основание КАК Основание,
	|	ВТ_ДанныеДокумента.Причина КАК Причина,
	|	ВТ_ДанныеДокумента.Текст КАК Текст,
	|	ВТ_ДанныеСотрудника.ТекущееПодразделение КАК ТекущееПодразделение,
	|	ВТ_ДанныеСотрудника.ТекущаяДолжность КАК ТекущаяДолжность,
	|	ВТ_ДанныеДокумента.РуководительИнициалы КАК РуководительИнициалы,
	|	ВТ_ДанныеДокумента.ДолжностьРуководителя КАК ДолжностьРуководителя,
	|	ВТ_ДанныеДокумента.РуководительФамилия КАК РуководительФамилия,
	|	ВТ_ДанныеДокумента.ОрганизацияНаименованиеПолное КАК ОрганизацияНаименование,
	|	ВТ_ДанныеДокумента.Сотрудник КАК Сотрудник,
	|	ВТ_ДанныеДокумента.НомерСтроки КАК НомерСтроки,
	|	ВТ_ДанныеДокумента.ПериодДействияНачало КАК ПериодДействияНачало,
	|	ВТ_ДанныеДокумента.ПериодДействияКонец КАК ПериодДействияКонец,
	|	ВТ_ДанныеДокумента.СотрудникКод КАК СотрудникКод
	|ИЗ
	|	ВТ_ДанныеДокумента КАК ВТ_ДанныеДокумента
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ДанныеСотрудника КАК ВТ_ДанныеСотрудника
	|		ПО ВТ_ДанныеДокумента.Сотрудник = ВТ_ДанныеСотрудника.Сотрудник";
	Запрос.Параметры.Вставить("Ссылка", Ссылка);
	Выборка = Запрос.Выполнить().Выбрать();

	Шапка = Макет.ПолучитьОбласть("Шапка");
	Строка = Макет.ПолучитьОбласть("Строка");
	Подвал = Макет.ПолучитьОбласть("Подвал");
	ТабДок.Очистить();

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

		Шапка.Параметры.Заполнить(Выборка);
		ТабДок.Вывести(Шапка, Выборка.Уровень());
		
		Строка.Параметры.Заполнить(Выборка);
		
		ДанныеПечати = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(Выборка);
		
		 
		ДанныеПечати.ПериодДействияНачало = Формат(ДанныеПечати.ПериодДействияНачало, "ДЛФ=D");
		Строка.Параметры.ПериодДействияНачало = ДанныеПечати.ПериодДействияНачало; 
		ДанныеПечати.ПериодДействияКонец = Формат(ДанныеПечати.ПериодДействияКонец, "ДЛФ=D");
		Строка.Параметры.ПериодДействияКонец = ДанныеПечати.ПериодДействияКонец; 
		ТабДок.Вывести(Строка, Выборка.Уровень());
		//ТабДок.Вывести(Строка, Выборка.Уровень());
		
		
		Подвал.Параметры.Заполнить(Выборка);
		ТабДок.Вывести(Подвал, Выборка.Уровень());
		
		
		
		ВставлятьРазделительСтраниц = Истина;
	КонецЦикла;
	
	//}}

КонецПроцедуры
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. XAKEP 10.02.21 11:29 Сейчас в теме
https://forum.infostart.ru/forum9/topic228066/
СРОЧНО
начинайте учится, а потом на работу.
3. пользователь 10.02.21 11:59
Сообщение было скрыто модератором.
...
4. starjevschik 10.02.21 12:07 Сейчас в теме
ну шапку и подвал наверное не обязательно выводить вместе с каждой строкой.
5. keyn5565` 18 10.02.21 12:28 Сейчас в теме
    Запрос.Параметры.Вставить("Ссылка", Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();

    Шапка = Макет.ПолучитьОбласть("Шапка");
    Строка = Макет.ПолучитьОбласть("Строка");
    Подвал = Макет.ПолучитьОбласть("Подвал");
    ТабДок.Очистить();

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

Выборка.Сбросить();   

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

        //это тут не нужно
        // уровень тоже не нужен раз не обход по группировке
        //Шапка.Параметры.Заполнить(Выборка);
        //ТабДок.Вывести(Шапка, Выборка.Уровень());
        
        Строка.Параметры.Заполнить(Выборка);
        
        ДанныеПечати = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(Выборка);
        
         
        ДанныеПечати.ПериодДействияНачало = Формат(ДанныеПечати.ПериодДействияНачало, "ДЛФ=D");
        Строка.Параметры.ПериодДействияНачало = ДанныеПечати.ПериодДействияНачало; 
        ДанныеПечати.ПериодДействияКонец = Формат(ДанныеПечати.ПериодДействияКонец, "ДЛФ=D");
        Строка.Параметры.ПериодДействияКонец = ДанныеПечати.ПериодДействияКонец; 
        ТабДок.Вывести(Строка);// Выборка.Уровень());
        //ТабДок.Вывести(Строка, Выборка.Уровень());
        
        //это выведем в конце
        //Подвал.Параметры.Заполнить(Выборка);
        //ТабДок.Вывести(Подвал, Выборка.Уровень());
        
        
        
        //ВставлятьРазделительСтраниц = Истина;
    КонецЦикла;

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

//покажем результат
ТабДок.Показать();

// вообще логика тут изначально не верная

Показать
8. Гость 10.02.21 13:30
Спасибо огромное, такой код мне к сожалению достался на исправление, вы очень сильно мне помогли)
6. user1503152 10.02.21 12:30 Сейчас в теме
ТабДок = Новый ТабличныйДокумент;
	Макет = ПолучитьМакет("Макет");


Этого кода у Вас нету, далее запрос!!!
7. keyn5565` 18 10.02.21 12:31 Сейчас в теме
(6)у него это есть
Процедура Печать(ТабДок, Ссылка) Экспорт
    //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
    
    Макет = Документы.ПроизвольныйПриказ.ПолучитьМакет("Печать");
Внимание! Не забывайте отмечать решение на ваш вопрос, если оно найдено. Это повысит ваш рейтинг на форуме.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот