Имя: Пароль:
1C
1С v8
Убрать разделитель страниц и готового ТабличногоДокумента
0 GoKerze
 
13.04.16
12:25
Делаю внешнюю печатную форму и что-то лень тащить в нее много кода. Некая функция возвращает мне ТабличныйДокумент и я его исправляю уже после формирования. Смотрите код:

ТабДокумент = ПечатьУниверсальногоПередаточногоДокумента();
    
ОбластьАдресПокупателя = ТабДокумент.Область("R12C7:R12C7");
Если НЕ ОбластьАдресПокупателя.СодержитЗначение Тогда
    ОбластьАдресПокупателя.Текст = "Планета Земля";    
КонецЕсли;
    
ОбластьОснование = ТабДокумент.Область("R35C6:R36C17");
Если НЕ ОбластьОснование.СодержитЗначение Тогда
    ОбластьОснование.Текст = "Основной договор";    
КонецЕсли;
    
Возврат ТабДокумент;

Но вот не пойму как мне найти и убрать ГоризонтальныйРазделительСтраниц. Есть идеи?
1 singlych
 
13.04.16
12:44
У области есть свойство КонецСтраницы.
2 GoKerze
 
13.04.16
13:35
С ОбластьОснование я погорячился. Область плавающая. Лучше так заменить:

ОбластьОснование = ТабДокумент.НайтиТекст(СсылкаНаОбъект.ДоговорКонтрагента.Наименование);    
Если НЕ ОбластьОснование = Неопределено Тогда
    Если НЕ ОбластьОснование.СодержитЗначение Тогда
        ОбластьОснование.Текст = "Основной договор";    
    КонецЕсли;
КонецЕсли;
3 GoKerze
 
13.04.16
14:17
singlych, спасибо за наводку.

Господи! Не хотел ведь фикалиекодить.
Это код, которым я удаляю ГоризонтальныйРазделительСтраниц и ЗаголовокТаблицы вставленный на втором листе.

Для й = 1 по 100 Цикл        
    ИмяОбласти = "R" + Строка(й);
    Область = ТабДокумент.Область(ИмяОбласти);

    Если Область.КонецСтраницы Тогда
            
        Область.КонецСтраницы = Ложь;
            
        ИмяОбластьНенужнаяШапкаТаблицы = "R" + Строка(й+1) + "C1:" + "R" + Строка(й+3) + "C17";
        ОбластьНенужнаяШапкаТаблицы = ТабДокумент.Область(ИмяОбластьНенужнаяШапкаТаблицы);        
        ОбластьНенужнаяШапкаТаблицы.АвтоВысотаСтроки = Ложь;
        ОбластьНенужнаяШапкаТаблицы.ВысотаСтроки = 1;
        ТабДокумент.УдалитьОбласть(ОбластьНенужнаяШапкаТаблицы);
        
        Прервать;
    КонецЕсли;
        
КонецЦикла;

Рассказываю почему все так плохо:

1) Не нашел возможности получить Область от Области. Это бы сделало траву зеленее, вечность основательнее, код адекватнее.
2) Метод ПолучитьОбласть возвращает новый ТабличныйДокумент изменение которого не приводит к изменению исходного ТабличногоДокумента и который не впихнуть обратно через ВставитьОбласть(<ИсходнаяОбласть>, <ОбластьПриемник>, <Сдвиг>, <ЗаполнятьПараметры>), например, даже если взять от него Область. Зачем там "ПолучитьОбласть" я хз.
3) Метод УдалитьОбласть удаляет содержимое строк, но не строки. Остается пустая белая полоса вместо удаленной области. Указав "Смещать = ТипСмещенияТабличногоДокумента.ПоВертикали;" мы лишь переносим белую полосу ниже. Метод вроде "УдалитьСтрокиНиже" я не нашел.
4 singlych
 
13.04.16
14:47
Вроде не должно быть белых полос, если область ненужной шапки получать как область строк (типа R(й+1):R(й+3)) и удалять со смещением по вертикали.
5 singlych
 
13.04.16
14:52
А еще можно сделать новый табдок, в который вывести из старого все области, кроме ненужных.
Независимо от того, куда вы едете — это в гору и против ветра!