8.х Работа с табличным документом

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Ольгусик, 18 фев 2010.

  1. TopicStarter Overlay
    Ольгусик
    Offline

    Ольгусик Опытный в 1С Команда форума

    Регистрация:
    4 фев 2010
    Сообщения:
    646
    Симпатии:
    3
    Баллы:
    29
    В отчете формируются два табл. док. Мне нужно их соединить в один. Как область из второго присоединить справа к тому, что уже есть в первом.
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    все просто - Синтаксис помошник

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

    Ольгусик Опытный в 1С Команда форума

    Регистрация:
    4 фев 2010
    Сообщения:
    646
    Симпатии:
    3
    Баллы:
    29
    Дело в том том, что у меня вниз присоединяет
  4. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Выкладывайте текст. посмотри где ошибка.
    Если у вас области в цикле выводятся то как только вы вывелиобласть из одного табличного докмента вы сразу присоединяйте другой

    т.е. у вас может быть так

    Цикл

    вывести Область1

    КонецЦикла

    Цикл

    Присоеденить Область2

    КонецЦикла

    А должно быть

    Цикл

    вывести Область1
    присоеденить Область2
    КонецЦикла
  5. TopicStarter Overlay
    Ольгусик
    Offline

    Ольгусик Опытный в 1С Команда форума

    Регистрация:
    4 фев 2010
    Сообщения:
    646
    Симпатии:
    3
    Баллы:
    29
    Нет. У меня совершенно два разных запроса. Обв выводятся в разные ТабДоки. Хочу, чтобы былм в одном, но в две колонки
  6. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну вот по этому и не получается.

    я же пишу

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

    выгружайте запросы в ТЗ

    начинайте выводить данные из 1й ТЗ как только вывели строку. ищите по номеру строки ее аналог во второй и присоеденяйте область второй и т.д
    И кстати у вас все области должны быть в одном табличном документе (один макет) .....
  7. TopicStarter Overlay
    Ольгусик
    Offline

    Ольгусик Опытный в 1С Команда форума

    Регистрация:
    4 фев 2010
    Сообщения:
    646
    Симпатии:
    3
    Баллы:
    29
    Разобралась. Спасибо.
  8. antJoker
    Offline

    antJoker

    Регистрация:
    17 дек 2012
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Подскажите с выводом в табДокумент

    ОбластьДиаг = Область в макете не как строка а как ячейка
    есть цикл:
    Для каждого СтрокаТЧ из ТаблицаМЕсяц ЦИкл

    ОбластьДиаг = Макет.ПолучитьОбласть("Диаграмма");
    ОбластьДиаг.Области.Диаграмма.ШиринаКолонки =30;
    ТабДок.Присоединить(ОбластьДиаг);
    КонецЦикла;

    Почему ширина только у первой колонки меняется а у остальных остается по умолчанию?
  9. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    скрин макета вылкадывайте, пока непонятно

    и код в теги оформляйте (кнопка "Код1С")
  10. antJoker
    Offline

    antJoker

    Регистрация:
    17 дек 2012
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Скрин макет

    Вложения:

    • макет.bmp
      Размер файла:
      352,4 КБ
      Просмотров:
      76
  11. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    вот так вы получаете не ячейку, а именно область
    Код:
    ОбластьДиаг = Макет.ПолучитьОбласть("Диаграмма");
    которая у вас отсутствует в макете по всей видимости.

    Опишите задачу, что надо вывести в макет? Почему не хотите использовать область?

Поделиться этой страницей