Проблема вывода ТЧ на печать

1. Ivan_Abc 04.01.19 10:59 Сейчас в теме
Всех с наступившим новым годом! Подскажите пожалуйста, есть документ ЗаказКлиента, где имеются 3 различных ТЧ, которые отображаются в зависимости от выбранного в реквизите ВидЗаказа значения. Теперь сама суть проблемы: если выбран ВидЗаказа - ЗаказНаМебель, то нужно чтобы на печать вывелась только ТЧ соответствующая значению ЗаказНаМебель. И еще один момент, поле Комментарий не всегда заполнено, и в случае отсутствия комментария надо скрыть это поле. Подскажите куда и что надо написать?

Код отображения ТЧ:
&НаКлиенте
Процедура _ВидЗаказаПриИзменении(Элемент)
	
	Если Объект._ВидЗаказа = ПредопределенноеЗначение("Перечисление._ВидЗаказа._ЗаказНаМебель") Тогда 
        ЭтаФорма.Элементы.Группа_ЗаказНаМебель.Видимость = Истина;
		ЭтаФорма.Элементы.Группа_ЗаказНаФасады.Видимость = Ложь;
        ЭтаФорма.Элементы.Группа_ИндивидуальныйЗаказ.Видимость = Ложь;
		
	ИначеЕсли Объект._ВидЗаказа = ПредопределенноеЗначение("Перечисление._ВидЗаказа._ЗаказНаФасады") Тогда 
        ЭтаФорма.Элементы.Группа_ЗаказНаМебель.Видимость = Ложь;
		ЭтаФорма.Элементы.Группа_ЗаказНаФасады.Видимость = Истина;
        ЭтаФорма.Элементы.Группа_ИндивидуальныйЗаказ.Видимость = Ложь;
		
	ИначеЕсли Объект._ВидЗаказа = ПредопределенноеЗначение("Перечисление._ВидЗаказа._ИндивидуальныйЗаказ") Тогда 
        ЭтаФорма.Элементы.Группа_ЗаказНаМебель.Видимость = Ложь;
		ЭтаФорма.Элементы.Группа_ЗаказНаФасады.Видимость = Ложь;
        ЭтаФорма.Элементы.Группа_ИндивидуальныйЗаказ.Видимость = Истина;
    КонецЕсли;

КонецПроцедуры
Показать


Код запроса:
Процедура Печать(ТабДок, Ссылка) Экспорт
	Макет = Документы._ЗаказКлиента.ПолучитьМакет("Печать");
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	_ЗаказКлиента._Автор,
	|	_ЗаказКлиента._АдресДоставки,
	|	_ЗаказКлиента._ВидЗаказа,
	|	_ЗаказКлиента._Комментарий,
	|	_ЗаказКлиента._КонтактныеТелефоны,
	|	_ЗаказКлиента._ПредварительнаяДатаДоставки,
	|	_ЗаказКлиента._ПредварительноеВремяДоставки,
	|	_ЗаказКлиента._СтадияЗаказа,
	|	_ЗаказКлиента._ФиоЗаказчика,
	|	_ЗаказКлиента.Дата,
	|	_ЗаказКлиента.Номер,
	|	_ЗаказКлиента._ЗаказНаМебель.(
	|		НомерСтроки,
	|		_Номенклатура,
	|		_Цена,
	|		_Количество,
	|		_Сумма
	|	),
	|	_ЗаказКлиента._ИндивидуальныйЗаказ.(
	|		НомерСтроки,
	|		_Номенклатура,
	|		_Цена,
	|		_Количество,
	|		_Сумма,
	|		_Примечание
	|	),
	|	_ЗаказКлиента._ЗаказНаФасады.(
	|		НомерСтроки,
	|		_Номенклатура,
	|		_Ширина,
	|		_Высота,
	|		_Площадь,
	|		_Цвет,
	|		_Узор,
	|		_Количество,
	|		_Цена,
	|		_Сумма
	|	)
	|ИЗ
	|	Документ._ЗаказКлиента КАК _ЗаказКлиента
	|ГДЕ
	|	_ЗаказКлиента.Ссылка В (&Ссылка)";
	Запрос.Параметры.Вставить("Ссылка", Ссылка);
	Выборка = Запрос.Выполнить().Выбрать();

	ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
	Шапка = Макет.ПолучитьОбласть("Шапка");
	Область_ЗаказНаМебельШапка = Макет.ПолучитьОбласть("_ЗаказНаМебельШапка");
	Область_ЗаказНаМебель = Макет.ПолучитьОбласть("_ЗаказНаМебель");
	Область_ИндивидуальныйЗаказШапка = Макет.ПолучитьОбласть("_ИндивидуальныйЗаказШапка");
	Область_ИндивидуальныйЗаказ = Макет.ПолучитьОбласть("_ИндивидуальныйЗаказ");
	Область_ЗаказНаФасадыШапка = Макет.ПолучитьОбласть("_ЗаказНаФасадыШапка");
	Область_ЗаказНаФасады = Макет.ПолучитьОбласть("_ЗаказНаФасады");
	Подвал = Макет.ПолучитьОбласть("Подвал");

	ТабДок.Очистить();

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

		ТабДок.Вывести(ОбластьЗаголовок);

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

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


Как-то я застрял с этим макетом...
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. vlad-k 04.01.19 11:18 Сейчас в теме
в запросе установите фильтр на вид заказа,и естественно новый параметр запроса к нему сделайте.
По примечанию не ясно-что вы этим добиваетесь?в макете не показывать?тогда не выводите секцию с коментарием
3. Ivan_Abc 04.01.19 12:03 Сейчас в теме
(2)Касаемо фильтра... Можно подробнее с примером кода?
4. vlad-k 04.01.19 12:09 Сейчас в теме
Аналогично
"|ГДЕ
| _ЗаказКлиента.Ссылка В (&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);"

-добавить условие на вид заказа
Оставьте свое сообщение

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