Имя: Пароль:
1C
1С v8
Табличный документ из разных макетов
0 Seriy
 
21.10.11
17:23
Есть два разных макета, с разной шириной и количеством колонок. Вывожу области из этих макетов в один Табличный документ. При выводе ширина и количество колонок берется из первого макета:

ТабДок = Новый ТабличныйДокумент;
Макет1 = ПолучитьМакет("Макет1");
Макет2 = ПолучитьМакет("Макет2");

Обл1 = Макет1.ПолучитьОбласть("Обл");
Обл2 = Макет1.ПолучитьОбласть("Обл");

ТабДок.Вывести(Обл1);
ТабДок.Вывести(Обл2);

ТабДок.Показать();

Вроде сделал все как в v8: Можно ли объединить несколько табличных документов из разных макетов в один?

Как сделать?
1 Fragster
 
гуру
21.10.11
17:27
(0) потому что читай код:
Обл2 = Макет1.ПолучитьОбласть("Обл");

Обл2 = Макет1.ПолучитьОбласть("Обл");
2 vmv
 
21.10.11
17:28
в бухе подсистема "Справка" вроде так и сделана, да и регламентные отчеты тожа на этой технологии: есть макет поставщик типов-эталонов-областей и есть макет приемник
3 Seriy
 
21.10.11
17:30
(1) Это где вы такой код взяли?
4 DrShad
 
21.10.11
17:30
(3) а ты свой то код прочитал?
5 ДенисЧ
 
21.10.11
17:31
(3) в (0)... :shuffle:
6 Seriy
 
21.10.11
17:31
(2) это надо туда лезть разбираться...
7 Seriy
 
21.10.11
17:32
(4) Правильный код вот:
ТабДок = Новый ТабличныйДокумент;
Макет1 = ПолучитьМакет("Макет1");
Макет2 = ПолучитьМакет("Макет2");

Обл1 = Макет1.ПолучитьОбласть("Обл");
Обл2 = Макет2.ПолучитьОбласть("Обл");

ТабДок.Вывести(Обл1);
ТабДок.Вывести(Обл2);

ТабДок.Показать();

Я его здесь прямо написал, по аналогии с тем что у меня в конф-ре. Все равно не работает
8 DrShad
 
21.10.11
17:33
(6) убейся об косяк, тока без обид
9 Seriy
 
21.10.11
17:33
(1) сорри, (4) сорри, но вы все равно не правы
10 DrShad
 
21.10.11
17:33
(7) все врено по первому макету будет ширина
11 Seriy
 
21.10.11
17:34
(8) сам убейся об косяк. не знаешь как сделать элементарных вещей - нечего иронизировать. без обид.
12 Seriy
 
21.10.11
17:35
(10) вот именно. а МОЖНО сделать так чтоб ширина была разной. сейчас сделаю - и отпишусь сюда
13 DrShad
 
21.10.11
17:42
(12) можно, смотри как типовой документ печатется с кодом номенклатуры или без него
14 Seriy
 
21.10.11
17:45
(13) я уже понял где смотреть. сейчас сделаю - и напишу сюда, как сделать.
15 DrShad
 
21.10.11
17:46
(14) да я то в курсе, но писать как это долго
16 Kom-off
 
21.10.11
17:46
(13) Не, там возможно, не то. Автору надо в одном выходном табличном документе иметь разные колонки для областей из разных макетов. Как то делал так, не помню как.
17 Seriy
 
21.10.11
17:46
// Производит соединение разных по форматированию табличных документов
// ТДПриемник - табличный документ, в кот. устанавливается новый формат
// Отчет - табличный документ, на основании кот. будет установлен новый формат
Процедура ДобавитьОтчет(ТДПриемник, Отчет, ВыводитьРазделительСтраниц = Ложь) Экспорт

   Если ВыводитьРазделительСтраниц Тогда
       ТДПриемник.ВывестиГоризонтальныйРазделительСтраниц();
   КонецЕсли;    
   НачалоНовогоФорматаСтрок = ТДПриемник.ВысотаТаблицы + 1;
   ОбластьПрямоугольная = Отчет.Область(1, , Отчет.ВысотаТаблицы, );
   ТДПриемник.ВставитьОбласть(ОбластьПрямоугольная, ТДПриемник.Область(НачалоНовогоФорматаСтрок, 1));
   ТДПриемник.Область(НачалоНовогоФорматаСтрок, , НачалоНовогоФорматаСтрок + Отчет.ВысотаТаблицы - 1, ).СоздатьФорматСтрок();
   // назначим ширину колонок у новой области формата строк
   Для Счетчик = 1 По Отчет.ШиринаТаблицы Цикл
       ТДПриемник.Область(НачалоНовогоФорматаСтрок, Счетчик).ШиринаКолонки = Отчет.Область(1, Счетчик, 1, Счетчик).ШиринаКолонки;
   КонецЦикла;

КонецПроцедуры // ДобавитьОтчет
18 Seriy
 
21.10.11
17:57
(15) убейся об косяк, тока без обид
19 Seriy
 
21.10.11
18:05
Веселых выходных всем! =))
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.