Имя: Пароль:
1C
1С v8
альбомная ориентация в отчете скд 1c 8.2
,
0 manti
 
17.12.13
17:53
Может тема уже и поднималась.
Как в отчете СКД сделать альбомную ориентацию под тонкий клиент?

вот так

Функция СформироватьОтчет(Результат = Неопределено, ДанныеРасшифровки,ВыводВФормуОтчета = Истина) Экспорт

    Если ДанныеРасшифровки = Неопределено тогда
        ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КонецЕсли;

    
    Результат.Очистить();
    
    Макет = ЭтотОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    
    ЭтотОбъект.СкомпоноватьРезультат(Результат, ДанныеРасшифровки);
    Результат.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
    Результат.ПоказатьУровеньГруппировокСтрок(1);
    
    Возврат Результат;    
КонецФункции

и так

ДанныеРасшифровки = Неопределено;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
    
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, Новый Структура("Данные", ТЗ), ДанныеРасшифровки);
// Установим Альбомную ориентацию страницы
ДокументРезультат = ЭлементыФормы.Результат;
ДокументРезультат .ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;

// Выводим данные отчета
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент( ДокументРезультат);
    
    ПроцессорВывода.НачатьВывод();
    
    ЭлементРезультата = ПроцессорКомпоновки.Следующий();
    Пока ЭлементРезультата <> Неопределено Цикл
        ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
        ЭлементРезультата = ПроцессорКомпоновки.Следующий();
    КонецЦикла;
    
    ПроцессорВывода.ЗакончитьВывод();

не прокатывает
1 Wobland
 
17.12.13
17:55
так же, как и в отчёте без СКД
2 Wobland
 
17.12.13
17:55
и так же, как и под толстый
3 manti
 
17.12.13
17:57
(2) есть пруший пример ) может где в типовйо ЗУП есть кто подскажет?
4 manti
 
17.12.13
18:01
Переменная не определена (СхемаКомпоновкиДанных)
    МакетКомпоновки = КомпоновщикМакета.Выполнить(<<?>>СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки); (Проверка: Сервер)
{Форма.ФормаОтчета.Форма(88,74)}: Переменная не определена (КомпоновщикНастроек)
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, <<?>>КомпоновщикНастроек.Настройки, ДанныеРасшифровки); (Проверка: Сервер)
{Форма.ФормаОтчета.Форма(91,85)}: Переменная не определена (ТЗ)
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, Новый Структура("Данные", <<?>>ТЗ), ДанныеРасшифровки); (Проверка: Сервер)
если с тем кодом что выше то ругается на неимение таких вот реквизитов
5 manti
 
18.12.13
09:41
up
6 Defender aka LINN
 
18.12.13
09:51
(4) А слабО теперь рассказать, какое это отношение имеет к ориентации страницы?
7 manti
 
18.12.13
09:51
Нужен пример под тонкий клиент  - УФ)
8 Wobland
 
18.12.13
09:54
(7) под толстый ОФ сгодится?
9 manti
 
18.12.13
10:00
(8) нет, управляемая форма
10 Wobland
 
18.12.13
10:01
а вдруг документ на сервере формируется?
11 manti
 
18.12.13
10:10
(10) есть такое, что поменять в коде?
12 Wobland
 
18.12.13
10:11
дарю. ТабДокумент.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
13 manti
 
18.12.13
10:21
(12) спасибо , на форме есть Результат типа ТабДокумент. Форма отчета построена конструктором автоматом. Так а как к этому результату обратиться там по идее нужен какой-нить процессор компановки
14 Wobland
 
18.12.13
10:25
а он что, элемент формы?
15 manti
 
18.12.13
10:31
(14) да, попробуйте нарисовать форму любого отчета на СКД - сами увидите
16 Wobland
 
18.12.13
10:36
авотфих. на форме нет Результата типа ТабДокумент
17 manti
 
18.12.13
10:41
(16) что ? еще раз плиз
18 Defender aka LINN
 
18.12.13
10:48
(16) Врать-то не надо
19 Wobland
 
18.12.13
11:25
(18) вот те крест
20 manti
 
18.12.13
11:46
Если кому то тожеактуально, то в модуле объекта сделал экспортную пр-ру:

Процедура СформироватьРезультат(Результат) Экспорт
    СхемаКомпоновки = ПолучитьМакет("Макет1");
        
    КомпоновщикМакетаКомпоновкиДанных = Новый КомпоновщикМакетаКомпоновкиДанных;
   // МакетКомпоновкиДанных = КомпоновщикМакетаКомпоновкиДанных.Выполнить(СхемаКомпоновки,КомпоновщикНастроек.Настройки);
     МакетКомпоновкиДанных = КомпоновщикМакетаКомпоновкиДанных.Выполнить(СхемаКомпоновки,КомпоновщикНастроек.ПолучитьНастройки());
    
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,,,истина);
    ПроцессорВыводаРезультата = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    
    ПроцессорВыводаРезультата.УстановитьДокумент(Результат);
    ПроцессорВыводаРезультата.Вывести(ПроцессорКомпоновкиДанных);
            
КонецПроцедуры

Далее ее вызов на форме(нарисовал свою кнопку сформировать)

&НаКлиенте
Процедура Сформировать(Команда)
     СформироватьНаСервере();    
КонецПроцедуры

&НаСервере
Процедура СформироватьНаСервере()
    
    Объект = РеквизитФормыВЗначение("Отчет");
    Результат.Очистить();

   Объект.СформироватьРезультат(Результат);
       
    ЭтаФорма.СкомпоноватьРезультат();
    
    Результат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    Результат.АвтоМасштаб = Истина;

КонецПроцедуры
21 manti
 
18.12.13
11:47
ВСЕ
22 Wobland
 
18.12.13
11:48
на здоровье
23 Defender aka LINN
 
18.12.13
12:00

Объект.СформироватьРезультат(Результат);
ЭтаФорма.СкомпоноватьРезультат();

Гени(т)ально

(19) флаг "использовать систему компоновки" ставил, когда форму создавал?
24 Wobland
 
18.12.13
12:03
(23) ставил. да не бывает на форме табдокументов
25 manti
 
18.12.13
12:05
(23) а что эта галка переопределяет?
26 manti
 
18.12.13
12:06
(23) а ты попробуй без ЭтаФорма.СкомпоноватьРезультат(); и отпиши
27 Defender aka LINN
 
18.12.13
12:16
(26) Давай лучше ты попробуешь без первой строки.
(24) Ну, поле табличного документа. Таб. документ - реквизит формы.
(25) Без нее будет тупо форма - рисуй все сам.
28 Wobland
 
18.12.13
12:17
(27) ну для УФ - просто поле ;)
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс