Имя: Пароль:
1C
 
Добавить в начало табличного документа
0 CAPITALIST
 
10.09.14
09:20
Задачка. Пользователь хочет отчет ВедомостьТоварыНаСкладах. Не устраивает его в этом отчёте шапка. Как можно свою шапку поставить?

Если попробовать что-то вывести перед вызовом процедуры СформироватьОтчет(ТабличныйДокумент) модуля отчёта, то результат затрёт все ранее выведенное.
Если сделать кнопочку наподобие стандартной "Заголовок отчета" и там уже взять текущий сформированный макет и в начало его неким методом вставить необходимую шапку.

Как возможно это сделать?
1 Добрый хачик
 
10.09.14
09:30
СформироватьОтчет(ТабличныйДокумент)
  ТабличныйДокументШапка = ПолучитьТабДокШапка();
  ТабличныйДокументОтчета = ПолучитьТабДокДляОтчета();
  ТабличныйДокумент.Вывести(ТабличныйДокументШапка);
  ТабличныйДокумент.Вывести(ТабличныйДокументОтчета);
2 CAPITALIST
 
10.09.14
09:49
Если бы в этой процедуре сначала можно было получить сформированный макет отчета, то такое можно было бы сделать. а так там сразу вызывается процедура, которая и формирует и выводит отчет:

Процедура СформироватьОтчет(ТабличныйДокумент) Экспорт
    
    // Перед формирование отчета можно установить необходимые параметры универсального отчета.
    
    УниверсальныйОтчет.СформироватьОтчет(ТабличныйДокумент,,, ЭтотОбъект);

КонецПроцедуры // СформироватьОтчет()
3 Ёпрст
 
10.09.14
09:51
(0) через ВставитьОбласть можешь вставить что угодно
4 Ёпрст
 
10.09.14
09:52
ну и через УдалитьОбласть - удалишь исходную выведенную шапку
5 CAPITALIST
 
10.09.14
10:00
(3) Спасибо! То что надо!

Теперь как вывести параметр?

ТабДок = ЭлементыФормы.ПолеТабличногоДокументаРезультат;
    Макет = ПолучитьМакет("Макет");
    Область = Макет.Область("R1:R4");
    Область.Параметры.Склад = Склад;
    
    СуществующаяОбласть = ТабДок.Область("R1:R4");
    
    ТабДок.ВставитьОбласть(Область, СуществующаяОбласть, ТипСмещенияТабличногоДокумента.ПоВертикали);

Ошибку выдает при попытке задания параметра. Там нет поля "Параметры" как же вывести тогда?
6 Ёпрст
 
10.09.14
10:30
(5) тупо через текст
7 CAPITALIST
 
10.09.14
11:06
(6)Это как?
8 Wobland
 
10.09.14
11:18
(7) область.текст
9 CAPITALIST
 
10.09.14
11:20
Поле не доступно для записи. В любом случае, нужен метод, в котором указывается в какую именно ячейку нужно записать текст
10 Ёпрст
 
10.09.14
11:27
(9) больше кода
11 Ёпрст
 
10.09.14
11:28
и зачем так писать ?
Макет.Область("R1:R4"); ? Не проще ли в макете задать нормальную секцию, с параметрами и не выеживаться ?
12 CAPITALIST
 
10.09.14
13:47
(11) так не получится. При вызове ТабДок.ВставитьОбласть будет ругаться что исходная область отличается.
Все! нашел!

Надо в макете каждой такой ячейке задать имя как области затем

Макет.Области.Склад.Текст = Склад;

затем только

Область = Макет.Область("R1:R4");
СуществующаяОбласть = ТабДок.Область("R1:R4");
    
ТабДок.ВставитьОбласть(Область, СуществующаяОбласть, ТипСмещенияТабличногоДокумента.ПоВертикали);

Всем спасибо за подсказки!
Ошибка? Это не ошибка, это системная функция.