Имя: Пароль:
1C
1С v8
Макет с вертикальными областями
0 Wefast
 
10.06.16
00:50
Хотелось бы понять вообще назначение этих полей


Я беглым поиском понял что можно вывести или нет область справа.
Но в какой момент это все делается не уяснил.

У меня есть 2 таблицы. В одной 10 элементов и в другой 2

Хочу вывести их рядом.

1) Думал Определить есть ли элементы в этих таблицах, если только в первой то одну шапку вывожу и после свою строку в цикле
Если в двух таблицах есть элементы. Вывожу циклом от н=1 по количество элементов строку для обеих таблиц с параметрами. и Проверяю чтобы Н не превышало количество элементов во второй таблице.
Строки второй таблицы вывожу по индексу.
Как вторая таблица кончится вывожу опять область для одной таблицы

2)Думаю для этого и существуют эти области вертикальные. Так ли это?

Попробовал:

    РезультатЗапроса = Запрос.ВыполнитьПакет();
    Рез1= РезультатЗапроса[4].Выгрузить();    // Что есть в обеих базах
    Рез2= РезультатЗапроса[5].Выгрузить();   // Тех что нет
    
    ОбъектОбработки = РеквизитФормыВЗначение("Объект");
    Макет = ОбъектОбработки.ПолучитьМакет("Макет1");
    ОблШапка = Макет.ПолучитьОбласть("Шапка|Гл");
    ОблСтрока = Макет.ПолучитьОбласть("Строка|Гл");
    ОблПобШап = Макет.ПолучитьОбласть("Шапка|Поб");
    ОблПобСтр = Макет.ПолучитьОбласть("Строка|пОБ");
    ТабДок.Очистить();    
    ТабДок.Вывести(ОблШапка);
    Для каждого Строка из Рез1 ЦИкл
        ОблСтрока.Параметры.Сотрудник7 = Строка.Сотр7;
        ОблСтрока.Параметры.Сумма7 = Строка.Сумма7;
        ОблСтрока.Параметры.Сотрудник8 = Строка.Сотр8;
        ОблСтрока.Параметры.Сумма8 = Строка.Сумма8;
        ОблСтрока.Параметры.Сравнение = Строка.Сравнение;
        ТабДок.Вывести(ОблСтрока);

    КонецЦикла;
    Если Рез2.Количество()>0 Тогда
        ТабДок.Присоединить(ОблПобШап);
        Для каждого строка из Рез2 Цикл
            ОблПобСтр.Параметры.Сотрудник1 = ?(Строка.Сотр7 = NULL,Строка.Сотр8, Строка.Сотр7);
            ОблПобСтр.Параметры.Сумма1 = ?(Строка.Сотр7 = NULL,Строка.Сумма8, Строка.Сумма7);
            ОблПобСтр.Параметры.Где1 = Строка.Сравнение;
            ТабДок.Вывести(ОблПобСтр); // ИЛИ ТабДок.Присоединить(ОблПобСтр);
        КонецЦикла;
    КонецЕсли;

Получается не то совсем.
Выводится первая таблица. И справа от последней строки выводится шапка второй таблицы.
А строки либо правее выводятся каждый раз либо с первой колонки.
1 Wefast
 
10.06.16
01:20
Хм, вот если не известно какая таблица больше то все может превратится в простыню из условий
Может и в 1 варианте можно как то использовать эти вертикальные области
2 Garykom
 
гуру
10.06.16
01:48
Вывести выводит снизу, присоединить можно справа.
Указание гор и вер областей через "|" дает прямоугольную ограниченную область. Куда ее девать дело прога.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн