Имя: Пароль:
1C
1С v8
Подскажите почему портретом печатается,хотя вроде стоит ланшафт?
0 tg30000
 
04.08.11
11:46
Подскажите почему портретом печатается,хотя вроде стоит ланшафт?



Функция СформироватьОтчет(Документ)
   
   ТабДокумент = Новый ТабличныйДокумент;
   
   
   //Получаем области макета
   Макет = ПолучитьМакет("М11");
   
   Шапка     = Макет.ПолучитьОбласть("Шапка");
   ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
   Итого            = Макет.ПолучитьОбласть("Итого");
   Подвал           = Макет.ПолучитьОбласть("Подвал");
   
   
   // Зададим параметры макета
   ТабДокумент.ПолеСверху         = 0;
   ТабДокумент.ПолеСлева          = 0;
   ТабДокумент.ПолеСнизу          = 0;
   ТабДокумент.ПолеСправа         = 0;
   ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
   
   
   
   //ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТребованиеНакладная_М11";
   
   
   //ШАПКА
//    СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(глЗначениеПеременной("Организация"), Документ.Дата);
   
   Шапка.Параметры.Заголовок                = "ТРЕБОВАНИЕ-НАКЛАДНАЯ № " + Строка(Документ.Номер);
   //Шапка.Параметры.КодОКПО                  = СведенияОбОрганизации.КодПоОКПО;
   //Шапка.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации);
   Шапка.Параметры.ДатаСоставления          = Формат(Документ.Дата, "ДФ=dd.MM.yy");
   Шапка.Параметры.Склад                    = СокрЛП(Документ.СкладОтправитель);
   Шапка.Параметры.ПредставлениеПодразделения = СокрЛП(Документ.СкладПолучатель);
   Шапка.Параметры.а1                      = СокрЛП(Документ.а1 );
   Шапка.Параметры.а2                      = СокрЛП(Документ.а2);
   

   
   ТабДокумент.Вывести(Шапка);          
   
   
   //ОСНОВНЫЕ ДАННЫЕ
   
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ПеремещениеТоваров.СчетУчетаБУ КАК Счет,
                  |    ПеремещениеТоваров.Ссылка,
                  |    ПеремещениеТоваров.Номенклатура КАК Наименование,
                  |    ПеремещениеТоваров.Номенклатура.Код КАК НоменклатурныйНомер,
                  |    ПеремещениеТоваров.Номенклатура.БазоваяЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
                  |    ПеремещениеТоваров.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
                  |    ПеремещениеТоваров.Количество КАК Количество,
                  |    ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
                  |    ХозрасчетныйОборотыДтКт.КоличествоОборотДт КАК КоличествоЗапрос,
                  |    ХозрасчетныйОборотыДтКт.СчетДт,
                  |    ХозрасчетныйОборотыДтКт.СчетКт,
                  |    ПеремещениеТоваров1.а1,
                  |    ПеремещениеТоваров1.а2,
                  |    ПеремещениеТоваров1.а3,
                  |    ПеремещениеТоваров1.а4
                  |ИЗ
                  |    Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваров
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(, , Регистратор, , , , , ) КАК ХозрасчетныйОборотыДтКт
                  |        ПО ПеремещениеТоваров.Ссылка = ХозрасчетныйОборотыДтКт.Регистратор
                  |            И ПеремещениеТоваров.Номенклатура = ХозрасчетныйОборотыДтКт.СубконтоДт1
                  |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПеремещениеТоваров КАК ПеремещениеТоваров1
                  |        ПО ПеремещениеТоваров.Ссылка = ПеремещениеТоваров1.Ссылка
                  |ГДЕ
                  |    ПеремещениеТоваров.Ссылка = &СсылкаНаДокумент";
   Запрос.УстановитьПараметр("СсылкаНаДокумент", Документ);     //Документ ссылка: Перемещение товаров
   ВыборкаСтрокТовары = Запрос.Выполнить().Выгрузить();
   
   
   // Выводим заголовок таблицы
   ТабДокумент.Вывести(ЗаголовокТаблицы);    
   
   // Инициализация номера страницы
   НомерСтраницы = 1;
   
   // Инициализация итогов в документе
   ИтогоКоличество                  = 0;
   СуммаПоСтранице                  = 0;
   СуммаПоДокументу                  = 0;
   
   
   НомерСтроки = 0;
   
   
   // Выводим многострочную часть докмента
   Строка   = Макет.ПолучитьОбласть("Строка");
   ПоследняяСтрока    = Макет.ПолучитьОбласть("ПоследняяСтрока");
   
   // Выводим многострочную часть докмента
   Строка   = Макет.ПолучитьОбласть("Строка");
   ПоследняяСтрока    = Макет.ПолучитьОбласть("ПоследняяСтрока");
   
   
   Для Счетчик = 0 По ВыборкаСтрокТовары.Количество()-1 Цикл
       СтрокаТовар = ВыборкаСтрокТовары[Счетчик];
       
       НомерСтроки = НомерСтроки + 1;
               
       
       // Проверим, помещается ли строка с данными и последняя строка (или итоги) на странице.
       СтрокаТаблицы = Новый Массив;
       СтрокаТаблицы.Добавить(Строка);
       Если НЕ (НомерСтроки = ВыборкаСтрокТовары.Количество()) Тогда
           СтрокаТаблицы.Добавить(ПоследняяСтрока);
       Иначе
           СтрокаТаблицы.Добавить(Итого);
       КонецЕсли;
       
       
       Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, СтрокаТаблицы) Тогда
           
           НомерСтраницы = НомерСтраницы + 1;
           //Выводим итоги по странице, если более одной страницы
           ПоследняяСтрока.Параметры.СуммаПоСтранице = Формат(СуммаПоСтранице, "ЧДЦ=2");
           СуммаПоСтранице                  = 0;
           ТабДокумент.Вывести(ПоследняяСтрока);
           ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
           ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы+ " к требованию-накладной №"+Строка(Документ.Номер);
           ТабДокумент.Вывести(ЗаголовокТаблицы);
           
       КонецЕсли;
       
       
       Строка.Параметры.Заполнить(СтрокаТовар);
       
       НужноЛиСчитатьСумму = Истина;
       ЕстьЛиДубликаты = Ложь;
       
       //Проверяем на наличие дубликатов в табличной части
   
       //Если не  первая строка - проверяем предыдующую строку на дубликаты
       Если Счетчик <> 0 Тогда
       Если ВыборкаСтрокТовары[Счетчик].Наименование = ВыборкаСтрокТовары[Счетчик-1].Наименование Тогда
           Цена =  ВыборкаСтрокТовары[Счетчик].Сумма / ВыборкаСтрокТовары[Счетчик].КоличествоЗапрос;
           Строка.Параметры.Цена = Цена;
           Сумма = ВыборкаСтрокТовары[Счетчик].Количество * Цена;
           Строка.Параметры.Сумма = Сумма;
           
           ЕстьЛиДубликаты = Истина;
           НужноЛиСчитатьСумму = Ложь;
       КонецЕсли;
       КонецЕсли;                                                                  
       
       //Если не последняя строка - проверяем следующую строку на дубликаты
       Если Счетчик <> ВыборкаСтрокТовары.Количество()-1 Тогда
       Если ВыборкаСтрокТовары[Счетчик].Наименование = ВыборкаСтрокТовары[Счетчик+1].Наименование Тогда
           Цена =  ВыборкаСтрокТовары[Счетчик].Сумма / ВыборкаСтрокТовары[Счетчик].КоличествоЗапрос;
           Строка.Параметры.Цена = Цена;
           Сумма = ВыборкаСтрокТовары[Счетчик].Количество * Цена;
           Строка.Параметры.Сумма = Сумма;
           
           ЕстьЛиДубликаты = Истина;
           НужноЛиСчитатьСумму = Ложь;
       КонецЕсли;
       КонецЕсли;
       
       //Пересчитываем сумму в случае с дубликатами
       Если ЕстьЛиДубликаты Тогда
       СуммаПоДокументу = СуммаПоДокументу + Сумма;
       СуммаПоСтранице = СуммаПоСтранице  + Сумма;
       КонецЕсли;
       
       
       //Считаем суммы
       Если НужноЛиСчитатьСумму Тогда
       СуммаПоДокументу            = СуммаПоДокументу + СтрокаТовар.Сумма;
       СуммаПоСтранице            = СуммаПоСтранице + СтрокаТовар.Сумма;
       КонецЕсли;
           
       
       
       
       
       Строка.Параметры.Наименование = СокрЛП(СтрокаТовар.Наименование);
       Строка.Параметры.Цена = ?(СтрокаТовар.Количество = 0, 0, СтрокаТовар.Сумма / СтрокаТовар.Количество);    
       ТабДокумент.Вывести(Строка);
       
       
   КонецЦикла;
   
   
   //Выводим итоги по странице на последней странице
   Если НомерСтраницы > 1 Тогда
       ПоследняяСтрока.Параметры.СуммаПоСтранице = Формат(СуммаПоСтранице, "ЧДЦ=2");
       ТабДокумент.Вывести(ПоследняяСтрока);
   КонецЕсли;
   
   //Выводим итоги по документу    
   Итого.Параметры.СуммаПоДокументу = Формат(СуммаПоДокументу, "ЧДЦ=2");
   ТабДокумент.Вывести(Итого);
   
   // Проверим, помещается ли подвал
   Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, Подвал) Тогда
       ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
   КонецЕсли;
   
   // Выводим подвал
   //Подвал.Параметры.Склад                      = СокрЛП(Документ.СкладОтправитель);
   //Подвал.Параметры.ПредставлениеПодразделения = СокрЛП(Документ.СкладПолучатель);
   
   
   Подвал.Параметры.а3                      = СокрЛП(Документ.а3);
   Подвал.Параметры.а4                      = СокрЛП(Документ.а4);
   
   
   ТабДокумент.Вывести(Подвал);


   
   
   
   
   
   Возврат ТабДокумент;        
КонецФункции
1 Axel2009
 
04.08.11
11:46
потому что дальше идет общая процедура напечатать, которая не копирует по табличному документу ландшафт или портрет и выводит портрет.
2 tg30000
 
04.08.11
11:47
а как можно изменить?
3 Axel2009
 
04.08.11
11:51
изменив общую процедуру
4 tg30000
 
04.08.11
11:52
это логично, знал бы как то конечно бы изменил...к сожалению не пойму как менять..
5 butterbean
 
04.08.11
11:53
ТабДокумент.ИмяПараметровПечати задай
6 tg30000
 
04.08.11
11:59
что-то не въеду что кому присваивать... ерунда выходит
7 butterbean
 
04.08.11
12:01
(6) что значит "ерунда выходит"?? ты где щас??
8 tg30000
 
04.08.11
12:03
не печатает ланшафт
9 tg30000
 
04.08.11
12:03
сейчас попробую еще..
10 dimaldinho
 
04.08.11
12:15
раскомментируй строку
   //ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТребованиеНакладная_М11";
11 байт
 
04.08.11
12:20
(0) я внешней печатной формой обошелся
12 tg30000
 
04.08.11
12:22
у меня и так это внешняя обработка  сам писал, но не все получается тут только ланшавт не получилось сделать , но сейчай попробую

раскомментируй строку
   //ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТребованиеНакладная_М11";
13 Axel2009
 
04.08.11
12:31
(12) заходишь в общую форму ПечатьДокументов
там в приоткрытии после ВставитьОбласть(ПечатныйДокумент.Область());
добавляешь строчку
ЭлементыФормы.ПолеТабличногоДокумента.ОриентацияСтраницы = ПечатныйДокумент.ОриентацияСтраницы;