Печать макета по умолчанию в Ландшафтном варианте
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3)
(2)
Ребята, почему переменная принимает значение Ландшафта, но выводится всеравно Портретная ориентация?
(1) какой тип значений принимает переменная ТабДок? Применять ".ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт" надо к табличному документу или полю табличного документа, в которое выводится макет.
(2)
Ребята, почему переменная принимает значение Ландшафта, но выводится всеравно Портретная ориентация?
Прикрепленные файлы:
(4) ну вроде хорошо. Давайте конец функции, где будет табдокумент.показать(). И перед тем как показать табдокумент, побробуйте поставить установку свойства "Ориентация", я точно не помню, может в макете установлена "Ориентация" = портрет и после вывода области в табдокумент происходит изменение свойства "Ориентация?"
(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, СуммаНДС);
ОбластьМакета.Параметры.ИтоговаяСтрока = "Всего наименований " + ЗапросТовары.Количество()
+ ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента);
ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента);
ТабДокумент.Вывести(ОбластьМакета);
// Вывести подписи
ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
ОбластьМакета.Параметры.Отпустил = "/"+ Руководитель + "/";
ОбластьМакета.Параметры.Получил = "/"+ Бухгалтер + "/";
ТабДокумент.Вывести(ОбластьМакета);
Возврат ТабДокумент;
КонецФункции // ПечатьСчетаЗаказа()
Показать
(9) Поставьте точку останова в конце процедуры на строке:
и посмотрите значение свойства ТабДокумент.Ориентация? Какое Значение? Если "Портрет", то перед этой строкой Напишите
Возврат ТабДокумент
и посмотрите значение свойства ТабДокумент.Ориентация? Какое Значение? Если "Портрет", то перед этой строкой Напишите
ТабДокумент.Ориентация = ОриентацияСтраницы.Ландшафт;
Возврат ТабДокумент
(7) подскажите пожалуйста, видимо настройки задаются отдельно в процедуре печати, можете глазом глянуть бегло пожалуйста)
Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт
Если ЭтоНовый() Тогда
Предупреждение("Документ можно распечатать только после его записи");
Возврат;
ИначеЕсли Не УправлениеДопПравамиПользователей.РазрешитьПечатьНепроведенныхДокументов(Проведен) Тогда
Предупреждение("Недостаточно полномочий для печати непроведенного документа!");
Возврат;
КонецЕсли;
Если Не РаботаСДиалогами.ПроверитьМодифицированность(ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
// Получить экземпляр документа на печать
Если ИмяМакета = "Заказ" Тогда
// печать заявки от покупателя
ТабДокумент = ПечатьСчетаЗаказа(ИмяМакета);
ИначеЕсли ИмяМакета = "ЗаказАнгл" Тогда
ТабДокумент = ПечатьСчетаЗаказаАнгл();
ИначеЕсли ИмяМакета = "ЗаказПоДаннымПоставщика" Тогда
// печать заявки от покупателя
ТабДокумент = ПечатьСчетаЗаказа(ИмяМакета);
ИначеЕсли ИмяМакета = "ЗаказКорректировка" тогда
// печать заявки от покупателя
ТабДокумент = ПечатьСчетаЗаказаКорректировки(ИмяМакета);
ИначеЕсли ТипЗнч(ИмяМакета) = Тип("ДвоичныеДанные") Тогда
ТабДокумент = УниверсальныеМеханизмы.НапечататьВнешнююФорму(Ссылка, ИмяМакета);
Если ТабДокумент = Неопределено Тогда
Возврат
КонецЕсли;
КонецЕсли;
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект), Ссылка);
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот