Универсальные функции для работы с цветом в 1С

07.08.20

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

Все на что мы смотрим состоит из цветов в том числе и то, что есть в конфигурациях на 1С :) За время своей работы скопилось достаточно 1С-функций, которые что-то делают с цветом. Это публикация - попытка их систематизировать. Что есть: работа с HEX, HSV, HSL, CMYK представлениями цвета, конвертации из одной системы хранения в другую, работа с каталогами RAL, работа со случайными цветами, контрастные и инверсные цвета, трансформация цветов (осветление, затемнение, градации серого, смешивание цветов), работа с именованными CSS-цветами и т.п. В общем концептуально.

Скачать файлы

Наименование Файл Версия Размер
Универсальные функции для работы с цветом в 1С:
.zip 38,11Kb
30
.zip 1.2 38,11Kb 30 Скачать

Модуль определяет работу с:

  • HEX-представлением цвета (тип Строка, вида #RRGGBB)
  • HSV-представлением цвета (тип Cтруктура * h - Число от 0 до 360 - Hue. * s - Число от 0 до 100 - Saturation. * v - Число от 0 до 100 - Value/Brightness)
  • HSL-представлением цвета (тип Cтруктура * h - Число от 0 до 360 - Hue. * s - Число от 0 до 100 - Saturation. * l - Число от 0 до 100 - lightness)
  • CMYK-представлением цвета (тип Cтруктура * c - Число от 0 до 100 - Cyan, * m - Число от 0 до 100 - Magenta. * y - Число от 0 до 100 - Yellow. * k - Число от 0 до 100 - Key или Black)
  • Конвертациями из одной системы представления цвета в другую (WebЦвет-Цвет, WindowsЦвет-Цвет, ЭлементСтиля-Цвет, CMYK-Цвет, HSV-Цвет, HSL-Цвет, HEX-Цвет и обратно)
  • Работа с каталогами RAL (RAL Standart, RAL Design)
  • Получение цветов по Web-цвету, WindowsЦвету, ЭлементуСтиля
  • Работа со случайными цветами;
    • Получение случайного цвета;
    • Получение случайного светлого цвета;
    • Получение случайного темного цвета;
  • Получение случайного цвета из каталога RAL Standart;
  • Получение случайного Web-цвета;
  • Получение контрастных и инвертированных цветов для текста и фона;
  • Извлечение компонент цвета (красный, зеленый, синий).
  • Трансформация цветов:
    • осветление;
    • затемнение;
    • различные алгоритмы градации серого;
    • смешивание двух цветов;
  • Работа с именованными CSS-цветами (black, green, white...)

Особенности

В модуле решается вопрос с хранением цвета в реквизитах. Часто цвет хранят в хранилище значений, что не очень удобно при дальнейшей работе с цветом. Гораздо проще сохранить цвет в HEX-представление (строка 7 символов). Пример, #FFFFFF (это белый цвет) или #000000 (это черный цвет). Такое хранение общепринятое в мире веб-разработчиков и тем, кто раньше работал с web так гораздо проще. Да и дальнейшая работа не предполагает распаковывать цвет из хранилища значений, он в реквизите типа строка.

Функция АбсолютныйЦвет позволяет на входе получить цвет любого типа (WindowsСтиль, WebЦвет, АбсолютныйЦвет) и вернуть все в абсолютном цвете. Я не знаю, почему в 1С в базовом функционале нет возможности вернуть абсолютный цвет, но этот вопрос решен в этой функции.

Поддерживаются всевозможные трансформации цвета: сделать светлее, темнее, смешать, градация серого и т.д. Все методы

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

Во вложении обработка, которая содержит примеры работы с функциями работы с цветом.

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

Все функции работы с цветом находятся в модуле объекта обработки.

color цвет RAL HEX HSV HSL CMYK случайный трансформация цвета осветление затемнение градация серого смешивание палитра

См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

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

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

6000 руб.

16.01.2015    61793    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

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

5000 руб.

14.01.2016    54398    16    21    

42

Управление дашбордами

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

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

2400 руб.

29.06.2020    16695    21    4    

35

Новогоднее оформление для 1С

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

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

27.12.2023    10734    750    elcoan    45    

106

Конструктор HTML, CSS и javascript

Инструментарий разработчика Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

2 стартмани

10.04.2023    9607    151    acces969    31    

118

Модель состояния для MVC

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

05.07.2022    3665    kalyaka    2    

27

Табло очереди заказов на экран телевизора

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

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

3600 руб.

29.04.2022    12077    1    5    

10
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Diversus 2306 24.08.20 17:12 Сейчас в теме
Версия 1.1 Удалена зависимость от БСП. Исправлена ошибка вызова из под web-клиента.
2. NikeeNik 74 25.10.20 03:29 Сейчас в теме
Предложу небольшое изменение: преобразование в HEX без создания временных файлов и по идее должно работать в веб-клиенте:
ПотокВПамяти = Новый ПотокВПамяти();

ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.Область(1, 1, 1, 1).ЦветФона = Цвет;
ТабДокумент.Записать(ПотокВПамяти, ТипФайлаТабличногоДокумента.ODS);

ПотокВПамяти.Перейти(0, ПозицияВПотоке.Начало);

ТабДокумент.Прочитать(ПотокВПамяти,, ТипФайлаТабличногоДокумента.ODS);
ЦветФона = ТабДокумент.Область(1, 1, 1, 1).ЦветФона;

Результат = ДополнитьСтроку(Из_10_В_Любую(ЦветФона.Красный), 2)
	+ ДополнитьСтроку(Из_10_В_Любую(ЦветФона.Зеленый), 2)
	+ ДополнитьСтроку(Из_10_В_Любую(ЦветФона.Синий), 2);
	
ПотокВПамяти.Закрыть();
Показать
user1430860; DrAku1a; Diversus; +3 Ответить
3. Diversus 2306 26.10.20 13:20 Сейчас в теме
4. frkbvfnjh 785 06.01.21 10:12 Сейчас в теме
А когда поддержку цветовых схем добавите?
5. Diversus 2306 06.01.21 20:52 Сейчас в теме
(4) Пока не планируется. Репозитарий открыт, можете сами добавить, внесем в проект
6. frkbvfnjh 785 07.01.21 13:05 Сейчас в теме
(5)
Репозитарий открыт
Извините, но о каком репозитарии Вы говорите?
7. frkbvfnjh 785 08.01.21 09:20 Сейчас в теме
(5) На других сайтах нашел Вашу публикацию и там есть в конце строчка:

Вам бы эту строчку и в эту статью добавить
Cthulhu; msergeev79; +2 Ответить
8. Diversus 2306 08.01.21 19:31 Сейчас в теме
(7) Да. Спасибо. Надо обновить публикацию.
9. Cthulhu 1 04.08.22 15:17 Сейчас в теме
АбсолютныйЦвет(windows-цвет) преобразует неверно только у меня? (скриншот#1)
ИсходныйЦвет1с = Тд.Область(НомерСтроки, НомерКолонки, НомерСтроки, НомерКолонки).ЦветФона;
Тд.Область(НомерСтроки, НомерКолонки).Текст = "(" + ИсходныйЦвет1с.Вид + ") " + ИсходныйЦвет1с;

АбсолютныйЦвет = АбсолютныйЦвет(ИсходныйЦвет1с);
ВыводРезультата = Тд.Область(НомерСтроки, НомерКолонки + 2);
ВыводРезультата.Текст = "(" + АбсолютныйЦвет.Вид + ") " + АбсолютныйЦвет + ": Red = " + АбсолютныйЦвет.Красный
+ ",  Green = " + АбсолютныйЦвет.Зеленый + ",  Blue = " + АбсолютныйЦвет.Синий;
ВыводРезультата.ЦветФона = Новый Цвет(АбсолютныйЦвет.Красный, АбсолютныйЦвет.Зеленый, АбсолютныйЦвет.Синий);
Показать

как получить то, что выдается (для первого фона) через "Свойства" ячейки в режиме предприятия (скриншот#2)?..
Прикрепленные файлы:
Оставьте свое сообщение