Диаграмму нельзя разместить в файле

Обновлено: 30.06.2024

Так уж получилось, что за более чем 10 лет работы с платформой 1С:Предприятие мне ни разу не приходилось плотно работать с диаграммами в табличном документе. Разве что пару раз приходилось выводить в отчет круговые диаграммы, но никаких сложностей при этом обнаружено не было.

И вот оно наступило – время диаграмм. Я сейчас работаю в инвестиционной компании, которая занимается в том числе доверительным управлением средствами клиентов. Клиенты разные: от больших НПФ до частных инвесторов, которые хотят выгодно вложить свои 2-3 миллиона рублей. Надо сказать, что при таком инвестировании можно получить доход выше процентной ставки по банковским депозитам даже при осторожной стратегии. Впрочем, можно и почти ничего не выиграть. Но если Вам нужно получить доход за небольшой срок (год-два), уходить для этого в недвижимость или золото навряд ли стоит.

Всем клиентам интересно знать, в какие активы вложены их деньги, какова доходность инвестиционного портфеля за период и в целом, как влияют внешние факторы на перспективы получения дохода. Далеко не все имеют экономическое образование, поэтому было принято решение формировать периодические отчеты для инвесторов в виде буклета с большим количеством диаграмм. Первоначально макет был нарисован нашим менеджером в Adobe Illustrator, затем пришла моя очередь.

С цветовой палитрой и шрифтами проблем не возникло – 1С позволяет манипулировать ими всюду, где это необходимо. Вывод логотипов и таблиц также не представлял сложности, кроме того, что место под каждую табличку было ограничено компоновкой отчета, поэтому приходилось всякий раз анализировать, какие показатели считать значимыми, а какие – прочими.

Проблемы начались при работе с диаграммами. Но прежде, чем их обозначить, давайте вспомним, как в языке платформы 1С:Предприятие выполняется работа с диаграммами в табличном документе.

Каждый табличный документ содержит коллекцию Рисунки. В нее могут входить как статические рисунки (логотипы,пиктограммы, фотографии), так и диаграммы. В случае диаграммы у элемента коллекции Рисунок проинициализировано свойство Объект типа Диаграмма. Важно отметить, что если вы формируете табличный документ путем последовательного вывода в него областей макета с диаграммами, никакого простого способа найти нужную диаграмму в итоговом документе не существует: индекс и имя рисунка всякий раз могут меняться при выводе области в документ, остается лишь искать по свойствам Объекта, например, Заголовок или ТипДиаграммы.

В Excel диаграмма 1С выгружается в виде рисунка.

Обычно диаграммы вставляются в макет отчета, настраиваются их свойства, а затем при выводе отчета программно формируются значения диаграммы. В этой статье не рассматривается вывод диаграмм в отчет с использованием СКД, там есть свои плюсы и минусы.

Каждая диаграмма имеет тип (круговая, гистограмма, график и т.д.). А отрисовывается она благодаря установке значений, связанных с точками и сериями. Серии и точки (элементы коллекций Серии и Точки) можно задать сразу в Конфигураторе, это удобно, когда количество строго ограничено рамками задачи и/или необходимо жестко задать цвет, текст и некоторые другие параметры.

Кстати, при «кликании» на диаграмму в макете у вас может открыться окно свойств области построения диаграммы. Кликните еще раз – и у вас откроется окно свойств объекта Диаграмма.

Серии – это то, что мы обычно раскрашиваем в диаграмме разными цветами. Например, сколько разноцветных сегментов в круговой диаграмме, столько и серий с ненулевыми значениями точки. Точки – это то, что в диаграмме располагается вдоль оси.

Вырожденные случаи: в круговой диаграмме много серий, но одна точка, а гистограмму или график вполне можно построить по одной серии, но по нескольким точкам.

Можно определять серии и точки программно, при этом нужно следить за их добавлением в коллекцию и не забывать устанавливать свойство Текст (особенно для точек, иначе мы не увидим подписей на горизонтальной оси графика). Обращение к сериям и точкам производится через индекс элемента коллекции.

Если Область1.Рисунки[0].Объект.Точки.Количество()< Инд Тогда

А чтобы задать значение диаграммы, применяется метод УстановитьЗначение(), в который передаются индекс точки, индекс серии и собственно значение. Обычно этот метод вызывается в цикле обхода таблицы значений или выборки запроса.

Итак, нам надо нарисовать вот такую диаграмму:


Проблема 1: 1С не умеет изменять наклон подписей шкалы. Можно размещать подписи либо горизонтально, либо вертикально. Делаем вертикально.

Проблема 2 (более серьезная): мне неизвестен способ заставить 1С добавлять символ процента к значениям точек и легенде шкалы. Настройка везде идет через строку формата, а платформа не позволяет использовать в форматной строке числа произвольный символ. Объект Диаграмма позволяет работать с процентами, но только при анализе соотношения значений по сериям. Если серия одна, то выбирать способ вывода значений в процентах бессмысленно. Что ж, добавляем в заголовок примечание (в %).

Переходим к следующей диаграмме:


Проблема 3. Первое, что бросается в глаза – пунктирное приращение на накопительной гистограмме в последней точке. Так 1С строить диаграммы не умеет, поэтому нам придется придумать для последней серии свой цвет фона.

Проблема 4. Кроме того, цвет подписи значений на диаграмме разный – для серии 1 он белый, для серии 2 он черный. Так 1С тоже не умеет. Придется использовать всюду белый цвет.

Обратите внимание – шкала ординат начинается со значения 307. Это сделано для того, чтобы наглядно увидеть приращение активов. Потому что если выводить шкалу с нуля, то сверху каждого столбика мы увидем малюсенькую полоску приращения, она ведь чуть более процента от значения по Серии 1.

Проблема 5. Казалось бы, у объекта Диаграмма есть свойство МинимальноеЗначение и никто нам не мешает его установить. Устанавливаем. Упс. Выясняется, что для гистограмм оно не работает. Жаль. Но есть свойство БазовоеЗначение. Устанавливаем его в 307 и получаем то, что нужно.

Однако тестирование отчета довольно быстро показывает, что базовое значение корректно работает только тогда, когда в роли доминанты выступает Серия 1. Если же в первой точке значение по Серии 1 будет маленьким, а значение по Серии 2 или по любой другой серии, отличной от первой, будет большим, то мы получим примерно такой эффект:


Мне не удалось найти способ выводить накопительную гистограмму в нормализованном относительно минимального значения виде. После общения с разработчиками выснилось, что действительно, базовое значение считается всегда относительно Серия 1. Получается, что статическое задание серий в Конфигураторе - практически бесполезная фича, нужно программно анализировать значения серий перед выводом гистограммы и переназначать как Серия 1 ту, которая в первой точке имеет максимальное значение.

На партнерской конференции этот вопрос (неработающие свойства Минимальное и МаксимальноеЗначение) поднимался неоднократно, но воз и ныне там. Возможно не хватает настойчивости пользователей, которые довольно редко работают с диаграммами в 1С.

Почему редко? Потому что следующая ошибка ясно показала, насколько серьезные баги встречаются в механизме диаграмм 1С. Будь такого уровня баг в механизме расчета зарплаты или при работе СКД – его бы в момент вычислили.

Воспроизводится он очень просто.

Проблема 6. Делаем макет из нескольких горизонтальных секций. В каждой помещаем 2-3 диаграммы. Все это выводим в табличный документ, заполняя значения диаграмм программно. И вдруг видим, что исчезают подписи к горизонтальной шкале одной из диаграмм. В отладчике видим, что в заполненной области макета имена точек есть, но после выполнения метода

в ТабДок попадает диаграмма уже без имен точек. Ошибка «гуляет» от диаграммы к диаграмме, но воспроизводится стабильно. По крайней мере, на релизе 8.2.17.

Пришлось написать кусок кода, который повторно обходит Рисунки в итоговом табличном документе и устанавливает правильные имена точек. Чем-то напоминает древний баг платформы 7, когда значение переменной присваивалось только со второго-третьего раза.

Проблема 7.

Невозможно вывести в Excel прозрачную диаграмму 1С. У диаграммы 1С есть свойство "Прозрачный фон" и его можо использовать при выводе в табличный документ. Но при экспорте в Excel диаграммы 1С заменяются на картинки, причем непрозрачные.

Пытался средствами 1С произвести подмену диаграммы прозрачной картинкой. У диаграммы есть метод ПолучитьКартинку().
Далее через выгружал BMP-файл в двоичные данные (можно в файл) и создавал конструктором новый объект Картинка. Если при создании картинки из источника установить второй параметр в Истина, то рисунок превратится в прозрачный. А прозрачный рисунок можно экспортировать в Excel, если РазмерРисунка=ИзменятьПропорционально.

Но вот незадача - подобная конвертация сильно искажает исходную диаграмму и практического смысла не имеет:


Но в целом инструмент полезный и довольно многофункциональный. Не ленитесь его использовать – и ваши отчеты будут выглядеть очень наглядно.

Что касается решения моей конкретной задачи, то в итоге я взял, да и нарисовал все диаграммы прямо в Excel. И все получилось.

Библиотеку отрисовки диаграмм в Excel вы можете взять из моей статьи тут:

Использование диаграмм в табличном документе

В платформе 1С:Предприятие 8 все виды диаграмм поддерживают прокрутки различных областей . Диаграмма Ганта, сводная диаграмма и дендрограмма поддерживают прокрутку области построения. Обычная диаграмма, диаграмма Ганта и сводная диаграмма поддерживают прокрутку области легенды. Однако использование данной возможности при размещении диаграммы в табличном документе может вызвать определенные сложности.

Режимы работы диаграммы

Диаграмма, как и любой другой элемент управления, может находится в двух режимах - режиме конструирования (дизайна) и режиме исполнения. В режиме дизайна прокрутка областей диаграммы отключена, даже если соответствующий режим установлен в свойствах. Возможность прокрутки появляется только в режиме исполнения. В случае размещения диаграммы в форме особых сложностей нет. В конфигураторе она находится в режиме дизайна, а в режиме запуска 1С:Предприятие - в режиме исполнения. Особенность табличного документа состоит в том, что он позволяет редактировать себя (и размещенные в нем объекты) и в режиме запуска 1С:Предприятие.

Способы размещения диаграммы в табличном документе

Существуют два способа размещения диаграммы в табличном документе: как встроенного объекта (рисунка) диаграммы и как обычного элемента управления. Второй способ доступен только в том случае, если сам табличный документ (точнее, поле табличного документа) размещено в форме. С точки зрения пользователя, различия между этими режимами небольшие. Диаграмма, размещенная как элемент управления, всегда активна (в том числе всегда доступна прокрутка ее областей). Диаграмма, размещенная как встроенный объект, требует активизации, зато она лучше поддерживает изменение масштаба табличного документа. В случае варианта с элементом управления никаких сложностей с прокруткой не возникает, достаточно убедится, что у диаграммы и поля табличного документа установлено свойство "Доступность" (по умолчанию оно установлено). Однако, как уже указывалось, такой способ размещения доступен только для табличных документов помещенных в форму. В дальнейшем речь пойдет о размещении диаграммы как встроенного объекта, независимо от того, существует ли табличный документ самостоятельно или он помещен в форму (поле табличного документа).

Режим "Только просмотр" табличного документа

Одним из необходимых условий доступности интерактивных функций диаграммы является установка режима "Только просмотр" табличного документа. Если данный режим не установлен, то при активизации встроенного объекта (в том числе и диаграммы) он окажется в режиме дизайна, и, как уже было указано, возможность прокрутки будет отключена. Режим "Только просмотр" можно изменять динамически, но следует позаботиться чтобы он был включен по умолчанию. В случае табличного документа как самостоятельного документа для этого необходимо не только установить данный режим в конфигураторе (или из встроенного языка), но и включить свойство "Сохранять настройки". В случае размещения табличного документа в форме начальным состоянием можно управлять через свойство "Только просмотр" поля табличного документа.

Свойство "Защита" рисунка табличного документа

Другим необходимым условием интерактивности диаграммы является отключение свойства "Защита" рисунка табличного документа. Все дело в том, что если это свойство установлено, рисунок невозможно будет активизировать, и, следовательно, возможность прокрутки также не будет доступна. Важно отметить, что по умолчанию свойство "Защита" включено.

Печать диаграмм с прокруткой

В принципе, диаграммы с включенной прокруткой областей не предназначены для печати. В случае если их на печать все же вывести, они, независимо от текущего положения полосы прокрутки, будут выводится от начала (левого верхнего угла).

Управление прокруткой в различных диаграммах

Стоит напомнить, как прокрутка включается в самих диаграммах. Для включения прокрутки области легенды предназначено свойство "Прокрутка" области легенды диаграммы. Прокрутка легенды доступна для всех видов диаграмм кроме дендрограммы (у нее нет легенды). Прокрутка области построения зависит от типа диаграммы. У обычной диаграммы такой возможности нет. У диаграммы Ганта вертикальная прокрутка включается соответствующим свойством диаграммы (не области построения). Горизонтальная прокрутка зависит от настройки масштаба. У сводной диаграммы горизонтальная прокрутка зависит от значения свойства "ГоризонтальнаяПоддержкаМасштаба" и количества отображаемых значений. Наконец, у дендрограммы прокрутка определяется значением свойства "ПоддержкаМасштаба" и количеством элементов.

Диаграмму можно переместить в любое место на листе, на новый или существующий лист. Можно также изменить размер диаграммы на более удобный.

По умолчанию диаграмма перемещается и по размеру с ячейками. При изменении размера ячеек на листе соответственно меняется размер диаграммы. Вы можете изменить этот параметр, если не хотите перемещать диаграмму вместе с ячейками листа или изменять ее в ней.

Перемещение диаграммы в другое место на листе

Чтобы переместить диаграмму, перетащите ее в нужное место.

Перемещение диаграммы на другой лист

Вы можете переместить диаграмму на другой лист или поместить ее на новый лист диаграммы.

Щелкните в любом месте диаграммы.

На вкладке Конструктор нажмите кнопку Переместить диаграмму.

Кнопка "Переместить диаграмму"

Выполните одно из следующих действий:

Необходимые действия

Отображение диаграммы в новой лист диаграммы

Выберите параметр Новый лист, а затем в поле Новый лист введите имя нового листа диаграммы.

Отображение диаграммы в внедренная диаграмма листе

Выберите параметр Объект в, а затем в поле Объект в выберите лист, на который вы хотите разместить диаграмму.

Изменение размера диаграммы

Чтобы изменить размер диаграммы, выполните одно из указанных ниже действий.

Необходимые действия

Чтобы вручную отметить диаграмму

Щелкните диаграмму и перетаскивайте маркеры изменения размера, пока она не примет нужный размер.

Использование определенных измерений высоты и ширины

Щелкните диаграмму, а затем на вкладке Формат в группе Размер введите размер в поля Высота фигуры и Ширина фигуры.

Совет: Чтобы сохранить пропорции при выборе размеров диаграммы, выберите между высотой и шириной фигуры квадратику Сохранить пропорции.

Управление перемещением и размерами диаграммы с ячейками на листе

Щелкните в любом месте диаграммы.

Щелкните правой кнопкой мыши или щелкните его, а затем выберите формат области диаграммы.

Размер и свойства

В области Формат области диаграммы в областиПараметры диаграммы щелкните вкладку Размер и свойства диаграммы.

Щелкните меню Свойства и сделайте следующее:

Необходимые действия

Изменение высоты и ширины ячеек на диаграмме при переходе между ячейками (например, при сортировке диапазона или таблицы с ячейками) и изменения ее ширины

Выберите Переместить и размер ячеек.

Сохранение диаграммы вместе с ячейками при переходе (например, при сортировке диапазона или таблицы с ячейками) и сохранение размера диаграммы независимо от изменений высоты и ширины ячеек

Выберите Переместить, но не размер с ячейками

Положение и размер диаграммы не зависят от изменений положения, высоты и ширины ячейки

Выберите не перемещать и не размер с ячейками.

Перемещение диаграммы в другое место на листе

Чтобы переместить диаграмму, перетащите ее в нужное место.

Перемещение диаграммы на другой лист

Вы можете переместить диаграмму на другой лист или поместить ее на новый лист диаграммы.

Щелкните в любом месте диаграммы.

В меню Диаграмма выберите пункт Переместить диаграмму.

Выполните одно из следующих действий:

Необходимые действия

Отображение диаграммы в новой лист диаграммы

Выберите параметр Новый лист, а затем в поле Новый лист введите имя нового листа диаграммы.

Отображение диаграммы в внедренная диаграмма листе

Выберите параметр Объект в, а затем в поле Объект в выберите лист, на который вы хотите разместить диаграмму.

Изменение размера диаграммы

Чтобы изменить размер диаграммы, выполните одно из указанных ниже действий.

Необходимые действия

Чтобы вручную отметить диаграмму

Щелкните диаграмму и перетаскивайте маркеры изменения размера, пока она не примет нужный размер.

Использование определенных измерений высоты и ширины

Щелкните диаграмму, а затем на вкладке Формат в областиРазмер введите размер в поля Высота и Ширина.

Совет: Чтобы сохранить пропорции диаграммы при ее размере, выберите между высотой и шириной квадратику Сохранить пропорции.

Управление перемещением и размерами диаграммы с ячейками на листе

Щелкните в любом месте диаграммы.

В меню Формат выберите пункт Формат области диаграммы.

Необходимые действия

Изменение высоты и ширины ячеек на диаграмме при переходе между ячейками (например, при сортировке диапазона или таблицы с ячейками) и изменения ее ширины

Выберите Переместить и размер ячеек.

Сохранение диаграммы вместе с ячейками при переходе (например, при сортировке диапазона или таблицы с ячейками) и сохранение размера диаграммы независимо от изменений высоты и ширины ячеек

Выберите Переместить, но не размер с ячейками

Положение и размер диаграммы не зависят от изменений положения, высоты и ширины ячейки

Как построить диаграмму по таблице в Excel

Построение диаграммы в Microsoft Excel по таблице – основной вариант создания графиков и диаграмм другого типа, поскольку изначально у пользователя имеется диапазон данных, который и нужно заключить в такой тип визуального представления.

В Excel составить диаграмму по таблице можно двумя разными методами, о чем я и хочу рассказать в этой статье.

Способ 1: Выбор таблицы для диаграммы

Выбор диапазона данных для построения диаграммы по таблице в Excel

Откройте необходимую таблицу и выделите ее, зажав левую кнопку мыши и проведя до завершения.

Переход на вкладку Вставка для построения диаграммы по таблице в Excel

Вы должны увидеть, что все ячейки помечены серым цветом, значит, можно переходить на вкладку «Вставка».

Кнопка добавления диаграммы для построения диаграммы по таблице в Excel

Там нас интересует блок «Диаграммы», в котором можно выбрать одну из диаграмм или перейти в окно с рекомендуемыми.

Выбор типа диаграммы для построения диаграммы по таблице в Excel

Откройте вкладку «Все диаграммы» и отыщите среди типов ту, которая устраивает вас.

Выбор визуального оформления диаграммы для построения диаграммы по таблице в Excel

Справа отображаются виды выбранного типа графика, а при наведении курсора появляется увеличенный размер диаграммы. Дважды кликните по ней, чтобы добавить в таблицу.

Вставка диаграммы для построения диаграммы по таблице в Excel

Предыдущие действия позволили вставить диаграмму в Excel, после чего ее можно переместить по листку или изменить размер.

Изменение названия для построения диаграммы по таблице в Excel

Дважды нажмите по названию графика, чтобы изменить его, поскольку установленное по умолчанию значение подходит далеко не всегда.

Использование контекстного меню для построения диаграммы по таблице в Excel

Не забывайте о том, что дополнительные опции отображаются после клика правой кнопкой мыши по графику. Так вы можете изменить шрифт, добавить данные или вырезать объект из листа.

Вкладка со стилями для построения диаграммы по таблице в Excel

Для определенных типов графиков доступно изменение стилей, что отобразится на вкладке «Конструктор» сразу после добавления объекта в таблицу.

Как видно, нет ничего сложного в том, чтобы сделать диаграмму по таблице, заранее выбрав ее на листе. В этом случае важно, чтобы все значения были указаны правильно и выбранный тип графика отображался корректно. В остальном же никаких трудностей при построении возникнуть не должно.

Способ 2: Ручной ввод данных

Преимущество этого типа построения диаграммы в Экселе заключается в том, что благодаря выполненным действиям вы поймете, как можно в любой момент расширить график или перенести в него совершенно другую таблицу. Суть метода заключается в том, что сначала составляется произвольная диаграмма, а после в нее вводятся необходимые значения. Пригодится такой подход тогда, когда уже сейчас нужно составить график на листе, а таблица со временем расширится или вовсе изменит свой формат.

Переход на вкладку вставка для построения диаграммы по таблице с выбором данных в Excel

На листе выберите любую свободную ячейку, перейдите на вкладку «Вставка» и откройте окно со всеми диаграммами.

Успешное добавление графика для построения диаграммы по таблице в Excel

В нем отыщите подходящую так, как это было продемонстрировано в предыдущем методе, после чего вставьте на лист и нажмите правой кнопкой мыши в любом месте текущего значения.

Кнопка выбора данных для построения диаграммы по таблице в Excel

Из появившегося контекстного меню выберите пункт «Выбрать данные».

Выбор таблицы для построения диаграммы по таблице в Excel

Задайте диапазон данных для диаграммы, указав необходимую таблицу. Вы можете вручную заполнить формулу с ячейками или кликнуть по значку со стрелкой, чтобы выбрать значения на листе.

Редактирование значений для построения диаграммы по таблице в Excel

В блоках «Элементы легенды (ряды)» и «Подписи горизонтальной оси (категории)» вы самостоятельно решаете, какие столбы с данными будут отображаться и как они подписаны. При помощи находящихся там кнопок можно изменять содержимое, добавляя или удаляя ряды и категории.

Просмотр активной области для построения диаграммы по таблице в Excel

Обратите внимание на то, что пока активно окно «Выбор источника данных», захватываемые значения таблицы подсвечены на листе пунктиром, что позволит не потеряться.

Успешное редактирование для построения диаграммы по таблице в Excel

По завершении редактирования вы увидите готовую диаграмму, которую можно изменить точно таким же образом, как это было сделано ранее.

Вам остается только понять, как сделать диаграмму в Excel по таблице проще или удобнее конкретно в вашем случае. Два представленных метода подойдут в совершенно разных ситуациях и в любом случае окажутся полезными, если вы часто взаимодействуете с графиками во время составления электронных таблиц. Следуйте приведенным инструкциям, и все обязательно получится!

Читайте также: