Присоединяет табличный документ к результирующему табличному документу, помещая его в следующей колонке правее самой правой выведенной колонки, начиная со строки, с которой выводился предыдущий табличный документ. Табличные документы, которые выводятся при помощи данного метода, не рекомендуется передавать между клиентом и сервером и обратно.
Синтаксис
Присоединить(<Таблица>, <Уровень>, <ИмяГруппы>, <Открыта>)Примеры платформы
ТабДок = Новый ТабличныйДокумент;
Секция = ТабДок.ПолучитьОбласть("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",Ложь);
ТабДок.ЗакончитьАвтогруппировкуКолонок();
ТабДок.ИтогиСправа = Истина;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.Показать("Пример использования гор. автогруппировки");Полное описание, параметры и ограничения
ТабличныйДокумент.Присоединить (SpreadsheetDocument.Join)
ТабличныйДокумент (SpreadsheetDocument)
Присоединить (Join)
Доступен, начиная с версии 8.0.
Синтаксис:
Присоединить(<Таблица>, <Уровень>, <ИмяГруппы>, <Открыта>)
Параметры:
<Таблица> (обязательный)
Тип: ТабличныйДокумент, ПолеТабличногоДокумента.
Выводимая таблица.
<Уровень> (необязательный)
Тип: Число.
Уровень используется для автоматической группировки колонок табличного документа. Соседние колонки с одинаковым уровнем будут отнесены к одной группе. Строки с минимальным уровнем в группу не объединяются.
<ИмяГруппы> (необязательный)
Тип: Строка.
Название группы, к которой относятся выводимые колонки.
<Открыта> (необязательный)
Тип: Булево.
Истина - выведенная группа будет открыта; Ложь - группа будет выведена в свернутом виде.
Возвращаемое значение:
Тип: ОбластьЯчеекТабличногоДокумента.
Область, в которую был осуществлен вывод.
Описание:
Присоединяет табличный документ к результирующему табличному документу, помещая его в следующей колонке правее самой правой выведенной колонки, начиная со строки, с которой выводился предыдущий табличный документ.
Табличные документы, которые выводятся при помощи данного метода, не рекомендуется передавать между клиентом и сервером и обратно.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Свойство Формат ячейки табличного документа не используется для форматирования значений, выводимых в при помощи шаблона.
Пример:
ТабДок = Новый ТабличныйДокумент;
Секция = ТабДок.ПолучитьОбласть("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",Ложь);
ТабДок.ЗакончитьАвтогруппировкуКолонок();
ТабДок.ИтогиСправа = Истина;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.Показать("Пример использования гор. автогруппировки");
См. также:
ТабличныйДокумент, метод Вывести
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Автоматически сгруппировать месячные колонки по уровням
Вместо ручного начала каждой группы передаём уровни при Присоединить. Уровень 2 отведён месячным деталям, уровень 1 — итоговой колонке.
Где и как запускать
Полный модуль управляемой формы собственной учебной внешней обработки. Построение выполняется на сервере без контекста; показ — на клиенте. Вставляйте на уровне модуля.
Подготовка
Создайте новую внешнюю обработку с управляемой основной формой в учебной базе. Каждый урок — отдельная копия модуля.
На форме создайте команду УчебныйПример и перетащите её на форму как кнопку. В действии команды выберите процедуру УчебныйПример(Команда).
Вставьте весь модуль из примера: УчебныйПример, ПостроитьУчебныйДокумент и УчебнаяТаблица. Серверный вызов возвращает собственный табличный документ клиенту; директивы не удаляйте.
Никакие макеты, документы и справочники конфигурации не нужны. Всё построение — в памяти, без печати, записи файлов и отправки в сервисы.
Показ и ручную проверку выполняйте в тонком клиенте Windows 8.5.1.1343. Каждый урок — отдельная копия формы с пустым модулем до вставки.
&НаКлиенте
Процедура УчебныйПример(Команда)
ТабДок = ПостроитьУчебныйДокумент();
ТабДок.Показать("Учебный документ — без печати и сохранения");
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПостроитьУчебныйДокумент()
ТабДок = Новый ТабличныйДокумент;
ТабДок.НачатьАвтогруппировкуКолонок();
Шапка = Новый ТабличныйДокумент;
Шапка.Область(1, 1).Текст = "Продажи";
ТабДок.Вывести(Шапка, 1, "Итоги", Истина);
Месяцы = Новый Массив;
Месяцы.Добавить(Новый Структура("Название,Сумма", "Январь", 100));
Месяцы.Добавить(Новый Структура("Название,Сумма", "Февраль", 200));
Для Каждого Месяц Из Месяцы Цикл
Колонка = Новый ТабличныйДокумент;
Колонка.Область(1, 1).Текст = Месяц.Название + ": " + Строка(Месяц.Сумма);
ТабДок.Присоединить(Колонка, 2, "Месяцы", Истина);
КонецЦикла;
Итог = Новый ТабличныйДокумент;
Итог.Область(1, 1).Текст = "Итого: 300";
ТабДок.Присоединить(Итог, 1, "Итоги", Истина);
ТабДок.ЗакончитьАвтогруппировкуКолонок();
ТабДок.ИтогиСправа = Истина;
ТабДок.ОтображатьГруппировки = Истина;
ТабДок.ТолькоПросмотр = Истина;
Сообщить(ТабДок.ШиринаТаблицы = 4);
Сообщить(ТабДок.КоличествоУровнейГруппировокКолонок() > 0);
Сообщить(ТабДок.Область(1, 4).Текст = "Итого: 300");
Возврат ТабДок;
КонецФункции
Разбор по шагам
НачатьАвтогруппировкуКолонок включает учёт уровней горизонтального вывода. Вывести задаёт первый блок, Присоединить добавляет колонки справа.
Две месячные колонки имеют более глубокий уровень 2. Итог с уровнем 1 закрывает детализацию.
ЗакончитьАвтогруппировкуКолонок завершает построение структуры. Проверяем факт появления уровней, не предполагаем одинаковое число маркеров у разных режимов вывода.
Как проверить результат
Три проверки дают Истина.
В показе четыре колонки: Продажи, Январь: 100, Февраль: 200, Итого: 300. Сверните/разверните месячную детализацию.
Ожидаемый результат
Минимальный горизонтальный пример автоматических групп с подготовленными числами.
На что обратить внимание
Уровень — параметр группировки, не номер колонки.
Не смешивайте ручной и автоматический режим в одном упражнении без понимания их границ.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Присоединить колонки справа и сгруппировать детали
Вывести располагает новый блок снизу; Присоединить — справа от последнего выведенного блока. Две детальные колонки входят в группу, итог остаётся отдельно.
Где и как запускать
Полный модуль управляемой формы собственной учебной внешней обработки. Построение выполняется на сервере без контекста; показ — на клиенте. Вставляйте на уровне модуля.
Подготовка
Создайте новую внешнюю обработку с управляемой основной формой в учебной базе. Каждый урок — отдельная копия модуля.
На форме создайте команду УчебныйПример и перетащите её на форму как кнопку. В действии команды выберите процедуру УчебныйПример(Команда).
Вставьте весь модуль из примера: УчебныйПример, ПостроитьУчебныйДокумент и УчебнаяТаблица. Серверный вызов возвращает собственный табличный документ клиенту; директивы не удаляйте.
Никакие макеты, документы и справочники конфигурации не нужны. Всё построение — в памяти, без печати, записи файлов и отправки в сервисы.
Показ и ручную проверку выполняйте в тонком клиенте Windows 8.5.1.1343. Каждый урок — отдельная копия формы с пустым модулем до вставки.
&НаКлиенте
Процедура УчебныйПример(Команда)
ТабДок = ПостроитьУчебныйДокумент();
ТабДок.Показать("Учебный документ — без печати и сохранения");
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПостроитьУчебныйДокумент()
ТабДок = Новый ТабличныйДокумент;
Левая = Новый ТабличныйДокумент;
Левая.Область(1, 1).Текст = "Показатель";
Левая.Область(2, 1).Текст = "Продажи";
Детали = Новый ТабличныйДокумент;
Детали.Область(1, 1).Текст = "Книга";
Детали.Область(1, 2).Текст = "Ручка";
Детали.Область(2, 1).Текст = "750";
Детали.Область(2, 2).Текст = "50";
Итог = Новый ТабличныйДокумент;
Итог.Область(1, 1).Текст = "Итого";
Итог.Область(2, 1).Текст = "800";
ТабДок.Вывести(Левая);
ТабДок.НачатьГруппуКолонок("Товарные суммы", Истина);
ТабДок.Присоединить(Детали);
ТабДок.ЗакончитьГруппуКолонок();
ТабДок.Присоединить(Итог);
ТабДок.ИтогиСправа = Истина;
ТабДок.ОтображатьГруппировки = Истина;
ТабДок.ТолькоПросмотр = Истина;
Сообщить(ТабДок.КоличествоУровнейГруппировокКолонок() = 1);
Сообщить(ТабДок.Область(2, 4).Текст = "800");
ТабДок.ПоказатьУровеньГруппировокКолонок(0);
Возврат ТабДок;
КонецФункции
Разбор по шагам
Все три блока по две строки; это делает горизонтальное присоединение наглядным. Итог занимает четвёртую колонку.
Между началом и концом группы присоединяем только две колонки детализации. Колонка Итого присоединяется после закрытия группы.
ИтогиСправа меняет сторону маркера секции. ПоказатьУровеньГруппировокКолонок(0) показывает свернутый уровень.
Как проверить результат
Две проверки дают Истина.
В показе разверните группу сверху: появятся Книга/750 и Ручка/50; Итого/800 уже находится снаружи справа.
У результата четыре колонки, хотя при сворачивании видна только их часть.
Ожидаемый результат
Горизонтальная компоновка с явной группой и отдельной итоговой колонкой.
На что обратить внимание
Присоединить не пересчитывает 750+50: итог здесь подготовлен явно.
ИтогиСправа не гарантирует сохранение положения маркеров при сохранении документа в файл; в уроке файлов нет.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.