Имя: Пароль:
1C
 
Динамическая ячейка макет 1с
0 constantinevio
 
04.03.16
10:32
Допустим у меня есть следующая область в макете табдока:

__________________________________________________
|       |             |                           |
| город |  Система    |   различные данные        |
|_______|_____________|___________________________|


Каким образом можно реализовать вывод этой области, чтобы ячейка город была одна, а Систем и различных данных было несколько, при этом, чтобы ячейка город растягивалась динамически в зависимости от количества строчек.


Законченный вид должен быть таким:

___________________________________________________
|              |            |                      |
|              |  Система 1 | Различные данные     |
|              |____________|______________________|
| г. Петровск  |            |                      |
|              |  Система 2 | Различные данные     |
|              |____________|______________________|
|              |            |                      |
|              |  Система 3 | Различные данные     |
|______________|____________|______________________|
1 Cyberhawk
 
04.03.16
10:42
ТабличныйДокумент.Присоединить (SpreadsheetDocument.Join)
ТабличныйДокумент (SpreadsheetDocument)
Присоединить (Join)
Синтаксис:

Присоединить(<Таблица>, <Уровень>, <ИмяГруппы>, <Открыта>)
Параметры:

<Таблица> (обязательный)

Тип: ТабличныйДокумент; ПолеТабличногоДокумента.
Выводимая таблица.
<Уровень> (необязательный)

Тип: Число.
Уровень используется для автоматической группировки колонок табличного документа. Соседние колонки с одинаковым уровнем будут отнесены к одной группе. Строки с минимальным уровнем в группу не объединяются.
<ИмяГруппы> (необязательный)

Тип: Строка.
Название группы, к которой относятся выводимые колонки.
<Открыта> (необязательный)

Тип: Булево.
Истина - выведенная группа будет открыта; Ложь - группа будет выведена в свернутом виде.
Возвращаемое значение:

Тип: ОбластьЯчеекТабличногоДокумента.
Область, в которую был осуществлен вывод.
Описание:

Присоединяет табличный документ к результирующему табличному документу, помещая его в следующей колонке правее самой правой выведенной колонки, начиная со строки, с которой выводился предыдущий табличный документ.
Табличные документы, которые выводятся при помощи данного метода, не рекомендуется передавать между клиентом и сервером и обратно.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Примечание:

Свойство Формат ячейки табличного документа не используется для форматирования значений, выводимых в при помощи шаблона.
Пример:

ТабДок = Новый ТабличныйДокумент;
Секция = ТабДок.ПолучитьОбласть("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",Ложь);
ТабДок.ЗакончитьАвтогруппировкуКолонок();
ТабДок.ИтогиСправа = Истина;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.Показать("Пример использования гор. автогруппировки");


См. также:

ТабличныйДокумент, метод Вывести

--------------------------------------------------------------------------------

     Методическая информация
2 Cyberhawk
 
04.03.16
10:43
ТабличныйДокумент.Вывести (SpreadsheetDocument.Put)
ТабличныйДокумент (SpreadsheetDocument)
Вывести (Put)
Синтаксис:

Вывести(<Таблица>, <Уровень>, <ИмяГруппы>, <Открыта>)
Параметры:

<Таблица> (обязательный)

Тип: ТабличныйДокумент; ПолеТабличногоДокумента.
Выводимая таблица.
<Уровень> (необязательный)

Тип: Число.
Уровень используется для автоматической группировки строк табличного документа. Соседние строки с одинаковым уровнем будут отнесены к одной группе. Строки с минимальным уровнем в группу не объединяются.
<ИмяГруппы> (необязательный)

Тип: Строка.
Название группы, к которой относятся выводимые строки.
Значение по умолчанию: Пустая строка.
<Открыта> (необязательный)

Тип: Булево.
Истина - выведенная группа будет открыта; Ложь - группа будет выведена в свернутом виде.
Значение по умолчанию: Истина.
Возвращаемое значение:

Тип: ОбластьЯчеекТабличногоДокумента.
Область, в которую был осуществлен вывод.
Описание:

Выводит табличный документ в результирующий табличный документ, добавляя его со следующей строки вслед за самой нижней выведенной строкой, начиная с первой колонки.
Табличные документы, которые выводятся при помощи данного метода, не рекомендуется передавать между клиентом и сервером и обратно.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Примечание:

Свойство Формат ячейки табличного документа не используется для форматирования значений, выводимых в при помощи шаблона.
Пример:

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


См. также:

ТабличныйДокумент, метод Присоединить

--------------------------------------------------------------------------------

     Методическая информация
3 constantinevio
 
04.03.16
11:42
Cyberhawk, огромное спасибо!