Настройка цветов серий в диаграмме отчета на СКД

10.03.25

Разработка - Работа с интерфейсом

Использование возможности платформы сохранения цветов серий диаграммы и использования этих цветов в другой диаграмме.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Настройка цветов серий в диаграмме отчета на СКД:
.erf 14,69Kb
1
1 Скачать (1 SM) Купить за 1 850 руб.

Постановка задачи

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

 

Поиск решения

Первое, что пришло в голову, что этим управлять вообще невозможно. Второе - что возможно поможет  программная компоновка отчёта. Третье - надо погуглить.

Поиск вывел на статью 1С:Зазеркалье | Развитие диаграмм от 13.06.2019. Автоматическое сохранение цвета серии - то что нужно!. Анонсированные в статье возможности доступны в 8.3.16.1030.

Документации не нашёл. Поиск тоже не помог. Ну, значит, будем экспериментировать и писать статью.

 

Описание механизма

Статья не претендует на полное руководство, описаны только моменты, с которыми я столкнулся при выполнении задачи. Если есть чем дополнить - пишите в комментарии.

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

 

 

  • Сохранение цветов
    • Авто - Настройка берётся от родительского элемента (установлено по умолчанию)
    • Для пользователя - Сохранение для текущего пользователя*
    • Для текущего результата - Не знаю. Не проверял.
    • По ключу для пользователя - Для текущего пользователя + произвольный ключ*
    • Не использовать - Цвета как и раньше выбираются случайно
  • Ключ сохранения цветов - Текстовый ключ для настроек

   * Если в базе пользователи не используются - настройки всё равно будут сохраняться с пустым именем пользователя.

После установки этих настроек цвета серий действительно начали сохраняться и загружаться, но я так и не нашёл как с помощью интерфейса их можно задать принудительно или предопределить. Какого-либо программного интерфейса для этого тоже не нашёл, по этому решил разобраться в каком виде эти настройки хранятся и задать их через хранилище настроек. (Если знаете как это сделать по другому - пишите в комментариях)

Получив все ключи объектов системных настроек я нашёл нужный. Есть два варианта, зависит от настройки сохранения цветов "По ключу для пользователя" и ключа сохранения цветов:

  • Ключ не используется - Общее/ЦветаДиаграммы
  • Ключ используется - Общее/ЦветаДиаграммы/ВАШ_КЛЮЧ

Пробуем прочитать:

КлючОбъекта = "Общее/ЦветаДиаграммы/ЦветаПоказателей";
ИмяПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
	
НастройкиЦветовСерий = ХранилищеСистемныхНастроек.Загрузить(КлючОбъекта,,, ИмяПользователя);

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

НастройкиЦветовСерий.Установить("Доход", ЦветаСтиля.ЦветАкцента);
НастройкиЦветовСерий.Установить("Расход", Новый Цвет(255,0,0));
НастройкиЦветовСерий.Установить("Прибыль", ЦветаСтиля.ЦветФонаВыделенияПоля);// WindowsЦвета.Подсвеченный);
НастройкиЦветовСерий.Установить("Фонд", WebЦвета.Золотой);

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

 

Выводы

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

 

 

Нужно создать удобный интерфейс для отображения и выбора цветов серий, чтобы пользователь смог в режиме предприятия изменять настройки по умолчанию и личные настройки. Начал делать этот интерфейс и заодно научился раскрашивать ячейку таблицы значений в зависимости от выбранного цвета (см. второй скриншот). Как это сделать написал в статье Раскраска ячейки таблицы значений для УФ , кому просто нужен код - качайте обработку.

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

Весть эксперимент оформлен в виде внешнего отчёта, так же в нем есть форма выбора цветов. Хотя описанные возможности доступны в 8.3.16, для работы отчёта необходима платформа не ниже 8.3.20, т.к. я использовал новые арифметические возможности языка запросов для генерации таблицы тестовых данных прямо в запросе схемы компоновки данных. Почему? Просто захотелось, эксперимент в эксперименте, попутно выяснилось, что работа с функциями Log и Log10 отличается на файловой и серверной базе, и от их использования отказался.

Проверено на следующих конфигурациях и релизах:

  • Управление торговлей, редакция 11, релизы 11.5.20.106

диаграмма отчет цвета скд цвета серий

См. также

Работа с интерфейсом Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    55766    17    23    

43

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

Универсальный редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью рисовать на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    64150    45    60    

83

Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    20101    28    6    

44

Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

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

20.08.2024    24749    mrXoxot    44    

130

Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

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

27.05.2024    12782    smielka    37    

105

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    18647    1237    elcoan    53    

128

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

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

3 стартмани

10.04.2023    13057    167    acces969    31    

126

Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    8420    kalyaka    6    

34
Оставьте свое сообщение