Имя: Пароль:
1C
1С v8
Не применяется ориентация страницы
0 tg30000
 
06.02.13
06:38
Подскажите пожалуйста вроде сделал внешнюю печатную форму поступл. товаров и услуг для УПП , но не применяется ориентация страницы ландшафт.
Что неправильно делаю?







Перем ТекущийДокумент;
Перем Ссылка;



// Функция должна возвращать табличный документ. Печать документа выполняется конфигурацией.
// Если требуется отказ от печати вообще, функция должна возвращать Неопределено
Функция Печать() Экспорт
   Если не ЗначениеЗаполнено(СсылкаНаОбъект) Тогда Возврат Неопределено КонецЕсли;    
   Возврат ПечатьПТиУ_Электра();
   
КонецФункции

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

           Если ВыборкаЗапросСтрока.Наименование = ВыборкаЗапросСтрока.Значение.Наименование Тогда
           Подвал.Параметры.ДолжностьП = ВыборкаЗапросСтрока.Должность.Наименование;    
           КонецЕсли

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

           Если ВыборкаЗапросСтрока.Наименование = ВыборкаЗапросСтрока.Значение.Наименование Тогда
           Подвал.Параметры.ДолжностьС = ВыборкаЗапросСтрока.Должность.Наименование;    
           КонецЕсли
   
           
           
       КонецЕсли;
   КонецЦикла;
   
   
   
   

   
   
   ТабДокумент.Вывести(Подвал);
   
   
   //ТабДокумент.Показать();
   Возврат ТабДокумент;
   
   
   
КонецФункции //
1 kosts
 
06.02.13
06:52
По сабжу, но вижу проблемы.

Вот тут опасный момент, номер числовой?
НомерДокумента = ЭтотОбъект.СсылкаНаОбъект.Номер;
НомерДокументаБезНулей =Число(НомерДокумента);
2 tg30000
 
06.02.13
06:55
(1) Да , только числовой.Всегда.
Подскажите почему ландшафт не применяет, выводит портрет и все...
3 echo77
 
06.02.13
06:57
Зададай ТабДокумент.ИмяПараметровПечати и переверни в предприятии,  если не получится

Со счет-фактурой такую фигню видел. Может это баг платформы?
4 tg30000
 
06.02.13
06:58
(3) Спасибо, попробую.
5 kosts
 
06.02.13
06:58
В режиме отладки прогони, пошагово до самого показа, и смотри за изменением реквизита ОриентацияСтраницы.

А так же попробуй в конец процедуры поставить ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
6 kosts
 
06.02.13
06:59
Может из-за некорректных полей настройки сбрасываются, попробуй установить минимальные допустимые поля
7 tg30000
 
06.02.13
07:00
(5)(6) Спасибо большое, буду пробовать.
8 tg30000
 
06.02.13
07:57
Сделал так :

,,,,

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

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

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




по крайней мере выводится на печать и в том формате.