|
В макете 2 области в одной строке | ☑ | ||
---|---|---|---|---|
0
Faust21
21.04.23
✎
15:41
|
Доброго дня.
Пытаюсь реализовать заполнение областей в макете. Подскажите как сделать так, чтобы в одной строке было 2 области, которые я мог заполнять по очереди. Объясню на примере: В макете 2 области в одной строке Это то что у меня реализовано в excel, такого же я хочу добиться в 1с https://ibb.co/JpNXRR3 Имею такую форму "Перепись" из которой беру все данные: https://ibb.co/DrM58vr В макете 2 области в одной строке Таким кодом я пока умею выводить подряд, но не рядом, данные из таблицы "Перепись": ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьШапкаТаб = Макет.ПолучитьОбласть("ШапкаТаб"); ОбластьЛевая = Макет.ПолучитьОбласть("Левая"); ОбластьПравая = Макет.ПолучитьОбласть("Правая"); ТабДок.Вывести(ОбластьШапка); ТабДок.Вывести(ОбластьШапкаТаб); Номер = 0; Для каждого ТекущаяСтрока из ДокСсылка.Перепись Цикл Номер = Номер+1; ОбластьЛевая.Параметры.Номер = Номер; ОбластьЛевая.Параметры.Название = ТекущаяСтрока.Название; ОбластьЛевая.Параметры.Вес = ТекущаяСтрока.Вес; Если Не ТабДок.ПроверитьВывод(ОбластьЛевая) Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); ТабДок.Вывести(ОбластьШапка); ТабДок.Вывести(ОбластьШапкаТаб); ТабДок.Вывести(ОбластьЛевая); иначе ТабДок.Вывести(ОбластьЛевая); КонецЕсли; Имею такой макет, на котором нарисовал чего хочу добиться: https://ibb.co/VxHpyCQ В макете 2 области в одной строке Прочитал что-то про присоединение, создал столбцы1 и 2, но это мне не помогло, тк не знаю как выводить по одному. Подскажите, как реализовать задумку. Спасибо |
|||
1
Garykom
21.04.23
✎
15:12
|
(0) Присоединить()
|
|||
2
Garykom
21.04.23
✎
15:15
|
1. Выводишь строки в ТабДок1
2. Выводишь строки в ТабДок2 3. Берешь нужную область из ТабДок1 и выводишь в ТабДок3 4. Берешь нужную область из ТабДо2 и присоединяешь в ТабДок3 5. Показать ТабДок3 |
|||
3
mikecool
21.04.23
✎
15:15
|
(0) ты поиском пользуешься?
|
|||
4
mikecool
21.04.23
✎
15:16
|
я такое делал, там нетривиально в один проход
|
|||
5
mikecool
21.04.23
✎
15:17
|
подготавливаешь данные в ТЗ в две колонки, потом выводишь
|
|||
6
Волшебник
21.04.23
✎
15:18
|
Рассчитайте, сколько вмещается на страницу через ПроверитьВывод() и выводите пересечение областей Строка1|Стобец1 или Строка1|Стобец2
ОбластиЯчейки = Макет.ПолучитьОбласть("Строки|Колонки"); здесь примеры https://www.1s-up.ru/oblasti-tablichnogo-dokumenta-v-1s/ |
|||
7
Faust21
22.04.23
✎
19:11
|
(2) Расскажи подробней
Для начала, как правильней: Создать области пересечений ОбластьЛевая = Макет.ПолучитьОбласть("Строка1|Столбец1"); ОбластьПравая = Макет.ПолучитьОбласть("Строка1|Столбец2"); Или именованные области ячеек ОбластьЛевая = Макет.ПолучитьОбласть("Левая"); ОбластьПравая = Макет.ПолучитьОбласть("Правая"); https://ibb.co/VxHpyCQ Для упрощения хочу вывести для начала ровно столько, сколько умещается: Для каждого ТекущаяСтрока из ДокСсылка.Перепись Цикл Номер = Номер +1; Если ТабДок1.ПроверитьВывод(ОбластьЛевая) тогда ОбластьЛевая.Параметры.Номер = Номер; ОбластьЛевая.Параметры.Название = ТекущаяСтрока.Название; ОбластьЛевая.Параметры.Вес = ТекущаяСтрока.Вес; ТабДок1.Вывести(ОбластьЛевая); ИначеЕсли ТабДок2.ПроверитьВывод(ОбластьПравая) тогда ОбластьПравая.Параметры.Номер2 = Номер; ОбластьПравая.Параметры.Название2 = ТекущаяСтрока.Название; ОбластьПравая.Параметры.Вес2 = ТекущаяСтрока.Вес; ТабДок2.Вывести(ОбластьПравая); КонецЕсли; Как вывести и присоединить в "ТабДок"? ТабДок.Вывести(ТабДок1.ПолучитьОбласть("Какой-то синтаксис")); ТабДок.Присоединить(ТабДок2.ПолучитьОбласть("Какой-то синтаксис")); Их надо обходить как-то или что? |
|||
8
Волшебник
22.04.23
✎
22:50
|
(7) Прекратите генерить куски кода и начните думать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |