Разработка и Конфигурация · 9 мин
Как растянуть диаграмму в 1С на форме
Как растянуть диаграмму в 1С на форме: свойства растягивания, размещение в группах, программное изменение размеров и типичные ошибки при настройке.
Диаграмма в 1С — это элемент формы, который часто «прилипает» к левому верхнему углу и не занимает всё доступное пространство. Причина почти всегда одна: неправильно настроены свойства растягивания самого элемента или родительской группы, в которой он находится. Платформа 1С:Предприятие управляет размерами элементов декларативно, через свойства, поэтому «потянуть мышкой» диаграмму в режиме предприятия нельзя — размер нужно задавать в конфигураторе или программно.
Ниже разобраны основные способы растянуть диаграмму по ширине и высоте формы: через свойства элемента, через группы-контейнеры и программным кодом. Отдельно рассмотрены ситуации с диаграммой Ганта, автоматическими размерами и ограничениями управляемых форм.
Где находятся свойства размера диаграммы
Диаграмма добавляется на форму как элемент вида «Поле диаграммы» (или «Диаграмма», «ДиаграммаГанта» в зависимости от типа). Её размерами управляют четыре ключевых свойства: РастягиватьПоГоризонтали, РастягиватьПоВертикали, Ширина и Высота. Они доступны в палитре свойств элемента в конфигураторе.
Логика простая: если растягивание включено, элемент занимает всё свободное место в родительском контейнере, и значения ширины/высоты игнорируются или используются как минимальные. Если растягивание выключено, элемент имеет фиксированный размер, заданный в свойствах «Ширина» и «Высота» (в символах и строках соответственно).
Важно понимать, что диаграмма всегда находится внутри какого-то контейнера — формы, группы, страницы. Если контейнер сам не растягивается, то и диаграмма внутри него не сможет занять больше места, сколько ни меняй её собственные свойства.
Как растянуть диаграмму через палитру свойств
Самый простой способ — настроить растягивание в конфигураторе без единой строки кода. Этого достаточно в большинстве типовых сценариев.
- 1Откройте форму в конфигураторе и выделите элемент диаграммы в дереве элементов.
- 2В палитре свойств найдите «РастягиватьПоГоризонтали» и установите «Да» (Истина).
- 3Аналогично включите «РастягиватьПоВертикали», если диаграмма должна занимать всю высоту.
- 4Проверьте родительскую группу: у неё тоже должно быть включено растягивание и отключена группировка с фиксированным размером.
- 5Сохраните конфигурацию и откройте форму в режиме предприятия — диаграмма должна занять всё доступное пространство.
Если после этих действий диаграмма всё ещё маленькая, проблема почти наверняка в родительской группе. Откройте свойства группы-родителя и убедитесь, что она сама растягивается по обоим направлениям. Частая ситуация: диаграмма лежит в группе с вертикальной группировкой рядом с другими элементами, и платформа делит место между ними.
Растягивание диаграммы внутри групп и страниц
Группы формы — главный инструмент компоновки в управляемых формах. От их настроек зависит, как распределится пространство. Если диаграмма должна занимать всю форму, лучше всего сделать её единственным элементом верхнего уровня или поместить в группу без соседей.
Обратите внимание на свойство группы «Группировка»: при значении «Вертикальная» элементы делят высоту, при «Горизонтальная» — ширину. Если рядом с диаграммой есть, например, таблица, и обе должны менять размер пропорционально, включите растягивание у обеих — платформа распределит свободное место между ними.
Для страниц (закладок) действует то же правило: сначала растягивается страница, потом группа внутри неё, потом сама диаграмма. Разрыв в любой точке этой цепочки остановит растягивание.
Программное изменение размеров диаграммы
Иногда растягивание нужно включать динамически — например, разворачивать диаграмму на всю форму по кнопке или при определённых условиях. Это делается через объект элемента формы в модуле формы.
&НаКлиенте
Процедура РазвернутьДиаграмму(Команда)
Элементы.ДиаграммаОтчета.РастягиватьПоГоризонтали = Истина;
Элементы.ДиаграммаОтчета.РастягиватьПоВертикали = Истина;
КонецПроцедуры
Если нужен фиксированный, но больший размер, используйте свойства ширины и высоты:
Элементы.ДиаграммаОтчета.Ширина = 80; // в символах
Элементы.ДиаграммаОтчета.Высота = 25; // в строках
Программный подход удобен, когда одна и та же форма используется в разных режимах: компактный вид с фиксированной диаграммой и развёрнутый вид для анализа. Менять свойства можно в любой момент жизни формы, изменения применяются немедленно.
Особенности диаграммы Ганта и областей построения
Диаграмма Ганта — отдельный элемент со своими нюансами. Растягивание самого элемента настраивается так же, но внутри него есть собственная область построения, размер которой зависит от интервала отображения и масштаба. Если диаграмма Ганта «не влезает», появляются полосы прокрутки — это нормальное поведение, а не ошибка растягивания.
Для обычных диаграмм тоже есть внутренняя геометрия: область заголовка, легенда, область построения. Если после растягивания сама область графика осталась маленькой, проверьте настройки легенды — иногда она занимает значительную часть элемента. Расположение легенды можно изменить или отключить её вовсе через свойства диаграммы.
Обычные формы: чем отличается настройка
В обычных формах (старый интерфейс, режим обычного приложения) механика другая. Там размер элемента задаётся мышкой прямо в редакторе формы конфигуратора, а привязки границ настраиваются через контекстное меню элемента — пункт «Установить привязки». Чтобы диаграмма растягивалась вместе с окном, нужно привязать её границы к границам формы: левую к левой, правую к правой, верхнюю и нижнюю аналогично.
Если привязать только левую и верхнюю границы, диаграмма останется фиксированного размера при изменении окна. Это самая частая причина «нерастягивающейся» диаграммы в обычных формах.
Сравнение подходов
Подходит для большинства форм; настраивается один раз в конфигураторе, не требует кода. Ограничение — нельзя менять поведение динамически.
Нужно, когда размер зависит от режима работы или действий пользователя. Требует кода в модуле формы и аккуратности при обновлении конфигурации.
Актуально только для старых конфигураций на обычном приложении; в управляемом интерфейсе привязки недоступны.
Как проверить результат и что делать, если не помогло
После настройки откройте форму в режиме предприятия и измените размер окна. Диаграмма должна пропорционально меняться вместе с формой, без пустых областей и без обрезания содержимого. Если окно свернуть и развернуть, размеры должны восстанавливаться корректно.
Если растягивание не работает, идите по цепочке снизу вверх: свойства диаграммы → свойства родительской группы → свойства страницы → свойства формы. На каком-то уровне обязательно найдётся отключённое растягивание или фиксированный размер. Также проверьте, нет ли у формы включённого свойства «Авторазмер» с ограничениями.
Как проверить результат
Диаграмма пропорционально растягивается и сжимается вместе с формой
Диаграмма остаётся фиксированного размера, появляются пустые области
График, подписи и легенда видны полностью, без обрезания
Часть данных скрыта, появляются полосы прокрутки там, где их не должно быть
Другие элементы формы сохраняют свои размеры и не перекрываются
Диаграмма «съедает» пространство соседних элементов или наезжает на них
Часто задаваемые вопросы
Почему диаграмма не растягивается, хотя оба свойства растягивания включены?
Почти всегда причина в родительском контейнере: группа или страница, в которой лежит диаграмма, имеет фиксированный размер или выключенное растягивание. Проверьте всю цепочку родителей вплоть до самой формы — растягивание должно быть включено на каждом уровне.
Можно ли растянуть диаграмму только по ширине, оставив фиксированную высоту?
Да. Включите «РастягиватьПоГоризонтали», а «РастягиватьПоВертикали» оставьте выключенным и задайте нужную высоту в одноимённом свойстве. Диаграмма будет занимать всю ширину контейнера при постоянной высоте.
Почему после растягивания график внутри диаграммы остался маленьким?
Элемент растянулся, но внутреннюю область «съедают» заголовок и легенда. Проверьте расположение легенды в свойствах диаграммы — попробуйте перенести её вниз или отключить. Также убедитесь, что размер шрифта подписей не задан слишком крупным.
Можно ли задать размер диаграммы в пикселях?
В управляемых формах — нет. Платформа оперирует условными единицами: ширина задаётся в символах, высота — в строках. Это сделано для независимости интерфейса от разрешения экрана. Точный пиксельный размер получится только через растягивание на всё доступное пространство.
Как растянуть диаграмму в обычной форме старой конфигурации?
Откройте форму в конфигураторе, щёлкните по диаграмме правой кнопкой мыши и выберите «Установить привязки». Привяжите все четыре границы элемента к соответствующим границам формы — тогда диаграмма будет изменять размер вместе с окном.
Почему в диаграмме Ганта появляются полосы прокрутки даже после растягивания?
Полосы прокрутки появляются, когда данные не помещаются в отображаемый интервал, а не из-за размера элемента. Проверьте настройки интервала отображения и масштаб временной шкалы — увеличьте видимый период или уменьшите детализацию шкалы.
Что важно запомнить
Растягивание диаграммы в 1С настраивается свойствами «РастягиватьПоГоризонтали» и «РастягиватьПоВертикали», но работает только при включённом растягивании всех родительских контейнеров. В управляемых формах размер задаётся в условных единицах, а не в пикселях; при необходимости размерами можно управлять программно через объект элемента формы.