Выбор цвета на HTML

18.04.22

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

Возникла необходимость выбирать цвет для элементов справочника через html и хранить его в реквизите справочника в формате строки: НЕХ цвет (#FDFDFD), R - Значение красного, G - Значение зеленого, B - Значение синего. По параметрам RGB - формируется Цвет 1С - Новый Цвет(R, G, B). Проверена на платформе 8.3.20.1710.

В приложенных файлах код модуля общей формы ВыборЦвета, код ОбщегоМакета (HTML + JS).

 

Вид формы в режиме предприятия.

 

Картинка для формирования ПоляHTMLДокумента.


Ее нужно загрузить на сервер картинок и прописать путь в макете (строка № 52) вместо ВашПутьККартинке.

МодульФормы.

 

При закрытии формы Параметры ЦветНЕХ, ЦветКрасный, ЦветЗеленый, ЦветСиний.

ЦветНЕХ, возможно, не всем понадобится.

В ОповещенииОЗакрытии формы формируется Цвет1С: Новый Цвет(ЦветКрасный,ЦветЗеленый,ЦветСиний), который можно сохранить в реквизите.

Макет текстовый:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
<title>Colorpicker</title>

<style>

.canvasBox {
    max-width: 100%;
    width: 350px;
    border: 1px solid gray;
}

.my-color {
    width: 50px;
    height: 50px;
    border: 1px solid gray;
    margin: 9px 1px;
}

.cccolor {
	background: #fff;
}

</style>

<script>

</script>

</head>

<body>

<div class="container">
<canvas width="350px" id="myCanvas" class="canvasBox"></canvas>
<div class="my-color" id="cccolor"></div>
<div id="hex" style="display:none;">#ffffff</div>
<div id="ColorRGB" style="display:none;"><span id="ColorR"></span><span id="ColorG"></span><span id="ColorB"></span></div>
</div>

<script type="text/javascript">

	var canvas = document.getElementById('myCanvas');
	var ctx = canvas.getContext("2d");
	// create an image object and get it’s source
	var img = new Image();
	// copy the image to the canvas
	img.onload = function(){canvas.width=img.naturalWidth;canvas.height=img.naturalHeight;ctx.drawImage(img,1,1);};
	img.src = "<ВАШ_Путь_К_Картинке>/images/pixcolor.png";
	
	canvas.onclick = function(a){
		mousePos = getMousePos(canvas,a);
		GetPixel(mousePos.x, mousePos.y);
	};
	
	function GetPixel(a,c){
		var b = canvas.clientWidth/canvas.width;
		var x = event.pageX-8;
		var y = event.pageY-8;
		var imgData = ctx.getImageData(a/b,c/b,1,1).data;
		var R = imgData[0];
		var G = imgData[1];
		var B = imgData[2];
		var rgb = R + ' ' + G + ' ' + B;
		var hex = rgbToHex(R,G,B);
		
		document.getElementById("cccolor").style.backgroundColor = "#"+hex;
		document.getElementById("hex").innerText = "#"+hex;
		document.getElementById("ColorR").innerText = R;
		document.getElementById("ColorG").innerText = G;
		document.getElementById("ColorB").innerText = B;
	}
	
	function getMousePos(a,c){
		var b = a.getBoundingClientRect();
		return{x:c.clientX-b.left,y:c.clientY-b.top}
	}
	
	function rgbToHex(R,G,B) {return toHex(R)+toHex(G)+toHex(B)}
		
	function toHex(n) {
		n = parseInt(n,10);
		if (isNaN(n)) return "00";
		n = Math.max(0,Math.min(n,255));
		return "0123456789ABCDEF".charAt((n-n%16)/16)  + "0123456789ABCDEF".charAt(n%16);
}

</script>

</body>

</html>

Код Макета HTML.

Выбор цвета HTML JS

См. также

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

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

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

2400 руб.

29.06.2020    17186    23    4    

37

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

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

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

27.12.2023    11660    776    elcoan    46    

107

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

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

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

2 стартмани

10.04.2023    10200    157    acces969    31    

120

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

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

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

1 стартмани

05.07.2022    4201    kalyaka    4    

31

Условное оформление элементов форм в пользовательском режиме 1С (управление видимостью и доступностью элементов форм)

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

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

6000 руб.

18.01.2022    9107    1    2    

6

Программный интерфейс для доработки форм

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

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

25.11.2021    9997    AtamanovYS    19    

141
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. mrChOP93 97 18.04.22 08:50 Сейчас в теме
Спасибо, а модуль формы лучше бы текстом выложили, а не скриншотом.
2. SerVer1C 779 18.04.22 23:28 Сейчас в теме
Почему бы не сделать палитру плавными градиентами для более точного выбора цвета?
3. SlavaKron 19.04.22 08:27 Сейчас в теме
Если это модель HSL (hue - оттенок, saturation - насыщенность, lightness - светлота), то не хватает ползунка, регулирующего уровень насыщенности, так как на картинке представлены только матрица оттенка и светлоты. Также привычнее всё-таки вариант матрицей оттенок-насыщенность + регулировка светлоты. Такое, кстати, можно реализовать через табличный документ.
Прикрепленные файлы:
5. Bru_10 22.11.22 18:10 Сейчас в теме
(3)А есть готовое решение как на вашей картинке?
4. andrybar 402 04.09.22 12:39 Сейчас в теме
Ответ на 2 и на 3: Плавный градиент это хорошо, и уровень насыщенности. Но сколько людей им пользуются? Для быстрого выбора цвета - человек априори выбирает цвета примерно одни и те же. Поэтому стояла задача выбирать цвет в один клик, без всяких ползунков. Благо, что картинка палитры соответствует почти всем оттенкам, которые используются пользователями.
6. andrybar 402 29.11.22 19:04 Сейчас в теме
(5)
(5)есть но оно в составе коныигурации
Оставьте свое сообщение