Размер диаграммы в 1С: макет, форма, код и отчёт на СКД
Содержание
Диаграмма в 1С не имеет одного универсального «ползунка размера». Где она лежит, там и меняется её размер: в макете табличного документа это рисунок, который тянут мышью за маркеры; на управляемой форме это элемент Поле диаграммы, и размером управляют свойства ширины, высоты и растягивания; в готовом отчёте это рисунок в результате, и править его можно только кодом.
Ниже каждый из случаев по отдельности, чтобы не перебирать способы наугад. Все названия даны для платформы 8.3 с интерфейсом «Такси». Работа идёт в Конфигураторе, поэтому нужны права разработчика.
Из чего состоит диаграмма и что в ней можно растягивать
У диаграммы два уровня размера, и путают их постоянно.
- 📐 Внешний размер — сколько места занимает вся диаграмма: рамка с заголовком, областью построения и легендой.
- 📊 Внутренние области — область построения (сам график), область легенды и область заголовка. Их положение внутри диаграммы платформа раскладывает сама, но у каждой есть свои границы.
Поэтому «растянуть диаграмму» может означать две разные вещи. Первая — увеличить рамку. Вторая — отдать больше места самому графику, а не легенде. Для второй задачи рамку увеличивать не нужно: достаточно убрать легенду или перенести её.
Диаграмма живёт в трёх местах:
| Где находится | Что это за объект | Чем меняется размер |
|---|---|---|
| Макет табличного документа | Рисунок типа «Диаграмма» | Мышью в редакторе макета, свойства рисунка |
| Управляемая форма | Элемент Поле диаграммы | Свойства элемента: ширина, высота, растягивание |
| Результат отчёта, печатная форма | Рисунок в табличном документе | Только программно или через макет |
От этого и надо отталкиваться: сначала определите, где именно лежит ваша диаграмма, и только потом ищите нужный способ.
Как растянуть диаграмму в макете табличного документа
Это самый частый случай для печатных форм и отчётов, где диаграмма нарисована заранее.
- Откройте макет в Конфигураторе: найдите объект, в нём ветку
Макеты, дважды щёлкните по нужному. - Щёлкните по диаграмме один раз, чтобы выделить рисунок. По периметру появятся маркеры.
- Потяните за угловой маркер — размер изменится пропорционально сразу по двум осям. Боковые маркеры меняют только ширину или только высоту.
- Проверьте итог: вызовите предварительный просмотр макета или выведите форму из режима 1С:Предприятие.
Рисунок «привязан» к ячейкам, поверх которых лежит. Если вы растянули диаграмму так, что она вылезла за область макета, то при выводе она может обрезаться или налезть на соседний текст. Заранее оставьте под неё свободные строки и столбцы, а лучше выделите отдельную область макета под диаграмму и дайте ей имя.
Если диаграмма в макете получается узкой, а легенда съедает половину ширины, откройте свойства диаграммы и отключите отображение легенды или перенесите её под график. График сразу «растянется» без изменения рамки.
Как точно задать размер
Мышью удобно для грубой подгонки. Когда нужны одинаковые диаграммы в нескольких макетах, размер лучше задавать числами. Откройте палитру свойств выделенного рисунка и найдите поля положения и размера: слева, сверху, ширина, высота. Единицы зависят от макета, поэтому подгоните цифры один раз и запишите их — пригодится при копировании.
Как изменить размер диаграммы на форме
На управляемой форме диаграмма — это элемент формы, привязанный к реквизиту типа Диаграмма. Размером управляют свойства самого элемента.
Откройте форму в Конфигураторе, выделите элемент на вкладке Элементы и в палитре свойств найдите блок размещения. Вам нужны следующие настройки:
- 📏 Ширина и Высота — фиксированные размеры в условных единицах формы. Если задать оба, диаграмма не будет подстраиваться под окно.
- ↔️ Растягивать по горизонтали — диаграмма занимает всю доступную ширину.
- ↕️ Растягивать по вертикали — диаграмма занимает всю доступную высоту.
- 🔒 Автоматическая максимальная ширина и высота — ограничивают рост, когда окно очень большое.
Чтобы диаграмма растягивалась вслед за окном, включите оба растягивания и сбросьте фиксированные ширину и высоту (поставьте ноль). Если оставить и число, и растягивание, поведение будет запутанным: платформа считает число минимальным размером, а остальное отдаёт растяжению.
Что делать, если рядом с диаграммой другие элементы
Диаграмма растягивается только в пределах родителя. Если она лежит в группе рядом с таблицей, то место делится между ними. В таких случаях:
- Проверьте у соседнего элемента, не включено ли и у него растягивание. Два растягиваемых элемента делят пространство пополам.
- Положите диаграмму в отдельную группу и задайте группе нужное расположение: по вертикали или по горизонтали.
- Если форма разбита на страницы, убедитесь, что растягивание включено у группы страниц тоже, иначе страница не займёт окно.
Если вы меняете типовую форму, делайте это через расширение или копию формы. Правка типовой формы в основной конфигурации усложнит обновление.
Как изменить размер диаграммы из встроенного языка
Программно размер меняют в двух случаях: диаграмма создаётся на лету или размер зависит от данных (например, от числа серий).
Элемент формы
У элемента формы, который связан с диаграммой, можно менять ширину и высоту, как у любого другого элемента:
&НаКлиенте
Процедура УвеличитьДиаграмму(Команда)
Элементы.ДиаграммаПродаж.Ширина = 120;
Элементы.ДиаграммаПродаж.Высота = 40;
КонецПроцедуры
ДиаграммаПродаж — имя вашего элемента формы. Числа здесь условные, подберите их под свою форму. Если у элемента включено растягивание, заданные значения сыграют роль минимума.
Внутренние области диаграммы
Реквизит формы типа Диаграмма — это объект со своими свойствами. Через них можно отдать больше места графику:
&НаСервере
Процедура НастроитьДиаграмму()
ДиаграммаПродаж.ОтображатьЛегенду = Ложь;
ДиаграммаПродаж.ОтображатьЗаголовок = Ложь;
КонецПроцедуры
Это не меняет рамку, но область построения занимает освободившееся место. Часто именно такого эффекта и ждут от «растянуть диаграмму».
Рисунок в табличном документе
Когда диаграмма лежит в табличном документе, к ней обращаются через коллекцию рисунков:
Для Каждого Рисунок Из ТабличныйДокумент.Рисунки Цикл
// Здесь проверьте, что рисунок — диаграмма, и задайте нужные размеры.
// Точные имена свойств положения и размера смотрите в синтакс-помощнике.
КонецЦикла;
Перед присвоением обязательно отфильтруйте рисунки по типу, иначе вы заденете картинки и штрихкоды. Состав свойств рисунка смотрите в справке платформы или в синтакс-помощнике: названия положения и размера там перечислены в одном месте. Числа подбирайте опытным путём и проверяйте на печати.
Как растянуть диаграмму в отчёте на СКД
В отчёте на системе компоновки данных диаграмма не нарисована руками. Её создаёт структура отчёта: вы добавляете в настройках элемент Диаграмма, выбираете тип и задаёте серии и точки. Результат — табличный документ, где диаграмма лежит рисунком.
Это объясняет две особенности:
- В результате отчёта мышью диаграмму обычно не растянуть так же свободно, как в макете. Размер определяется тем, сколько места ей выделено при выводе.
- Настройки внешнего вида диаграммы задают в параметрах вывода элемента структуры: заголовок, легенда и другое. Если нужна крупная диаграмма, уберите заголовок и легенду.
Рабочий порядок такой:
- Откройте схему компоновки и вкладку
Настройки. - Выделите элемент
Диаграммав структуре и откройте его параметры вывода. - Отключите то, что занимает место: легенду или заголовок.
- Если этого мало, подправьте размер уже после формирования отчёта кодом, как показано в разделе про табличный документ. Для этого в процедуре формирования выведите результат в табличный документ и пройдите по его рисункам.
Если диаграмма находится внутри отчёта, который выводится на форму, учтите: форма отчёта отдаёт под результат одно поле табличного документа. Размером поля управляют его свойства растягивания, так же, как у обычного элемента формы.
Диаграмма не растягивается: что проверить
Если вы всё сделали, а размер не меняется, проверьте по порядку.
- 🔎 Вы правите не тот объект. В макете и на форме могут лежать две разные диаграммы с похожими названиями. Проверьте, какая из них реально выводится.
- 🔒 Включено и растягивание, и фиксированный размер. Оставьте что-то одно.
- 📦 Родитель не растягивается. Диаграмма не выйдет за границы группы, которая сама занимает мало места.
- 🧩 Форма в расширении. Если форма подменена расширением, ваши правки в основной форме не видны. Правьте ту форму, которая реально открывается.
- 🖨️ Размер на экране и на печати различается. Для печатной формы подгоняйте размер макета, а не экранной формы.
- 🧹 Кэш. После правки формы закройте и заново откройте её. Для макета перезапустите предварительный просмотр.
Прежде чем экспериментировать с типовой конфигурацией, сохраните копию базы или работайте на тестовой. Правка макета и формы в рабочей базе без копии — лишний риск.
Пример: подгоняем диаграмму под форму отчёта шаг за шагом
Возьмём типичную задачу. В отчёте о продажах диаграмма по месяцам выводится в узкую полоску, а справа от неё висит пустое место. Нужно, чтобы график занимал всю ширину окна.
- Выясните, где лежит диаграмма. Если отчёт на СКД, смотрите структуру в настройках; если печатная форма, смотрите макет.
- Откройте форму отчёта и найдите поле, в котором показывается результат. Включите у него растягивание по горизонтали и по вертикали.
- Проверьте группу, в которой лежит поле. Если группа расположена по вертикали, а соседом идёт панель отбора, дайте панели фиксированную высоту, а полю результата — растягивание.
- В настройках диаграммы уберите заголовок: у отчёта он и так есть на форме.
- Сформируйте отчёт и растяните окно. График должен следовать за границами окна.
Если после этого диаграмма всё равно узкая, значит, ограничение стоит внутри результата, и его надо править в схеме компоновки или кодом после вывода.
Какой тип диаграммы лучше выдерживает растяжение
Не любая диаграмма одинаково хорошо смотрится в большом размере. Перед тем как увеличивать рамку, оцените, что получится.
- 🥧 Круговая. Растягивание до прямоугольника не делает её лучше: круг остаётся кругом, а остальное место пустует. Увеличивайте квадратом.
- 📊 Гистограмма. Хорошо переносит и ширину, и высоту. Если столбцов много, добавляйте ширину.
- 📈 График. Длинный ряд данных нужно растягивать по горизонтали, иначе перегибы сливаются.
- 🧮 Объёмные типы. Растягивание искажает перспективу. Для отчётов лучше плоские типы: они читаются точнее.
Тип диаграммы меняется в её свойствах, в списке типов. Менять его стоит до подгонки размера, потому что от типа зависит, как распределяются области внутри рамки.
Мелочи, которые экономят время при подгонке
Несколько приёмов, о которых редко пишут, но которые пригождаются постоянно.
- Делайте правки по одной. Изменили растягивание — проверьте результат, и только потом трогайте легенду.
- Тестируйте в двух размерах окна: свёрнутом и развёрнутом. Диаграмма, которая красива на вашем мониторе, на ноутбуке коллеги может уйти за экран.
- Для печати задайте размер в макете и не полагайтесь на растягивание формы: на бумаге растягивать нечего.
- Если одну и ту же диаграмму используют в нескольких отчётах, вынесите её настройку в общую процедуру, чтобы менять размер в одном месте.
- Оставляйте запас по высоте под подписи оси: если подписи длинные, они уходят в наклон и занимают место.
Сколько места нужно под диаграмму: практические ориентиры
Растягивание ради растягивания не нужно. Размер зависит от того, что вы показываете.
| Что на диаграмме | На что обратить внимание |
|---|---|
| Круговая, 3–6 секторов | Хватит небольшой квадратной области, легенду можно оставить справа |
| Гистограмма, до 12 точек | Ширина важнее высоты, подписи точек не должны перекрываться |
| График с несколькими сериями | Нужна высота, иначе линии сливаются; легенду лучше вынести вниз |
| Много точек по оси времени | Растягивайте по горизонтали, длинные подписи включают наклоном |
Если подписи точек налезают друг на друга, проблема чаще не в размере рамки, а в количестве точек. Сократите их число группировкой по месяцам или кварталам, и диаграмма станет читаемой без увеличения.