Построение градиента

12.05.19

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

Небольшая функция, строящая градиент, и обработка для построения произвольных градиентов.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Построение градиента:
.epf 7,24Kb ver:1.0
4
4 Скачать (1 SM) Купить за 1 850 руб.

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

//Возвращает массив цветов, представляющих собой градиент - переход от начального цвета к конечному. 
//Возвращаемый массив начинается с начального и заканчивается конечным цветом
//
//Параметры:
//		НачальныйЦвет - Цвет - начальный цвет градиента с видом цвета Абсолютный 
//		КонечныйЦвет - Цвет - конечный цвет градиента с видом цвета Абсолютный
//		КоличествоГрадаций - Число - общее число цветов в возвращаемом массиве (включает начальный и конечный цвета), должно быть больше 2
//
//Возвращаемое значение:
//		Массив,Неопределено - массив с элементами типа Цвет или Неопределено (если градаций меньше 3 либо начальный и конечный цвета
//								заданы не абсолютными цветами
//
Функция ПолучитьГрадиент(НачальныйЦвет, КонечныйЦвет, КоличествоГрадаций)
	
	МассивЦветов = Новый Массив;
	МассивЦветов.Добавить(НачальныйЦвет);
	
	Если КоличествоГрадаций > 2 И НачальныйЦвет.Вид = ВидЦвета.Абсолютный И КонечныйЦвет.Вид = ВидЦвета.Абсолютный Тогда
		ШагКрасного = (КонечныйЦвет.Красный - НачальныйЦвет.Красный) / КоличествоГрадаций;
		ШагЗеленого = (КонечныйЦвет.Зеленый - НачальныйЦвет.Зеленый) / КоличествоГрадаций;
		ШагСинего = (КонечныйЦвет.Синий - НачальныйЦвет.Синий) / КоличествоГрадаций;
		
		ТекКрасный = НачальныйЦвет.Красный;
		ТекЗеленый = НачальныйЦвет.Зеленый;
		ТекСиний = НачальныйЦвет.Синий;
		
		Для Сч = 2 По КоличествоГрадаций Цикл
			ТекКрасный = ТекКрасный + ШагКрасного;
			ТекЗеленый = ТекЗеленый + ШагЗеленого;
			ТекСиний = ТекСиний + ШагСинего;
			
			МассивЦветов.Добавить(Новый Цвет(Окр(ТекКрасный,0), Окр(ТекЗеленый,0), Окр(ТекСиний,0)));
		КонецЦикла;
		
		МассивЦветов[МассивЦветов.ВГраница()] = КонечныйЦвет;
		
		Возврат МассивЦветов;
		
	Иначе
		Возврат Неопределено;
	КонецЕсли;
	
КонецФункции

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

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

При выборе ячейки поля табличного документа обработка показывает цветовые составляющие текущего цвета.

Тестовое окружение

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

градиент переход цветов RGB

См. также

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

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

5000 руб.

14.01.2016    55565    17    23    

43

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

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

2400 руб.

29.06.2020    19892    28    6    

44

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

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

28.08.2023    16934    YA_418728146    8    

170

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    4386    75    progmaster    11    

4

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

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

1 стартмани

05.07.2022    7812    kalyaka    6    

33

WEB-интеграция Работа с интерфейсом Пользователь Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для конфигурации 1С:Розница 2.3.

3600 руб.

29.04.2022    14388    2    10    

13

Работа с интерфейсом Платформа 1С v8.3 Платные (руб)

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

6000 руб.

18.01.2022    10276    1    2    

6

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

Реализовал простой способ программного создания новых элементов, команд и реквизитов на форме.

25.11.2021    11652    AtamanovYS    19    

149
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dsfix 32 28.01.19 17:45 Сейчас в теме
2. frkbvfnjh 809 19.10.20 13:00 Сейчас в теме
Классная тема! Функция отлично работает!
Оставьте свое сообщение