Вывод пересекающихся областей в табличный документ
Добра и здравия!
Ранее, при работе с выводом отчетов в табличный документ, не возникало задач, где нужно было выводить пересекающиеся горизонтальные и вертикальные области.
Более-менее разобрался, но не могу понять, что нужно настроить в макете, что бы область детальный данных выводилась согласно шапки. Сейчас у меня область деталей съезжает влево, если первая ячейка не содержит значение типа Параметр.
Конечно-же, можно удалить в макете первую пустую колонку и тогда области деталей будет некуда съезжать, но в других отчетах пустые первые колонки есть и области деталей никуда не съезжают.
Хотелось бы разобраться с тонкостями, которых пока не знаю. Моет кто подсказать что делаю не так, или чего необходимого не делаю?
Код - учебный, для разобраться.
Схематичный пример результата вывода - во вложении
Ранее, при работе с выводом отчетов в табличный документ, не возникало задач, где нужно было выводить пересекающиеся горизонтальные и вертикальные области.
Более-менее разобрался, но не могу понять, что нужно настроить в макете, что бы область детальный данных выводилась согласно шапки. Сейчас у меня область деталей съезжает влево, если первая ячейка не содержит значение типа Параметр.
Конечно-же, можно удалить в макете первую пустую колонку и тогда области деталей будет некуда съезжать, но в других отчетах пустые первые колонки есть и области деталей никуда не съезжают.
Хотелось бы разобраться с тонкостями, которых пока не знаю. Моет кто подсказать что делаю не так, или чего необходимого не делаю?
Код - учебный, для разобраться.
Для а = 0 по 10 Цикл
Область = макет.ПолучитьОбласть("Таблица|ПоказательДетали");
Показатель = "Показатель " + Строка(а);
Код = "Код " + строка(а);
Единица = "Единица " + Строка(а);
Область.Параметры.КодПоказателя = Код;
Область.Параметры.Показатель = Показатель;
Область.Параметры.ЕдиницаИзмерения = Единица;
ТабДок.Вывести(Область);
Область = макет.ПолучитьОбласть("Таблица|ТаблицаЗначения");
Для б = 0 По 3 Цикл
Область.Параметры.План = б * 2;
Область.Параметры.Факт = б * 2.1;
ТабДок.Присоединить(Область);
КонецЦикла;
КонецЦикла;
ПоказатьСхематичный пример результата вывода - во вложении
Прикрепленные файлы:
По теме из базы знаний
- Концепция автоматизации многопрофильного Холдинга в системе АУБ на платформе 1С
- Сквозной пример задачи оперативного учета (ОУ) при подготовке к экзамену "1С:Специалист" по платформе
- Я - ЗУПер! Часть 1. Компетенции сотрудников
- HTTP, Ajax, JSON: Один год Pet-проекту на 1С
- Подсистема помощи переноса пользователей и прав из УПП
Найденные решения
(10) Достаточно одной вертикальной области "Значения".
Макет.ПолучитьОбласть("ПоказателиШапка|Значения") получает область на скрине 1.
Макет.ПолучитьОбласть("Таблица|Значения") получает область на скрине 2.
И так далее.
Макет.ПолучитьОбласть("ПоказателиШапка|Значения") получает область на скрине 1.
Макет.ПолучитьОбласть("Таблица|Значения") получает область на скрине 2.
И так далее.
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Не хотел Вас грузить лишними данными ))
Вот код целиком:
Вот код целиком:
Макет = ПолучитьМакет("МакетПомесячно");
Табдок = ЭлементыФормы.ТабДок;
Область = Макет.ПолучитьОбласть("ПоказателиШапка|ПоказателиВертикальная");
ТабДок.Вывести(Область);
Область = Макет.ПолучитьОбласть("ПоказателиШапка|ЗначенияШапка");
Для а = 0 По 3 Цикл
Область.Параметры.Период = Дата(2025, а + 1, 1);
ТабДок.Присоединить(Область);
КонецЦикла;
Показатели = Новый Массив;
Для а = 0 по 10 Цикл
Область = макет.ПолучитьОбласть("Таблица|ПоказательДетали");
Показатель = "Показатель " + Строка(а);
Код = "Код " + строка(а);
Единица = "Единица " + Строка(а);
Область.Параметры.КодПоказателя = Код;
Область.Параметры.Показатель = Показатель;
Область.Параметры.ЕдиницаИзмерения = Единица;
ТабДок.Вывести(Область);
Область = макет.ПолучитьОбласть("Таблица|ТаблицаЗначения");
Для б = 0 По 3 Цикл
Область.Параметры.План = б * 2;
Область.Параметры.Факт = б * 2.1;
ТабДок.Присоединить(Область);
КонецЦикла;
КонецЦикла;
Показать
Навряд-ли это имеет ключевое значение в данном вопросе )
В общем, удалил первую колонку, выделил все строки и добавил заново и заработало. Макеты - муторная тема. То значения параметров могут не выводиться, пока просто не переназначишь метод заполнения ячейки, то другие "мистические" моменты.
В общем, удалил первую колонку, выделил все строки и добавил заново и заработало. Макеты - муторная тема. То значения параметров могут не выводиться, пока просто не переназначишь метод заполнения ячейки, то другие "мистические" моменты.
(6) Как правильно сделать выделенные ячейки вертикальной областью?
У меня получается только путем разбивания ячеек , с последующим удалением ячеек. Тогда области создаются так, как на картинке во вложении к этому собщению
У меня получается только путем разбивания ячеек , с последующим удалением ячеек. Тогда области создаются так, как на картинке во вложении к этому собщению
Прикрепленные файлы:
(10) Достаточно одной вертикальной области "Значения".
Макет.ПолучитьОбласть("ПоказателиШапка|Значения") получает область на скрине 1.
Макет.ПолучитьОбласть("Таблица|Значения") получает область на скрине 2.
И так далее.
Макет.ПолучитьОбласть("ПоказателиШапка|Значения") получает область на скрине 1.
Макет.ПолучитьОбласть("Таблица|Значения") получает область на скрине 2.
И так далее.
Прикрепленные файлы:
(13) Пробабка ведьма была))
Добавлял ячейку слева, существующая вертикальная область стала больше на одну ячейку, потом выделял другую горизонтальную область, и внутри вертикальной области выделил столбцы за исключением добавленного, присвоил имя.
Получили существующую вертикальную область и внутри неё добавленную вертикальную.
Потом удалял добавленную ячейку и получилось, как на картинке.
Экспериментировал. Задачу надо выполнить, а как - нет понимания. Соответственно возник вопрос: может можно как-то иначе? Есть понимание, что это - извраты.
Добавлял ячейку слева, существующая вертикальная область стала больше на одну ячейку, потом выделял другую горизонтальную область, и внутри вертикальной области выделил столбцы за исключением добавленного, присвоил имя.
Получили существующую вертикальную область и внутри неё добавленную вертикальную.
Потом удалял добавленную ячейку и получилось, как на картинке.
Экспериментировал. Задачу надо выполнить, а как - нет понимания. Соответственно возник вопрос: может можно как-то иначе? Есть понимание, что это - извраты.
(14)
Да, примерно так и предполагал. Спасибо.
Но потом подумал, зачем кому-то заниматься таким извращением и решил уточнить))
Имя области колонки/строки распространяется на всю колонку/строку.
Назначать несколько имен одним и тем же колонкам/строкам не имеет смысла.
Добавлял ячейку слева, существующая вертикальная область стала больше на одну ячейку, потом выделял другую горизонтальную область, и внутри вертикальной области выделил столбцы за исключением добавленного, присвоил имя.
Получили существующую вертикальную область и внутри неё добавленную вертикальную.
Потом удалял добавленную ячейку и получилось, как на картинке.
Получили существующую вертикальную область и внутри неё добавленную вертикальную.
Потом удалял добавленную ячейку и получилось, как на картинке.
Да, примерно так и предполагал. Спасибо.
Но потом подумал, зачем кому-то заниматься таким извращением и решил уточнить))
Имя области колонки/строки распространяется на всю колонку/строку.
Назначать несколько имен одним и тем же колонкам/строкам не имеет смысла.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот