Имя: Пароль:
1C
 
УдалитьФорматСтрок в макете программно. Как?
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. Тьфу блин зараза!