8.х СКД и Ориентация страницы

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем desintegrer, 18 фев 2013.

  1. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте.

    Пишу на отчет-обработку на СКД .вывожу в табличный документ .

    Ориентацию задаю в процедуре печати но она не применяется ! ?

    Код:
    ДокументРезультат = Новый ТабличныйДокумент;
    ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ДокументРезультат.АвтоМасштаб = Истина;
    
    Почему так получается ? Как можно все таки применить ориентацию ?
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.989
    Симпатии:
    399
    Баллы:
    104
    Покажите весь код формирования СКД?
  3. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст = " Выбрать
    |РеализацияТоваровУслуг.Номер,
    |РеализацияТоваровУслуг.Дата,
    |РеализацияТоваровУслуг.Ссылка
    |ИЗ
    |Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |ГДЕ
    |РеализацияТоваровУслуг.Ссылка = &Ссылка";
    Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект);
    Результат=Запрос.Выполнить();
    ШапкаРеализации=Результат.Выгрузить();
    
    
    ВнешниеНаборыДанных = Новый Структура;
    ВнешниеНаборыДанных.Вставить("ДокументРТУ",ШапкаРеализации);
    
    
    //ОсновнаяСхемаКомпоновкиДанных - макет схемы компоновки данных
    Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    
    Настройки = Схема.НастройкиПоУмолчанию;
    
    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();
    
    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
    
    
    //здесь можно установить параметры
    //параметр данных
    //!!!!!!!обязательно в компоновке на закладке ПАРАМЕТРЫ необходимо снять галочку ОГРАНИЧЕНИЕ ДОСТУПНОСТИ и поставить ВКЛЮЧАТЬ В ДОСТУПНЫЕ ПОЛЯ
    //на закладке НАСТРОЙКИ дожна стоять галочка напротив настроек, к которым будем обращаться программно
    //пример для параметра с именем ССЫЛКА
    ПараметрДекларация = Новый ПараметрКомпоновкиДанных("Ссылка");
    
    ЗначениеПараметраДекларация = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрДекларация);
    
    ЗначениеПараметраДекларация.Значение = СсылкаНаОбъект;
    
    ЗначениеПараметраДекларация.Использование = Истина;
    
    //параметр вывода
    ЗначениеПараметраВыводитьПараметры = КомпоновщикНастроек.Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("DataParametersOutput"));
    
    ЗначениеПараметраВыводитьПараметры.Значение = ТипВыводаТекстаКомпоновкиДанных.НеВыводить;
    
    ЗначениеПараметраВыводитьПараметры.Использование = Истина;
    
    
    
    Настройки = КомпоновщикНастроек.Настройки;
    
    
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    
    МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки);
    
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    //
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных);
    
    ДокументРезультат = Новый ТабличныйДокумент;
    ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ДокументРезультат.АвтоМасштаб = Истина;
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ///
    
    //Секция = ДокументРезультат.ПолучитьОбласть("R1");
    //Секция.Область("R45C1").Текст = " * Подписи";
    //ДокументРезультат.Вывести(Секция);
    ///
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    
    
    //ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    // ДокументРезультат.АвтоМасштаб = Истина;
    
    ДокументРезультат.ОтображатьЗаголовки = Ложь;
    
    ДокументРезультат.ОтображатьСетку = Ложь;
    
    //ДокументРезультат.АвтоМасштаб = Истина;
    
    Возврат ДокументРезультат;
    
  4. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    перенесите вот это
    Код:
    ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ДокументРезультат.АвтоМасштаб = Истина;
    туда, где
    Код:
    ДокументРезультат.ОтображатьЗаголовки = Ложь;
    
    ДокументРезультат.ОтображатьСетку = Ложь;
    и попробуйте
  5. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    а выложенном коде - ведь уже видно что так пробовали !!!
  6. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.989
    Симпатии:
    399
    Баллы:
    104
    Отладчиком посмотрите. На каком этапе косяк.
  7. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    как проверить отладчиком ?
  8. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а после того как выполнится данная функция, что делаете с этим табдоком?

    специально у себя попробовала, так как советовала, у меня все отрабатывает... покажите что дальше с табдоком делаете, ну или сами посмотрите
  9. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    ТабДок = Печать(); (это вызов всего кода который в предыдущем посте)


    УниверсальныеМеханизмы.НапечататьДокумент(ТабДок, 1, Ложь, Строка(СсылкаНаОбъект),СсылкаНаОбъект);
  10. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    как я понял в универсальных механихмах (общая процедура ) т.к. она вызывается передачи параметра печати то выводится всё по умолчанию !
    А как их правильно в неё передать ?
  11. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    попробуйте все таки отладчиком. Посмотрите перед возвратом табличного документа в конце функции Печать() в свойствах табличного документа ОриентацияСтраницы чему равна.
    З.Ы. все таки считаю правильным задавать параметры табдока перед возвратом.
  12. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    да уже понятно что неважно чему она равна - в процедуру эти параметры не попадают .
  13. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    в процедуру попадает то, что вы туда передаете. Вы уверены, что данное свойство присваивается вашему табдоку?
  14. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    Такой вызов не сработал !

    Код:
    УниверсальныеМеханизмы.НапечататьДокумент(ТабДок, 1, Ложь, Строка(СсылкаНаОбъект),СсылкаНаОбъект,ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт);
  15. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    вы найдите эту процедуру в общих модулях и проследите что она делает с вашим табдоком и что туда надо передать, в принципе там интуитивно понятно. Я бы в таком случае активно юзала отладчик и выясняла на каком этапе меняется ориентация страницы
  16. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    такой у неё вызов в общем модуле
    НапечататьДокумент(ПечДокумент, КоличествоЭкземпляров = 1, НаПринтер = Ложь, Заголовок = "", Ссылка = Неопределено, ПараметрыПечДокумента = Неопределено) Экспорт

    ПаораметрыПечДокумента - по логике это они - хотелось бы понять как мне в вызове их прописать ?
  17. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а сам код процедуры приведите, он ведь небольшой... а то у меня немного другие параметры в этой процедуре...
  18. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    Код:
    Если ПечДокумент = Неопределено тогда
    Возврат Неопределено;
    КонецЕсли;
    // Получить необходимое количество копий
    Если КоличествоЭкземпляров > 0 Тогда
    ПечДокумент.КоличествоЭкземпляров = КоличествоЭкземпляров;
    КонецЕсли;
    Если НЕ ПечДокумент.АвтоМасштаб
    И НЕ ЗначениеЗаполнено(ПечДокумент.ИмяПринтера) Тогда
    ПечДокумент.АвтоМасштаб = Истина;
    КонецЕсли;
    #Если ТолстыйКлиентОбычноеПриложение или ТолстыйКлиентУправляемоеПриложение Тогда
    РазобратьПоКопиям=ВосстановитьЗначение("ТекущееЗначение_РазобратьПоКопиям");
    #Иначе
    РазобратьПоКопиям=ХранилищеОбщихНастроек.Загрузить("Печать", "РазобратьПоКопиям");
    #КонецЕсли
    
    
    Если ТипЗнч(НаПринтер) = Тип("Булево") Тогда
    Если НаПринтер Тогда
    ПечДокумент.Вывод = ИспользованиеВывода.Разрешить;
    ПечДокумент.Напечатать();
    Иначе
    ФормаПечати = ПолучитьОбщуюФорму("ПечатьДокументов",, Новый УникальныйИдентификатор);
    ФормаПечати.ОбъектПечати	 = Ссылка;
    ФормаПечати.ПечатныйДокумент = ПечДокумент;
    ФормаПечати.Заголовок	    = Заголовок;
    ФормаПечати.Защита		   = УправлениеДопПравамиПользователей.ЗащитаТаблиц();
    ФормаПечати.ПараметрыПечатногоДокумента  = ПараметрыПечДокумента;
    ФормаПечати.Открыть();
    Возврат ФормаПечати;
    КонецЕсли;
    ИначеЕсли ТипЗнч(НаПринтер) = Тип("Массив") Тогда
    ПечДокумент.Вывод = ИспользованиеВывода.Разрешить;
    ПечДокумент.Напечатать();
    НаПринтер.Добавить(ПечДокумент);
    КонецЕсли;
    Возврат Неопределено;
    
  19. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    посмотрите в общих формах тип реквизита
    Код:
    ФормаПечати.ПараметрыПечатногоДокумента
  20. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    Тип = Произвольный
Похожие темы
  1. Лана
    Ответов:
    3
    Просмотров:
    1.418
Загрузка...

Поделиться этой страницей