Имя: Пароль:
1C
1С v8
Работа с макетом
0 Ly_Alena
 
23.04.15
11:32
Добрый день! Извиняюсь - сто раз - возможно вопрос простой. Задача следующая: в макете есть много столбцов, но выводить мне нужно только те, что заполнены. Но не просто выводить, а со сдвигом к заполненному столбцу.
Пишу так:
Если НЕ ЗначениеЗаполнено(ДетальнаяВыборкаБрака.КоличествоИзделий) Тогда    ОбластьМакета.Область("КоличествоИзделий").Видимость = Ложь
Иначе
ОбластьМакета.Параметры.КоличествоИзделий = ДетальнаяВыборкаБрака.КоличествоИзделий;
КонецЕсли;

Столбец не выводит - но не выводит там где он в макете. ТО есть если до него столбцы тоже пустые, то в поле одинокий столбец будет стоять с данными. И наоборот, если все заполнено а он нет - то будет пустое место в теле таблицы.
Каксделать, чтобы он сдвигался к заполненному?
1 Рэйв
 
23.04.15
11:35
Придется тебе открывать для себя метод таб дока .Присоединить() и адресацию областей по двум измерениям:-) секции
2 Ly_Alena
 
23.04.15
11:47
(1) Спасибо, сейчас поищу примеры.
3 Рэйв
 
23.04.15
11:49
Пример:

ТабДок = Новый ТабличныйДокумент;
Секция = ТабДок.ПолучитьОбласть("R1C1");
ТабДок.НачатьАвтогруппировкуКолонок();
Секция.Область("R1C1").Текст = "Параметр";
ТабДок.Вывести(Секция,1,"Группа 1",Ложь);
Для К=1 По 10 Цикл
    Секция = ТабДок.ПолучитьОбласть("R1C1");
    Секция.Область().Текст = "А"+К;
    Секция.Область().ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право;
    ТабДок.Присоединить(Секция,2,"Группа 2",Истина);
КонецЦикла;
Секция.Область("R1C1").Текст = "Итого:";
ТабДок.Присоединить(Секция,1,"Группа 2",Ложь);
Секция.Область("R1C1").Текст = "Значение";
ТабДок.Вывести(Секция,1,"Группа 2",Ложь);
Цена = 10; Итог = Цена;
Для К=1 По 10 Цикл
    Секция = ТабДок.ПолучитьОбласть("R1C1");
    Секция.Область().Текст = Цена;
    ТабДок.Присоединить(Секция,2,"Группа 2",Истина);
    Цена = Цена + 10;
    Итог = Итог + Цена;
КонецЦикла;
Секция.Область("R1C1").Текст = Итог;
ТабДок.Присоединить(Секция,1,"Группа 2",Ложь);
ТабДок.ЗакончитьАвтогруппировкуКолонок();
ТабДок.ИтогиСправа = Истина;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.Показать("Пример использования гор. автогруппировки");


(С)СП
:-)
4 Ly_Alena
 
23.04.15
13:06
(3) Огооо, огромное спасибо!
5 Ly_Alena
 
23.04.15
14:00
(3) Я правильно понимаю, что каждую ячейку нужно будет форматировать в ручную, шрифт, рамки, выравнивание?
6 Рэйв
 
23.04.15
14:12
(5)Да нет.Как нарисуешь
Там же вместо нотации "RxCx" Можно и имена использовать горизонтальных и вертикальных секций
7 Ly_Alena
 
24.04.15
06:52
(6) Уф, спасибо