| 
    
        
     
     | 
    
  | 
УдалитьФорматСтрок в макете программно. Как? | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        asady    
     07.12.07 
            ✎
    16:20 
 | 
         
        Други.
  
        нужно удалить формат строк в макете (табличном документе) интерактивно делается на раз-два: выделяем строки + ПКМ + удалить формат строк. А как это делается программно?  | 
|||
| 
    1
    
        yalex    
     07.12.07 
            ✎
    16:25 
 | 
         
        (0) В самом макете не получится наверное. 
  
        А вот при формировании ТабличногоДокумента, получаешь Область как ОбластьЯчеекТабличногоДокумента и сней пробуй  | 
|||
| 
    2
    
        asady    
     07.12.07 
            ✎
    16:27 
 | 
         
        (1) что пробовать с ней?
  
        уже все кажется поюзал получаю ТД, хожу по областьям, по ячейкам, меняю ширину, делаю новый формат строк (СоздатьФорматСтрок()), но сбросить не могу. Может кто знает?  | 
|||
| 
    3
    
        yalex    
     07.12.07 
            ✎
    16:34 
 | 
         
        (2) Создавай новый. Делов то)     
         | 
|||
| 
    4
    
        asady    
     07.12.07 
            ✎
    16:36 
 | 
         
        (3) Тут такое дело.
  
        макет создается построителем автоматом. в нем уже стоит особый формат строк. и вот его-то я и хочу сбросить.  | 
|||
| 
    5
    
        Mitriy    
     07.12.07 
            ✎
    16:56 
 | 
         
        ОбластьЯчеекТабличногоДокумента (SpreadsheetDocumentRange)
  
        Очистить (Clear) Синтаксис: Очистить(<Очищать текст>, <Очищать форматирование>, <Очищать рамки>) Параметры: <Очищать текст> (необязательный) Тип: Булево. Определяет необходимость очищения текста ячеек табличного документа. Истина - очищать текст, Ложь - не очищать текст. Значение по умолчанию: Истина <Очищать форматирование> (необязательный) Тип: Булево. Определяет необходимость очищения формата ячеек табличного документа. Истина - очищать формат, Ложь - не очищать формат. Значение по умолчанию: Ложь <Очищать рамки> (необязательный) Тип: Булево. Определяет необходимость удаления рамок ячеек области табличного документа. Истина - удалять рамки; Ложь - не удалять рамки. Значение по умолчанию: Ложь Описание: Очищает содержимое области. Пример: Область.Очистить(); // очищает текст области Область  | 
|||
| 
    6
    
        asady    
     07.12.07 
            ✎
    16:59 
 | 
         
        (5) пробовал  это - очищаеются форматы: шрифты и т.д.
  
        но формат строк стоит - не сбрасывается.  | 
|||
| 
    7
    
        asady    
     07.12.07 
            ✎
    17:01 
 | 
         
        (6) 
  
        именно Макет=ПостроительОтчета.Макет; ШапкаТаблицы=Макет.Области.Найти("ШапкаТаблицы"); Если ШапкаТаблицы<>неопределено Тогда ШапкаТаблицы.Очистить(Ложь,Истина,Ложь); // не то!!!!???? КонецЕсли;  | 
|||
| 
    8
    
        Mitriy    
     07.12.07 
            ✎
    17:11 
 | 
         
        Макет=ПостроительОтчета.Макет;
  
        ШапкаТаблицы=Макет.Области.Найти("ШапкаТаблицы"); Если ШапкаТаблицы<>неопределено Тогда ШапкаТаблицы.Очистить(Ложь,Истина,Ложь); // не то!!!!???? КонецЕсли; ПостроительОтчета.Макет = Макет; Пробовал добавить?  | 
|||
| 
    9
    
        asady    
     07.12.07 
            ✎
    17:14 
 | 
         
        (8)
  
        пишу Макет.показать() и вижу ТД с форматом строк :((((  | 
|||
| 
    10
    
        Mitriy    
     07.12.07 
            ✎
    17:41 
 | 
         
        Если работаешь с построителем, то там еще есть такое понятие, как макет оформления...     
         | 
|||
| 
    11
    
        Mitriy    
     07.12.07 
            ✎
    17:46 
 | 
         
        Вообще-то, у меня работает (на первую строчку обрати внимание):
  
        ПостроительОтчета.Макет = Неопределено; Макет=ПостроительОтчета.Макет; ШапкаТаблицы=Макет.Области.Найти("ШапкаТаблицы"); Если ШапкаТаблицы<>неопределено Тогда ШапкаТаблицы.Очистить(Ложь,Истина,Ложь); // не то!!!!???? КонецЕсли; ПостроительОтчета.Макет = Макет;  | 
|||
| 
    12
    
        Mitriy    
     07.12.07 
            ✎
    17:52 
 | 
         
        ПостроительОтчетаОтчет.Макет = Неопределено;
  
        Макет = ПостроительОтчетаОтчет.Макет; ШапкаТаблицы=Макет.Области.Найти("ШапкаТаблицы"); ШапкаТаблицы.Очистить(0,1,0); ПостроительОтчетаОтчет.Макет = Макет; ПостроительОтчетаОтчет.Макет.Показать();  | 
|||
| 
    13
    
        asady    
     07.12.07 
            ✎
    18:05 
 | 
         
        (12) ну и что?
  
        у меня тоже работает, но формат строк таким убразом сбросить не удается. ты видно сабж не понял.... есть форматы ячеек и формат строк (это когда ширина колонок в зависимости от области разная по документу)  | 
|||
| 
    14
    
        Mitriy    
     07.12.07 
            ✎
    18:18 
 | 
         
        Если нужна ширина колонок, тогда еще проще:
  
        Отдельная область: ШапкаТаблицы.ШиринаКолонки = 10; Весь табдок: Макет.Область().ШиринаКолонки = 10; Остальное все то же самое...  | 
|||
| 
    15
    
        Mitriy    
     07.12.07 
            ✎
    18:25 
 | 
         
        и вообще, какие вопросы, такие и ответы 9)     
         | 
|||
| 
    16
    
        PR    
     07.12.07 
            ✎
    18:33 
 | 
         
        Мое мнение по сабжу, в 1С просто прозевали этот метод и не включили его в платформу.     
         | 
|||
| 
    17
    
        asady    
     07.12.07 
            ✎
    19:01 
 | 
         
        (14)
  
        Пробовал и так... ты просто невнимательно сабж читал. при установке одинаковой ширины на весь док - формат строк не сбрасывается! потом пытаемся менять ширину колонок и убеждаемся в том, что колокни ведут себя по разному для различных областей (строк)  | 
|||
| 
    18
    
        Mitriy    
     07.12.07 
            ✎
    19:12 
 | 
         
        Попробую подвести итоги того, что получилось у меня 9)
  
        В принципе все это разруливается следующим: Задать ширину колонок: Область.ШиринаКолонки = Сколько-то; Если нужно вернуться к ширине колонок, которая была задана изначально, тогда: Область.СоздатьФорматСтрок(); (при работе с макетом бесполезна, потому что там ширина колонок уже изначальная) Очистить форматы: Область.Очистить(0,1,0); Автоматически установить высоту строк (после очистки формата): Область.АвтоВысотаСтроки = Истина; Итого получается (если с макетом): ПостроительОтчета.Макет = Неопределено; Макет = ПостроительОтчета.Макет; Область = Макет.Область(); Область.Очистить(0,1,0); Область.ШиринаКолонки = 10; Область.АвтоВысотаСтроки = Истина; ПостроительОтчетаОтчет.Макет = Макет; ПостроительОтчетаОтчет.Макет.Показать(); //вижу макет безо всяких форматов и переносов строк ПостроительОтчета.Вывести(ЭлементыФормы.ПолеТабличногоДокумента); //вижу сам отчет тоже без форматов и переносов Далее попробовал менять ширину колонок, все работает нормально, но, после того, как поигрался с шириной сделал следующее: ЭлементыФормы.ПолеТабличногоДокумента.Область().СоздатьФорматСтрок(); Все вернулось к первоначальному результату... Я подозреваю, что ты зацикливаешься на макете (выводишь его и в нем меняешь ширину колонок). Лучше испытывать результат, оно как-то надежнее 9)  | 
|||
| 
    19
    
        PR    
     07.12.07 
            ✎
    19:36 
 | 
         
        (18) Ты сказал чушь, читай (17)     
         | 
|||
| 
    20
    
        asady    
     07.12.07 
            ✎
    20:01 
 | 
         
        (18) еще раз повторю (для тех кто в танке) - 
  
        ПостроительОтчета.Макет = Неопределено; Макет = ПостроительОтчета.Макет; Область = Макет.Область(); Область.Очистить(0,1,0); Область.ШиринаКолонки = 10; Область.АвтоВысотаСтроки = Истина; ПостроительОтчета.Макет = Макет; ПостроительОтчета.Макет.Показать(); ПостроительОтчета.Вывести(ЭлементыФормы.ПолеТабличногоДокумента); не работает!!!!! формат строк остается!!!! при одинаковой ширине колонок формат строк сохраняется. у тебя наверное построитель другой :)))) ВЫБРАТЬ ВложенныйЗапрос.ИмяПоказателя , ВложенныйЗапрос.Показатель1, ВложенныйЗапрос.Показатель2 ИЗ (ВЫБРАТЬ &Ссылка00011 КАК ИмяПоказателя, 0 КАК Показатель1, Остатки.СуммаОстатокДт КАК Показатель2 ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&КонПериода, Счет В ИЕРАРХИИ (&Счет00011N1), ,Организация=&Организация) КАК Остатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ &Ссылка00006, Остатки.СуммаОстатокДт, 0 ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&НачПериода, Счет В ИЕРАРХИИ (&Счет00006N1), ,Организация=&Организация) КАК Остатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ &Ссылка00006, 0, Остатки.СуммаОстатокДт ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&КонПериода, Счет В ИЕРАРХИИ (&Счет00006N2), ,Организация=&Организация) КАК Остатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ &Ссылка00009, 0, 0)КАК ВложенныйЗапрос ИТОГИ СУММА(Показатель1), СУММА(Показатель2) ПО ИмяПоказателя ИЕРАРХИЯ Такой Запрос через построитель (Одно измерение, два показателя) выводит всегда с форматом строк в областях ШапкаТаблицы ИмяПоказателя ИмяПоказателяИерархия Детали ПодвалТаблицы и сбросить программно этот формат строк не удалось. :((((  | 
|||
| 
    21
    
        PR    
     07.12.07 
            ✎
    20:19 
 | 
         
        Программно сбросить формат строк получится только через копирование макета.  
        То есть берем новый макет и в него по очереди копируем из старого все области с разными форматами строк и меняем ширину колонок.  | 
|||
| 
    22
    
        asady    
     07.12.07 
            ✎
    20:24 
 | 
         
        (21) пробую и так.
  
        но вот в чем проблема (новые грабли!) при копировании области слетают параметры области макета. вот пример: ПостроительОтчета.Макет = Неопределено; Макет=ПолучитьМакет("Макет"); колстрок=Макет.ВысотаТаблицы; тКол=Макет.Область("C"+тОбласть.Лево); Для каждого пок из тОтчет.Показатели Цикл Если пок.НомерСтроки=1 Тогда Продолжить; КонецЕсли; тПр=Макет.Область("C"+(тОбласть.Лево+пок.НомерСтроки-1)); Макет.ВставитьОбласть(тКол,тПр); КонецЦикла; в ТД копируются нужные мне колонки, но параметры в них заменяются текстом. то бишь был параметр "Показатель1" стал текст Показатель1. Тьфу блин зараза!  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |