1c диаграмма как скопировать

Обновлено: 06.07.2024

У большинства пользователей 1С может возникнуть необходимость перенести информацию из базы 1С в таблицы Microsoft Excel. Например, выгрузить список номенклатуры из программы 1С:Управление торговлей 8, или список сотрудников из 1С:Зарплата и управление персоналом 8. Такой список удобно редактировать, распечатать или переслать по электронной почте. Все программы на платформе 1С:Предприятие 8.3 имеют одинаковый алгоритм выгрузки информации в таблицу Excel, который укладывается в несколько простых действий.

Программы 1С:Предприятие 8.3 – это, в том числе, конфигурации 1С:Бухгалтерия 3.0, 1С:ЗУП 3.1, 1С:Управление торговлей 11.4, и другие. Это разные программы для различных учетных целей, но с одинаковым интерфейсом и одной логикой разработки.

Для примера мы выгрузим в Excel справочник сотрудников из программы 1С:ЗУП 8 редакции 3.1. Используя тот же алгоритм можно выгрузить из программы любую информацию, которая сгруппирована в таблицы – табличные части документов, списков, справочников.

табличная часть справочника, документа или списка

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

вывести список из таблицы 1С 8.3

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

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

выбрать колонки для выгрузки в Excel из 1С

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

сохранить таблицу из 1С как excel

После нажатия на кнопку появится стандартное окно проводника Windows, где нужно будет указать путь размещения файла и его тип. При этом не забудьте выбрать нужный формат сохраняемой таблицы: *.xlsx, чтобы сохранить для современных версий Excel, или *.xls, чтобы файл можно было открыть в старых версиях Excel 2003 года или более ранних. Также на выбор доступны и другие форматы таблиц.

сохранить как таблицу Excel данные из 1С

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

Так уж получилось, что за более чем 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 вы можете взять из моей статьи тут:

title

Алгоритм обработки выполняет запрос к регистру сведений "курсы валют" за определенный пользователем период. Полученные данные выборки в цикле выводятся в элемент экранной формы "диаграмма" в режиме построения графика. Для элемента управления "Диаграмма" на этапе конфигурирования был задан тип - График, и имя - "График Курсов". Это наиболее наглядный и простой пример работы с графиками в 1С 8.1.
Внешний вид и органы управления показаны на рисунке:

Алгоритм процедуры рисования графика:
- Очистить старые данные графика;
- Сформировать текст запроса;
- Установить значения периода выборки;
- Выполнить запрос;
- Подготовить структуру соответствия серий и валют, которые будут изображены на графике;
- В цикле заполнить значения точек графика для всех используемых валют;
- В цикле, используя ранее установленные значения графика для валют, добавить серию графика бивалютной корзины;
- Обновить данные графика курсы валют экранной формы;

Использование элемента Диаграмма в 1С
Алгоритм обработки использует в качестве параметра элемент НастройкаПериода, значения которого используются в запросе к регистру сведений "Курсы валют".
Исходный код:
Код 1C v 8.х
Далее в процедуре "Нарисовать", осуществляющей вывод данных запроса в диаграмму экранной форме, обозначена структура для работы с валютами и ряд подготовительных действий. Переменная курсы будет использоваться для связи с элементом управления Диаграмма, расположенным на экранной форме. Перед работой будут очищены текущие данные диаграммы и отлючена перерисовка значений в момент нового формирования и насыщения данными. Структура "серии" потребуется для связи названия валюты (ключ) и серии (значение) диаграммы, как на моменте инициализации, так и при выводе данных. Так же при создании серий диаграммы производится отключение маркеров.
Код 1C v 8.х
Далее необходимо выполнить запрос и перейти к формированию диаграммы. Следующая часть процедуры заполняет значение точек для серий диаграммы, добавленных в цикле инициализации серий графика. Если точек диаграммы не было создано ранее, они создается. Алгоритм рассчитан для работы с курсами валют в течении года, если нужен больший период механизм создания точек следует переделать либо в запросе, либо в данном цикле. Номер серии, используемый при выводе значения точки диаграммы, находится при помощи структуры ключ и значение по названию валюты, полученному для текущей строки выборки запроса. Код 1C v 8.х
Получение значения точки уже построенного графика в элементе диаграмма можно при помощи функции "ПолучитьЗначение". Для использования этой функции нужно знать серию и точку диаграммы. После вычисления значения графика бивалютной корзины диаграмму нужно обновить:
Код 1C v 8.х

title

Данные курсов можно загрузить штатным загрузчиком 1С с сайта РБК, для этого можно воспользоваться справочником "Валюты" нажав пункт меню "Загрузить курсы":

title

При построении графика предполагается наличие в справочнике данных следующих валют: EUR, GBP, USD, Руб. После открытия формы для загрузки данных курсов валют нужно указать интервал требуемых данных - например с 2000 по 2010 год и нажать на кнопку "Заполнить", затем на кнопку "Загрузить". В данном примере курсы валют будут загружены с сайта РБК:

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

Сохранение диаграммы, графиков и гистограмм в виде картинки

Построенные в диаграмме графики можно сохранить средствами 1С в один из поддерживаемых форматов:
BMP
EMF
GIF
Icon
JPEG
PNG
TIFF
WMF

Пример процедуры для экспорта диаграммы в графический формат:
Код 1C v 8.х

title

Полученная картинка графика будет выглядеть так:

Выгрузка данных из 1С в Microsoft Excel

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

Выгрузка информации из 1C в Excel

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

Способ 1: копирование содержимого ячейки

Одна единица данных содержится в ячейке 1С. Её можно перенести в Эксель обычным методом копирования.

  1. Выделяем ячейку в 1С, содержимое которой нужно скопировать. Кликаем по ней правой кнопкой мыши. В контекстном меню выбираем пункт «Копировать». Можно воспользоваться также универсальным способом, который действует в большинстве программ, работающих на ОС Windows: просто выделяем содержимое ячейки и набираем комбинацию клавиш на клавиатуре Ctrl+C.

Копирование в 1С

Вставка через контекстное меню в Microsoft Excel

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

Вставка через кнопку на ленте в Microsoft Excel

Содержимое ячейки 1С будет вставлено в Excel.

Данные в ячейку вставлены в Microsoft Excel

Способ 2: вставка списка в существующую книгу Excel

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

  1. Открываем любой список, журнал или справочник в 1С. Кликаем на кнопку «Все действия», которая должна располагаться вверху от обрабатываемого массива данных. Запускается меню. Выбираем в нем пункт «Вывести список».

Переход к выводу списка в Microsoft Excel

Поле «Выводить в» имеет два значения:

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

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

Окно вывода списка в Microsoft Excel

Копирование списка в 1С

Вставка списка в Microsoft Excel

Список вставлен в документ.

Список вставлен в документ в Microsoft Excel

Способ 3: создание новой книги Excel со списком

Также список из программы 1С можно сразу вывести в новый файл Эксель.

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

Сохранение списка в 1С

Ещё проще сделать переход, нажав на кнопку «Сохранить», которая имеет вид дискеты и расположена в блоке инструментов 1С в самом верху окна. Но такая возможность доступна только пользователям, которые применяют программу версии 8.3. В ранних версиях можно использовать только предыдущий вариант.

Переход к сохранению списка в 1С

Сохранение таблицы из 1С в Microsoft Excel

Весь список будет сохранен отдельной книгой.

Способ 4: копирование диапазона из списка 1С в Excel

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

    Выделяем строки или диапазон данных в списке. Для этого зажимаем кнопку Shift и кликаем левой кнопкой мыши по тем строкам, которые нужно перенести. Жмем на кнопку «Все действия». В появившемся меню выбираем пункт «Вывести список…».

Переход к выводу диапазона данных в 1С

Окно вывода списка выделенных строк в Microsoft Excel

Список выведен в 1С

Способ 5: Сохранение документов в формате Excel

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

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

Вывод на печать документа в 1С

Переход к сохранению документа в Microsoft Excel

Переход к сохранению документа в программе 1С

Сохранение документа в формате Microsoft Excel

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

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

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

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