Имя: Пароль:
1C
1С v8
СКД ПриКомпоновкеРезультата()
0 Cоляпсус
 
20.02.18
14:52
Здравствуйте, помогите понять, ну и реализовать в скд ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка).
Необходимо получить вид альбомной страницы при печати макета.
Всё создано конструктором crl? а макет в макете скд
Понятно что необходимо задать:
ДокументРезультат.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
но как получить документРезультат? В пустом значении не будет же выводится.
Читал что нужно передать в ТЗ результат crl? но не понял как.
Спасибо
1 D3O
 
20.02.18
14:55
(0) вот так и пиши. ДокументРезультат - это табличный документ, которые выводится. в какой момент ему установить ориентацию - во время формирования, или после - без разницы
2 ildary
 
20.02.18
14:56
(0) Как получить? Вы его уже получили в параметрах функции ПриКомпоновкеРезультата().
3 Гипервизор
 
20.02.18
14:57
ДокументРезультат это параметр процедуры ПриКомпоновкеРезультата. Что вам еще надо отдельно получать и для чего?
4 Cоляпсус
 
20.02.18
15:00
Написал такую вот процедуру, но не срабатывает почему-то:

СтандартнаяОбработка = Ложь;

Сообщить("-----");
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Настройки = КомпоновщикНастроек.ПолучитьНастройки();

МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных, , ДанныеРасшифровки, Истина);

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

ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
  ДокументРезультат.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
   //ДокументРезультат.АвтоМасштаб=Истина;
КонецПроцедуры
5 Cоляпсус
 
20.02.18
15:01
ДокументРезультат.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
хотя вот это истина, но всёравно портрет получается
6 Cоляпсус
 
20.02.18
15:07
ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка).  
ДокументРезультат.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
ДокументРезультат.АвтоМасштаб=Истина;
КонецПроцедуры
ссори, ссори извиняюсь за лишний флуд, написанного здесь выше достаточно, но всёравно не пойму, отказывается работать
7 bodri
 
20.02.18
15:09
а если запихнуть перед

ПроцессорВывода.УстановитьДокумент(ДокументРезультат);

??
8 Cоляпсус
 
20.02.18
15:11
Надо тогда задать процессор вывода же? Сейчас в синтаксис посмотрю
9 Cоляпсус
 
20.02.18
15:14
(7) А зачем? Он же вроде и так табличный документ?
10 Cоляпсус
 
20.02.18
15:19
ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)  
ДокументРезультат.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
ДокументРезультат.РазмерСтаницы = "А5";
КонецПроцедуры
чего-то не хватает, хотя в отладчике определяет всё правильно, но на принтере Портрет
Подскажите что не так? Спасибо)
11 Малыш Джон
 
20.02.18
15:20
(10)
а в настройках принтера что стоит?
12 Малыш Джон
 
20.02.18
15:20
+ (11) *в настройках печати
13 Cоляпсус
 
20.02.18
15:25
(12) А при чём здесь принтер, этому должно быть всёравно что печатать. Ему же прислали Ланшафт а5, значит извольте выдать. Он же не листы поворачивает, а тект, ну или картинку. Точнее не поворачивает даже, а смотрит и печатает, то что дали
14 Cоляпсус
 
20.02.18
15:26
(12) Этот же отчёт лезет лёжа, другой же может стоя быть
15 Малыш Джон
 
20.02.18
15:26
(13) а ты посмотри все равно
16 Малыш Джон
 
20.02.18
15:36
Как вариант - 1С для показа отчета без своей формы использует стандартную форму, а при печати из стандартной и настройки для принтера берутся стандартные.
17 Cоляпсус
 
20.02.18
15:50
(15) Ну в настройках принтера А4 и Портрет, но не должно это влиять на печать ведь в настройках документа явно сказано
http://prntscr.com/ihbaqt
не пойму как победить
18 Cоляпсус
 
20.02.18
16:06
Наверное как-то придётся передавать на форму и задавать ей ориентацию и размер?
19 Cоляпсус
 
20.02.18
16:06
Хотя формы пока нет
20 drcrasher
 
20.02.18
16:09
в (10) достаточно, если своя форма у отчёта. можно ничего не добавлять.
если без формы, то в (10) добавить для док.рез имя настроек печати
21 Cоляпсус
 
20.02.18
16:13
(20) ДокументРезультат.ИмяПараметровПечати? А что туда обычно пишется? Там тип вроде строка
22 Cоляпсус
 
20.02.18
16:16
(20) А подскажите, не совсем понимаю. У отчёта есть форма, но она форма выбора
http://prntscr.com/ihbp92 это и всё, а отчёт на скд конечно выглядит по другому, не пойму что-то надо доделать?
23 kda26
 
20.02.18
16:20
(21) Имя макета
24 kda26
 
20.02.18
16:25
типо:
ДокументРезультат.ИмяПараметровПечати = ПАРАМЕТРЫ_ПЕЧАТИ_СписаниеТМЦ";
25 Cоляпсус
 
20.02.18
16:29
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
//ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
   ДокументРезультат.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
   ДокументРезультат.РазмерСтраницы = "A5";
   ДокументРезультат.ЭкземпляровНаСтранице = 2;
   ДокументРезультат.КлючПараметровПечати  = "ПАРАМЕТРЫ_ПЕЧАТИ_ОсновнаяСхемаКомпоновкиДанных";
Сообщить(ДокументРезультат.КлючПараметровПечати);
КонецПроцедуры
ну сейчас это выгляди так, но результат тот же Портрет, ума не приложу, как победить
26 kda26
 
20.02.18
16:32
Если в режиме предварительного просмотра выбрать Ландшафт, закрыть и снова открыть, все равно Портрет?
27 ildary
 
20.02.18
16:32
(25) идея из разряда пепельницу почистить - а если временно на компьютере попробовать сделать другой принтер по умолчанию?
28 drcrasher
 
20.02.18
17:21
параметры печати сохраняются хитрым способом: нужно открыть отчет, указать в настройках принтера нужные параметры (ландшафт, размер страницы и кол-во экземпляров) и распечатать (!!!)
вот тогда оно начнёт нормально сохранять и печатать
29 Cоляпсус
 
20.02.18
17:59
спасибо\
30 mistеr
 
20.02.18
22:23
(28) Печатать не обязательно, достаточно предпросмотра.