Печать макета по умолчанию в Ландшафтном варианте

1. sasha-asn 19.11.19 14:51 Сейчас в теме
Доброго времени суток, уважаемые коллеги!

Прошу вашей подсказки: как программно задать по умолчанию вариант вывода макета в Ландшафтном варианте? (УТ10.3)

ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
<- не помогает
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. DmitriyTih 19.11.19 15:04 Сейчас в теме
(1) какой тип значений принимает переменная ТабДок? Применять ".ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт" надо к табличному документу или полю табличного документа, в которое выводится макет.
sasha-asn; +1 Ответить
4. sasha-asn 19.11.19 15:32 Сейчас в теме
(3)
(1) какой тип значений принимает переменная ТабДок? Применять ".ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт" надо к табличному документу или полю табличного документа, в которое выводится макет.

(2)
Ребята, почему переменная принимает значение Ландшафта, но выводится всеравно Портретная ориентация?
Прикрепленные файлы:
8. DmitriyTih 19.11.19 15:51 Сейчас в теме
(4) ну вроде хорошо. Давайте конец функции, где будет табдокумент.показать(). И перед тем как показать табдокумент, побробуйте поставить установку свойства "Ориентация", я точно не помню, может в макете установлена "Ориентация" = портрет и после вывода области в табдокумент происходит изменение свойства "Ориентация?"
trickster; sasha-asn; +2 Ответить
2. VmvLer 19.11.19 15:03 Сейчас в теме
в решении ошибки нет, вероятно вы ориентируете не Документ-Результат который выводят, а какую-то переменную.
отладчик сломан или смотреть на стек вызовов будет баба яга?
sasha-asn; +1 Ответить
5. sasha-asn 19.11.19 15:39 Сейчас в теме
(2) не подскажите? а то я уже исчерпал все варианты(
Прикрепленные файлы:
6. VmvLer 19.11.19 15:48 Сейчас в теме
(5) мне нужно больше золота кода для ответа.
Teut_Vlad; sasha-asn; +2 Ответить
9. sasha-asn 19.11.19 15:52 Сейчас в теме
(6) буду искренни благодарен, если подскажите где ошибка у меня
Функция ПечатьСчетаЗаказа(Тип)

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

	Запрос = Новый Запрос;

	Макет = ПолучитьМакет("СчетЗаказ");


	// Определим параметры запроса и табличного документа  
	// в зависимости от необходимости отображения артикула поставщика  
	Если Тип = "ЗаказПоДаннымПоставщика" Тогда

		ВыводитьКоды    = Истина;
		ТекстКодАртикул = "Код";
		Колонка         = "Артикул" + Символы.ПС + "поставщика";
		ОбластьШапки    = Макет.ПолучитьОбласть("ШапкаСКодом");
		ОбластьСтроки   = Макет.ПолучитьОбласть("СтрокаСКодом");

		Запрос.УстановитьПараметр("Контрагент", ЭтотОбъект.Контрагент);

		ТекстПоляТовараДляТоваров = "
		|	ВЫБОР КОГДА (ВЫРАЗИТЬ (НаименованиеКонтрагента КАК Строка(100)) ЕСТЬ NULL ИЛИ ВЫРАЗИТЬ (НаименованиеКонтрагента КАК Строка(100)) = """") ТОГДА ВЫРАЗИТЬ (ВложенныйЗапрос.Номенклатура.Наименование КАК Строка(100)) ИНАЧЕ ВЫРАЗИТЬ (НаименованиеКонтрагента КАК Строка(100)) КОНЕЦ КАК Товар,";

		ТекстПоляТовараДляУслуг = "
		|	ВЫБОР КОГДА (ВЫРАЗИТЬ (НаименованиеНоменклатурыКонтрагента КАК Строка(100)) ЕСТЬ NULL ИЛИ ВЫРАЗИТЬ (НаименованиеНоменклатурыКонтрагента КАК Строка(100)) = """") ТОГДА ВЫРАЗИТЬ (ЗаказПоставщику.Номенклатура.Наименование КАК Строка(100)) ИНАЧЕ ВЫРАЗИТЬ (НаименованиеНоменклатурыКонтрагента КАК Строка(100)) КОНЕЦ КАК Товар,";

		ТекстПоляАртикула = ",
			|	АртикулКонтрагента";

		ТекстВыборкиАртикула = ", 
			|	АртикулНоменклатурыКонтрагента КАК АртикулКонтрагента";

		ТекстВыборкиНоменклатуры = ", 
			|	ВЫРАЗИТЬ(НаименованиеНоменклатурыКонтрагента КАК Строка(100)) КАК НаименованиеКонтрагента";

		ТекстИсточникАртикула = "
			|	ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов
			|	ПО НоменклатураКонтрагентов.Номенклатура = ЗаказПоставщику.Номенклатура
			|   И НоменклатураКонтрагентов.ХарактеристикаНоменклатуры = ЗаказПоставщику.ХарактеристикаНоменклатуры
			|	И НоменклатураКонтрагентов.Контрагент = &Контрагент";
			
		ТекстИсточникАртикулаБезХарактеристики = "
			|	ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов
			|	ПО НоменклатураКонтрагентов.Номенклатура = ЗаказПоставщику.Номенклатура
			|	И НоменклатураКонтрагентов.Контрагент = &Контрагент";

		ТекстГруппировкиАртикулаИНоменклатуры = ", 
			|	АртикулНоменклатурыКонтрагента,
			|	ВЫРАЗИТЬ(НаименованиеНоменклатурыКонтрагента КАК Строка(100))";

	Иначе

		ТекстПоляТовараДляТоваров = "
		|	ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.Наименование КАК Строка(100)) КАК Товар,";
		
		СтрокаВыборкиПоляСодержания = ОбработкаТабличныхЧастей.ПолучитьЧастьЗапросаДляВыбораСодержания("ЗаказПоставщику");
		
		ТекстПоляТовараДляУслуг = "
		|	" + СтрокаВыборкиПоляСодержания + " КАК Товар,";

		ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
		Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
			ВыводитьКоды    = Истина;
			Колонка         = "Артикул";
			ТекстКодАртикул = "Артикул";
		ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
			ВыводитьКоды    = Истина;
			Колонка         = "Код";
			ТекстКодАртикул = "Код";
		Иначе
			ВыводитьКоды    = Ложь;
			Колонка         = "";
			ТекстКодАртикул = "Код";
		КонецЕсли;

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

		ТекстПоляАртикула                     = "";
		ТекстВыборкиАртикула                  = ""; 
		ТекстИсточникАртикула                 = "";
		ТекстГруппировкиАртикулаИНоменклатуры = ""; 

	КонецЕсли;

	ОбластьШапки.Параметры.Товар = "Товары (работы, услуги)";
	
	Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
	Запрос.Текст ="
	|ВЫБРАТЬ
	|	ВложенныйЗапрос.Номенклатура," + ТекстПоляТовараДляТоваров + "
	|	ВложенныйЗапрос.Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
	|	ВложенныйЗапрос.Количество,
	|	ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения,
	|	ВложенныйЗапрос.Цена,
	|	ВложенныйЗапрос.Сумма,
	|	ВложенныйЗапрос.СуммаНДС,
	|	ВложенныйЗапрос.Характеристика,
	|   2    КАК НомерТЧ,
	|	ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
	|	NULL КАК Серия" + ТекстПоляАртикула + "
	|ИЗ
	|	(
	|	ВЫБРАТЬ
	|		ЗаказПоставщику.Номенклатура,
	|		ЗаказПоставщику.ЕдиницаИзмерения,
	|		ЗаказПоставщику.Цена                        КАК Цена,
	|       МИНИМУМ(ЗаказПоставщику.НомерСтроки)        КАК НомерСтроки,	
	|		СУММА(ЗаказПоставщику.Количество)           КАК Количество,
	|		СУММА(ЗаказПоставщику.Сумма     )           КАК Сумма,
	|		СУММА(ЗаказПоставщику.СуммаНДС  )           КАК СуммаНДС,
	|		ЗаказПоставщику.ХарактеристикаНоменклатуры  КАК Характеристика" + ТекстВыборкиАртикула + ТекстВыборкиНоменклатуры + "
	|	ИЗ
	|		Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщику" + ТекстИсточникАртикула + "
	|
	|	ГДЕ
	|		ЗаказПоставщику.Ссылка = &ТекущийДокумент
	|
	|	СГРУППИРОВАТЬ ПО
	|		ЗаказПоставщику.Номенклатура,
	|		ЗаказПоставщику.ЕдиницаИзмерения,
	|		ЗаказПоставщику.Цена,
	|		ЗаказПоставщику.ХарактеристикаНоменклатуры" + ТекстГруппировкиАртикулаИНоменклатуры + "
	|	) КАК ВложенныйЗапрос
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ЗаказПоставщику.Номенклатура," + ТекстПоляТовараДляУслуг + "
	|	ЗаказПоставщику.Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
	|	ЗаказПоставщику.Количество,
	|	ЗаказПоставщику.Номенклатура.ЕдиницаХраненияОстатков,
	|	ЗаказПоставщику.Цена,
	|	ЗаказПоставщику.Сумма,
	|	ЗаказПоставщику.СуммаНДС,
	|	NULL,
	|   3    КАК НомерТЧ,
	|   ЗаказПоставщику.НомерСтроки КАК НомерСтроки,	
	|	NULL КАК Серия" + ТекстВыборкиАртикула + "
	|	
	|ИЗ
	|	Документ.ЗаказПоставщику.Услуги КАК ЗаказПоставщику" + ТекстИсточникАртикулаБезХарактеристики + "
	|
	|ГДЕ
	|	ЗаказПоставщику.Ссылка = &ТекущийДокумент
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ВложенныйЗапрос.Номенклатура," + ТекстПоляТовараДляТоваров + "
	|	ВложенныйЗапрос.Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
	|	ВложенныйЗапрос.Количество,
	|	ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков.Представление КАК ЕдиницаИзмерения,
	|	ВложенныйЗапрос.Цена,
	|	ВложенныйЗапрос.Сумма,
	|	ВложенныйЗапрос.СуммаНДС,
	|	NULL,
	|   4    КАК НомерТЧ,
	|	ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
	|	NULL КАК Серия" + ТекстПоляАртикула + "
	|ИЗ
	|	(
	|	ВЫБРАТЬ
	|		ЗаказПоставщику.Номенклатура,
	|		ЗаказПоставщику.Цена                        КАК Цена,
	|       МИНИМУМ(ЗаказПоставщику.НомерСтроки)        КАК НомерСтроки,	
	|		СУММА(ЗаказПоставщику.Количество)           КАК Количество,
	|		СУММА(ЗаказПоставщику.Сумма     )           КАК Сумма,
	|		0           								КАК СуммаНДС" + ТекстВыборкиАртикула + ТекстВыборкиНоменклатуры + "
	|	ИЗ
	|		Документ.ЗаказПоставщику.ВозвратнаяТара КАК ЗаказПоставщику" + ТекстИсточникАртикулаБезХарактеристики + "
	|
	|	ГДЕ
	|		ЗаказПоставщику.Ссылка = &ТекущийДокумент
	|
	|	СГРУППИРОВАТЬ ПО
	|		ЗаказПоставщику.Номенклатура,
	|		ЗаказПоставщику.Цена" + ТекстГруппировкиАртикулаИНоменклатуры + "
	|	) КАК ВложенныйЗапрос
	|
	|УПОРЯДОЧИТЬ ПО НомерТЧ ВОЗР, НомерСтроки ВОЗР
	|";
	
	ЗапросТовары = Запрос.Выполнить().Выгрузить();

	ТабДокумент = Новый ТабличныйДокумент;
	//АСННН
	
	ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
	//АСННН
	Если Тип = "ЗаказПоДаннымПоставщика" Тогда
		ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПоставщику_СчетЗаказПоДаннымПоставщик­а";
	Иначе
		ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПоставщику_СчетЗаказ";
	КонецЕсли;

	Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизации(Шапка.Организация, Шапка.Дата,);
	Руководитель = Руководители.Руководитель;
	Бухгалтер    = Руководители.ГлавныйБухгалтер;

	// Выводим шапку накладной
	ОбластьМакета                          = Макет.ПолучитьОбласть("Заголовок");
	ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Заказ поставщику");
	ТабДокумент.Вывести(ОбластьМакета);

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

	ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
	ОбластьМакета.Параметры.ТекстПокупатель = "Покупатель:";
	ОбластьМакета.Параметры.ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,");;
	ОбластьМакета.Параметры.Получатель              = Шапка.Организация;
	ТабДокумент.Вывести(ОбластьМакета);

	// Вывести табличную часть
	Если ВыводитьКоды Тогда
		ОбластьШапки.Параметры.Колонка = Колонка;
	КонецЕсли;

	ТабДокумент.Вывести(ОбластьШапки);

	Сумма    = 0;
	СуммаНДС = 0;

	Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл

		Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
			Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
			Продолжить;
		КонецЕсли;

		ОбластьСтроки.Параметры.Заполнить(ВыборкаСтрокТовары);
		ОбластьСтроки.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
		ОбластьСтроки.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.Товар) + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары)
										+ ?(ВыборкаСтрокТовары.НомерТЧ = 4, " (возвратная тара)", "");

		Если ВыводитьКоды Тогда
			Если Тип = "ЗаказПоДаннымПоставщика" Тогда
				ОбластьСтроки.Параметры.КодАртикул = ВыборкаСтрокТовары.АртикулКонтрагента;
			Иначе
				ОбластьСтроки.Параметры.КодАртикул = ВыборкаСтрокТовары.КодАртикул;
			КонецЕсли;
		КонецЕсли;

		ТабДокумент.Вывести(ОбластьСтроки);

		Сумма    = Сумма    + ВыборкаСтрокТовары.Сумма;
		СуммаНДС = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС;

	КонецЦикла;

	// Вывести Итого
	ОбластьМакета                 = Макет.ПолучитьОбласть("Итого");
	ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
	ТабДокумент.Вывести(ОбластьМакета);

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

	// Вывести Сумму прописью
	ОбластьМакета                          = Макет.ПолучитьОбласть("СуммаПрописью");
	СуммаКПрописи                          = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
	ОбластьМакета.Параметры.ИтоговаяСтрока = "Всего наименований " + ЗапросТовары.Количество()
	                                       + ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента);
	ОбластьМакета.Параметры.СуммаПрописью  = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента);
	ТабДокумент.Вывести(ОбластьМакета);

	// Вывести подписи
	ОбластьМакета                    = Макет.ПолучитьОбласть("Подписи");
	ОбластьМакета.Параметры.Отпустил = "/"+ Руководитель + "/";
	ОбластьМакета.Параметры.Получил  = "/"+ Бухгалтер + "/";
	ТабДокумент.Вывести(ОбластьМакета);

	Возврат ТабДокумент;
	


КонецФункции // ПечатьСчетаЗаказа()
Показать
10. VmvLer 19.11.19 15:56 Сейчас в теме
(9) ошибка в другом месте - это простыня не винавата...он(портрет) сам пришел
11. DmitriyTih 19.11.19 15:58 Сейчас в теме
(9) Поставьте точку останова в конце процедуры на строке:
Возврат ТабДокумент


и посмотрите значение свойства ТабДокумент.Ориентация? Какое Значение? Если "Портрет", то перед этой строкой Напишите
ТабДокумент.Ориентация = ОриентацияСтраницы.Ландшафт;
Возврат ТабДокумент
7. mar82 19.11.19 15:50 Сейчас в теме
а дальше по коду точно не переопределяете его?
sasha-asn; +1 Ответить
12. sasha-asn 19.11.19 16:01 Сейчас в теме
(7) подскажите пожалуйста, видимо настройки задаются отдельно в процедуре печати, можете глазом глянуть бегло пожалуйста)

Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт

	Если ЭтоНовый() Тогда
		Предупреждение("Документ можно распечатать только после его записи");
		Возврат;
	ИначеЕсли Не УправлениеДопПравамиПользователей.РазрешитьПечатьНепроведенныхДокументов(Проведен) Тогда
		Предупреждение("Недостаточно полномочий для печати непроведенного документа!");
		Возврат;
	КонецЕсли;

	Если Не РаботаСДиалогами.ПроверитьМодифицированность(ЭтотОбъект) Тогда
		Возврат;
	КонецЕсли;

	
	// Получить экземпляр документа на печать
	Если ИмяМакета      = "Заказ" Тогда

		// печать заявки от покупателя
		ТабДокумент     = ПечатьСчетаЗаказа(ИмяМакета);


	ИначеЕсли ИмяМакета = "ЗаказАнгл" Тогда
		ТабДокумент = ПечатьСчетаЗаказаАнгл();

	
	ИначеЕсли ИмяМакета      = "ЗаказПоДаннымПоставщика" Тогда

		// печать заявки от покупателя
		ТабДокумент     = ПечатьСчетаЗаказа(ИмяМакета);
   ИначеЕсли ИмяМакета = "ЗаказКорректировка" тогда
		
		// печать заявки от покупателя
		ТабДокумент 	= ПечатьСчетаЗаказаКорректировки(ИмяМакета);
		

	ИначеЕсли ТипЗнч(ИмяМакета) = Тип("ДвоичныеДанные") Тогда

		ТабДокумент = УниверсальныеМеханизмы.НапечататьВнешнююФорму(Ссылка, ИмяМакета);
		
		Если ТабДокумент = Неопределено Тогда
			Возврат
		КонецЕсли; 
		
	КонецЕсли; 

УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект), Ссылка);

КонецПроцедуры 
Показать
13. VmvLer 19.11.19 16:07 Сейчас в теме
(12) идите в отладке в УниверсальныеМеханизмы.

это что-то из прошлого века, я же просил чтобы баба яга прошло по всему стеку
trickster; sasha-asn; +2 Ответить
14. sasha-asn 19.11.19 16:20 Сейчас в теме
ВСЕМ СПАСИБО! Благодаря вам полез в глубь, там добавил ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; и всё окей
Оставьте свое сообщение

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