Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Печать в портретном режиме, а хочу ландшафт! (http://forums.kuban.ru/f1040/pechat-_v_portretnom_rezhime_hochu_landshaft-4455203.html)

4ittmk 05.07.2013 12:13

Печать в портретном режиме, а хочу ландшафт!
 
Бухгалтерия предприятия, редакция 2.0 (2.0.45.5) в терминале

Внешняя форма СФ с выбором подписантов

Везде, где только можно (и видимо, там где нельзя) наставил:
ТабДокумент.ОриентацияСтраницы ориентацияСтраницы.Ландшафт;

пробовал и
ТабДокумент.КлючПараметровПечати = "Параметры_Печати_СФ_1137";
после чего в параметрах страницы менял на ландшафт, печатал, потом открываешь снова - опять 25 = портрет

Как сделать ландшафт?

4ittmk 05.07.2013 12:14

"=" - опечатка, т.е.

ТабДокумент.ОриентацияСтраницы = ориентацияСтраницы.Ландшафт;

4ittmk 05.07.2013 12:16

Куда вставить
ТабДокумент.ОриентацияСтраницы = ориентацияСтраницы.Ландшафт;
чтобы наверняка?

4ittmk 05.07.2013 14:21

Кэш 8.2 почистил. Базу передобавил. Не помогло.

vodoley_ol 05.07.2013 14:55

(3) перед строчкой ТабДокумент.Показать()

4ittmk 05.07.2013 15:09

Нет у меня во внешней печатной форме Показать().

vodoley_ol 05.07.2013 15:40

если есть строчка
Возврат ТабДокумент;
тогда перед ней

4ittmk 05.07.2013 15:47

Модуль Формы:

Процедура ПриОткрытии()
ТабДокумент = Новый ТабличныйДокумент;
Если Корректировочный Тогда
ТабДокумент = ПечатьКорректировочногоСчетаФактуры1137(СсылкаНаОбъект);
Иначе
ТабДокумент = ПечатьСчетаФактуры1137(СсылкаНаОбъект);
КонецЕсли;

ТабДокумент.ПолеСверху = 13;
ТабДокумент.ПолеСлева = 0;
ТабДокумент.ПолеСнизу = 0;
ТабДокумент.ПолеСправа = 0;

ТабДокумент.ВерхнийКолонтитул.Выводить = Истина;
ТабДокумент.ВерхнийКолонтитул.НачальнаяСтраница = 2;
ТабДокумент.ВерхнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Низ;
ЗаголовокДляПечати = ОбщегоНазначения.СформироватьЗаголовокДокумента(СсылкаНаОбъект, "Счет-фактура") + " г.";
ТабДокумент.ВерхнийКолонтитул.ТекстСлева = ЗаголовокДляПечати;
ТабДокумент.ВерхнийКолонтитул.ТекстСправа = "Лист [&НомерСтраницы]";
ЭтаФорма.Заголовок = ЗаголовокДляПечати;

Элементыформы.ПолеТабличногоДокумента.ВставитьОбласть(ТабДокумент.Область());
ЭлементыФормы.ПолеТабличногоДокумента.ОтображатьЗаголовки = Ложь;
ЭлементыФормы.ПолеТабличногоДокумента.ОтображатьСетку = Ложь;
ЭлементыФормы.ПолеТабличногоДокумента.Защита = Истина;
ЭлементыФормы.ПолеТабличногоДокумента.ТолькоПросмотр = Истина;

КонецПроцедуры






Модуль объекта:


Функция ПечатьСчетаФактуры1137(Ссылка) Экспорт
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.КлючПараметровПечати = "СчетФактура1137СчетФактура1137";
Макет = ПолучитьМакет("СчетФактура1137");

ДанныеДляПечати = Неопределено;
УчетнаяПолитика = Неопределено;

СобратьДанныеДляПечати(Ссылка, ДанныеДляПечати, УчетнаяПолитика);

Если ТипЗнч(ДанныеДляПечати) = Тип("Соответствие") Тогда
Возврат Ложь;
ИначеЕсли ДанныеДляПечати = Неопределено Тогда
Возврат Ложь;
КонецЕсли;

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

СведенияОбПокупателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(ДанныеДляПечати.Покупатель, СсылкаНаОбъект.Дата);
СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(ДанныеДляПечати.Поставщик, СсылкаНаОбъект.Дата);

// Выводим шапку

ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
ОбластьМакета.Параметры.Заполнить(ДанныеДляПечати);

Если СсылкаНаОбъект.Исправление Тогда
ОбластьМакета.Параметры.НомерИсправления = "Исправление №" + Строка(СсылкаНаОбъект.НомерИсправления) + " от " + Формат(СсылкаНаОбъект.Дата, "ДФ='дд ММММ гггг'") + " г.";
Иначе
ОбластьМакета.Параметры.НомерИсправления = "Исправление № -- от --";
КонецЕсли;

ОбластьМакета.Параметры.ПредставлениеПоставщика = "Продавец: "
+ ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "НаименованиеДляПечатныхФорм,");

ОбластьМакета.Параметры.АдресПоставщика = "Адрес: " + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ЮридическийАдрес,");

Если НЕ (СсылкаНаОбъект.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НалоговыйАгент
И СсылкаНаОбъект.ДоговорКонтрагента.ВидАгентскогоДоговора = Перечисления.ВидыАгентскихДоговоров.Нерезидент) Тогда

КПП = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "КПП,", Ложь);
Если ЗначениеЗаполнено(КПП) Тогда
КПП = "/" + КПП;
КонецЕсли;
ОбластьМакета.Параметры.ИННпоставщика = "ИНН/КПП продавца: "
+ ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ИНН,", Ложь) + КПП;

Иначе
ОбластьМакета.Параметры.ИННпоставщика = "ИНН/КПП продавца: --"
КонецЕсли;

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

Если СсылкаНаОбъект.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс Тогда

ОбластьМакета.Параметры.ПредставлениеГрузоотправителя = "Грузоотправитель и его адрес: --";
ОбластьМакета.Параметры.ПредставлениеГрузополучателя = "Грузополучатель и его адрес: --";

Иначе

СведенияОГрузоотправителе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(
?(ДанныеДляПечати.Грузоотправитель = "он же", Неопределено, ДанныеДляПечати.Грузоотправитель), СсылкаНаОбъект.Дата);
СведенияОГрузополучателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(
ДанныеДляПечати.Грузополучатель, СсылкаНаОбъект.Дата);


...


Иначе
Если ЗначениеЗаполнено(Строчка.СтранаПроисхождения) Тогда
ОбластьМакета.Параметры.ПредставлениеСтраны = СокрЛП(Строчка.СтранаПроисхождения.Наименование);
КонецЕсли;
КонецЕсли;

// Проставляем прочерки в незаполненные графы в соответствии с Постановлением
Если СсылкаНаОбъект.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс Тогда

ОбластьМакета.Параметры.ЕдиницаИзмерения = "--";
ОбластьМакета.Параметры.ЕдиницаИзмеренияКод = "--";

ОбластьМакета.Параметры.Количество = "--";
ОбластьМакета.Параметры.Цена = "--";
ОбластьМакета.Параметры.Стоимость = "--";
ОбластьМакета.Параметры.Акциз = "--";

ОбластьМакета.Параметры.СтранаПроисхожденияКод = "--";
ОбластьМакета.Параметры.ПредставлениеСтраны = "--";
ОбластьМакета.Параметры.ПредставлениеГТД = "--";

Иначе

Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.ЕдиницаИзмерения) Тогда
ОбластьМакета.Параметры.ЕдиницаИзмерения = "--";
ОбластьМакета.Параметры.ЕдиницаИзмеренияКод = "--";
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.ЕдиницаИзмеренияКод) Тогда
ОбластьМакета.Параметры.ЕдиницаИзмеренияКод = "--";
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.Количество) Тогда
ОбластьМакета.Параметры.Количество = "--";
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.Цена) Тогда
ОбластьМакета.Параметры.Цена = "--";
КонецЕсли;

ОбластьМакета.Параметры.СтранаПроисхожденияКод = "--";
ОбластьМакета.Параметры.ПредставлениеСтраны = "--";
ОбластьМакета.Параметры.ПредставлениеГТД = "--";

КонецЕсли;

// Проверим возможность вывода табличного документа
СтрокаСПодвалом = Новый Массив;
СтрокаСПодвалом.Добавить(ОбластьМакета);
Если НомерСтроки = КоличествоСтрок Тогда
// Если последняя строка, то должен поместится итог и подвал
СтрокаСПодвалом.Добавить(ОбластьМакетаИтого);
СтрокаСПодвалом.Добавить(ОбластьМакетаПодвал);
КонецЕсли;

Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, СтрокаСПодвалом) Тогда

Если КоличествоСтрок > 0 Тогда
// Вывод разделителя и заголовка таблицы на новой странице
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ТабДокумент.Вывести(ОбластьМакетаЗаголовокТаблицы);
КонецЕсли;

КонецЕсли;

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

ИтогоСтоимость = ИтогоСтоимость + Строчка.СуммаБезНДС;
ИтогоСуммаНДС = ИтогоСуммаНДС + Строчка.СуммаНДС;
ИтогоВсего = ИтогоВсего + Строчка.СуммаСНДС;

КонецЦикла;

Если ВыборкаСтрокТовары.Количество() > 0 Тогда
ТабДокумент.Область(ТабДокумент.ВысотаТаблицы,,ТабДокумент.ВысотаТаблицы,).ВместеСоСледующим = Истина;
КонецЕсли;

// Выводим строку "Всего к оплате"

Если СсылкаНаОбъект.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс Тогда
ОбластьМакетаИтого.Параметры.ИтогоСтоимость = "--";
Иначе
ОбластьМакетаИтого.Параметры.ИтогоСтоимость = ИтогоСтоимость;
КонецЕсли;
Если СчетФактураБезНДС Тогда
ОбластьМакетаИтого.Параметры.ИтогоСуммаНДС = "без НДС";
Иначе
ОбластьМакетаИтого.Параметры.ИтогоСуммаНДС = ИтогоСуммаНДС;
КонецЕсли;
ОбластьМакетаИтого.Параметры.ИтогоВсего = ИтогоВСего;

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

// Выводим подвал

ОбластьМакетаПодвал.Параметры.Заполнить(ДанныеДляПечати);

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

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

// Устанавливаем параметры печати и колонтитулы

ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДокумент.ПолеСверху = 13;
ТабДокумент.ПолеСлева = 0;
ТабДокумент.ПолеСнизу = 0;
ТабДокумент.ПолеСправа = 0;

Если ТипЗнч(СсылкаНаОбъект.ДокументОснование) <> Тип("ДокументСсылка.ОказаниеУслуг") Тогда
ТабДокумент.ВерхнийКолонтитул.Выводить = Истина;
ТабДокумент.ВерхнийКолонтитул.НачальнаяСтраница = 2;
ТабДокумент.ВерхнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Низ;
ТабДокумент.ВерхнийКолонтитул.ТекстСлева = ЗаголовокДляПечати;
ТабДокумент.ВерхнийКолонтитул.ТекстСправа = "Лист [&НомерСтраницы]";
КонецЕсли;

ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
Возврат ТабДокумент;

КонецФункции

4ittmk 05.07.2013 15:48

Т.е. из модуля формы вызывается Функция ПечатьСчетаФактуры1137

4ittmk 08.07.2013 14:54

Ура! Победил.

Параметры нужно было задавать в Печать(), откуда вызывается Форма.Открыть() из которой вызывается ПечатьСчетаФактуры1137(). Я почему-то решил, что модуль формы в первыю очередь сам запускается.

Короче, в печать работает и применение параметров и запоминание КлючПараметровПечати

Helen1986 08.07.2013 15:04

я тихо шизею


Текущее время: 02:33. Часовой пояс GMT +3.