Вывод пересекающихся областей в табличный документ

1. Diyversus 27.03.25 09:09 Сейчас в теме
Добра и здравия!

Ранее, при работе с выводом отчетов в табличный документ, не возникало задач, где нужно было выводить пересекающиеся горизонтальные и вертикальные области.
Более-менее разобрался, но не могу понять, что нужно настроить в макете, что бы область детальный данных выводилась согласно шапки. Сейчас у меня область деталей съезжает влево, если первая ячейка не содержит значение типа Параметр.
Конечно-же, можно удалить в макете первую пустую колонку и тогда области деталей будет некуда съезжать, но в других отчетах пустые первые колонки есть и области деталей никуда не съезжают.
Хотелось бы разобраться с тонкостями, которых пока не знаю. Моет кто подсказать что делаю не так, или чего необходимого не делаю?

Код - учебный, для разобраться.
Для а = 0 по 10 Цикл
		Область = макет.ПолучитьОбласть("Таблица|ПоказательДетали");
		Показатель = "Показатель " + Строка(а);
		Код = "Код " + строка(а);                               
		Единица = "Единица " + Строка(а);
		Область.Параметры.КодПоказателя = Код;
		Область.Параметры.Показатель = Показатель;
		Область.Параметры.ЕдиницаИзмерения = Единица;
		ТабДок.Вывести(Область);
		Область = макет.ПолучитьОбласть("Таблица|ТаблицаЗначения");
		Для б = 0 По 3 Цикл
			Область.Параметры.План = б * 2;
			Область.Параметры.Факт = б * 2.1;
			ТабДок.Присоединить(Область);
		КонецЦикла;	
	КонецЦикла;	

Показать


Схематичный пример результата вывода - во вложении
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
11. antz 27.03.25 11:15 Сейчас в теме
(10) Достаточно одной вертикальной области "Значения".

Макет.ПолучитьОбласть("ПоказателиШапка|Значения") получает область на скрине 1.

Макет.ПолучитьОбласть("Таблица|Значения") получает область на скрине 2.

И так далее.
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. antz 27.03.25 09:34 Сейчас в теме
А где учебный код вывода шапки?
3. Diyversus 27.03.25 09:41 Сейчас в теме
(2) Не хотел Вас грузить лишними данными ))

Вот код целиком:
Макет = ПолучитьМакет("МакетПомесячно");
	Табдок = ЭлементыФормы.ТабДок;
	Область = Макет.ПолучитьОбласть("ПоказателиШапка|ПоказателиВертикальная");  
	ТабДок.Вывести(Область); 
	Область = Макет.ПолучитьОбласть("ПоказателиШапка|ЗначенияШапка");
	Для а = 0 По 3 Цикл
		Область.Параметры.Период = Дата(2025, а  + 1, 1);
		ТабДок.Присоединить(Область);
	КонецЦикла;
	Показатели = Новый Массив;
	Для а = 0 по 10 Цикл
		Область = макет.ПолучитьОбласть("Таблица|ПоказательДетали");
		Показатель = "Показатель " + Строка(а);
		Код = "Код " + строка(а);                               
		Единица = "Единица " + Строка(а);
		Область.Параметры.КодПоказателя = Код;
		Область.Параметры.Показатель = Показатель;
		Область.Параметры.ЕдиницаИзмерения = Единица;
		ТабДок.Вывести(Область);
		Область = макет.ПолучитьОбласть("Таблица|ТаблицаЗначения");
		Для б = 0 По 3 Цикл
			Область.Параметры.План = б * 2;
			Область.Параметры.Факт = б * 2.1;
			ТабДок.Присоединить(Область);
		КонецЦикла;	
	КонецЦикла;	
	

Показать
4. antz 27.03.25 09:52 Сейчас в теме
(3) Зачем столько разных вертикальных областей? Достаточно двух - "Показатели" и "Значения". А то и одной.
5. Diyversus 27.03.25 10:06 Сейчас в теме
Навряд-ли это имеет ключевое значение в данном вопросе )
В общем, удалил первую колонку, выделил все строки и добавил заново и заработало. Макеты - муторная тема. То значения параметров могут не выводиться, пока просто не переназначишь метод заполнения ячейки, то другие "мистические" моменты.
6. antz 27.03.25 10:32 Сейчас в теме
(5) Сколько лет с макетами работаю - никакой мистики не замечал. Делают ровно то, что им программист пишет.
7. Diyversus 27.03.25 10:46 Сейчас в теме
(6) И ни разу не было случая, когда чуть трогаешь макет, пересатют выводиться параметры и начинают выводиться только после того, как в ячейке установишь способ заполнения Текст, а потом снова Параметр? ))
8. Diyversus 27.03.25 10:54 Сейчас в теме
(6) Как правильно сделать выделенные ячейки вертикальной областью?
У меня получается только путем разбивания ячеек , с последующим удалением ячеек. Тогда области создаются так, как на картинке во вложении к этому собщению
Прикрепленные файлы:
9. antz 27.03.25 11:00 Сейчас в теме
(8) И опять: зачем тут две области, когда достаточно одной?
Прикрепленные файлы:
10. Diyversus 27.03.25 11:06 Сейчас в теме
(9) Можешь подробнее: про какие области говоришь и почему достаточно одной?
11. antz 27.03.25 11:15 Сейчас в теме
(10) Достаточно одной вертикальной области "Значения".

Макет.ПолучитьОбласть("ПоказателиШапка|Значения") получает область на скрине 1.

Макет.ПолучитьОбласть("Таблица|Значения") получает область на скрине 2.

И так далее.
Прикрепленные файлы:
12. Diyversus 27.03.25 11:27 Сейчас в теме
(11) Благодарю за подсказку.
13. Sashares 33 27.03.25 11:31 Сейчас в теме
(12) А как ты вообще это смог сделать? Задать одним и тем же колонкам разные имена.
14. Diyversus 27.03.25 13:11 Сейчас в теме
(13) Пробабка ведьма была))
Добавлял ячейку слева, существующая вертикальная область стала больше на одну ячейку, потом выделял другую горизонтальную область, и внутри вертикальной области выделил столбцы за исключением добавленного, присвоил имя.
Получили существующую вертикальную область и внутри неё добавленную вертикальную.
Потом удалял добавленную ячейку и получилось, как на картинке.

Экспериментировал. Задачу надо выполнить, а как - нет понимания. Соответственно возник вопрос: может можно как-то иначе? Есть понимание, что это - извраты.
16. Sashares 33 27.03.25 14:02 Сейчас в теме
(14)
Добавлял ячейку слева, существующая вертикальная область стала больше на одну ячейку, потом выделял другую горизонтальную область, и внутри вертикальной области выделил столбцы за исключением добавленного, присвоил имя.
Получили существующую вертикальную область и внутри неё добавленную вертикальную.
Потом удалял добавленную ячейку и получилось, как на картинке.

Да, примерно так и предполагал. Спасибо.
Но потом подумал, зачем кому-то заниматься таким извращением и решил уточнить))

Имя области колонки/строки распространяется на всю колонку/строку.
Назначать несколько имен одним и тем же колонкам/строкам не имеет смысла.
15. Diyversus 27.03.25 13:13 Сейчас в теме
СКД это делает сама, но в СКД свои извраты с отображением данных в виде дерева. так бы я не стал возиться с макетами.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот