Программное создание картинки

31.05.12

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

В статье приводится алгоритм программного создания однотонной картинки на основе переданного цвета.

Как-то мне понадобилось сделать однотонные цветные закладки, чтобы пользователь мог сам выбирать цвет. Стандартный функционал 1С страниц панели, поддерживает только присвоение объекта типа Картинка для закладок. Возможно, есть решение в объектах ActiveX, но моя душа к такому способу не лежала. Но как говорится, если гора идет к Магомету, то Магомет идет к горе. Поэтому решил создать объект типа Картинка программно.

Для этого идеально подошел формат BMP (как самый простейший из форматов хранения изображений). Чтобы не заморачиваться с палитрой, выбрал 24-битную глубину изображения (байты цвета каждого пикселя хранятся в порядке Blue,Green,Red). Затем, не мудрствуя лукаво, создал однотонную картинку 16x16 в паинте и вооружившись HEX-редактором перенес оттуда заполненные поля заголовка файла в код 1С, который заполняет массив данных. Чтобы записать массив в бинарный файл, запихиваем его в COMSafeArray, который уже с помощью потока COMОбъекта "ADODB.Stream" сохраняем в файл.

Таким образом, путем нехитрых манипуляций родилась небольшая функция:

Функция СоздатьКартинку(Цвет)

    Данные = Новый Массив(822);

    // Заполняем заголовок файла служебной информацией

    Данные[0] = 66; Данные[1] = 77;
    Данные[2] = 54; Данные[3] = 03;
    Данные[10] = 54; Данные[14] = 40;
    Данные[18] = 16; Данные[22] = 16;
    Данные[26] = 01; Данные[28] = 24;
    Данные[38] = 195; Данные[39] = 14;
    Данные[42] = 195; Данные[43] = 14;

    // Заполняем всю картинку выбранным цветом
    // Единственный косяк в том, что нельзя выбрать ни WebЦвета, ни Windows
    // Как вариант, можно выбрать цвет на вкладке WevЦвета или Windows, затем перейдя на вкладку "из стиля"
    // поменять значение любого компонента цвета (красный, зеленый, синий) и вернуть его обратно
    Для Счетчик = 0 По 255 Цикл
        Данные[54 + Счетчик * 3] = Цвет.Синий;
        Данные[54 + Счетчик * 3 + 1] = Цвет.Зеленый;
        Данные[54 + Счетчик * 3 + 2] = Цвет.Красный;
    КонецЦикла;

    // Обводим рамочкой и не забываем, что строки в bmp-файле хранятся снизу-вверх
    Для Счетчик = 0 По 15 Цикл
        // рамка снизу
        Данные[54 + Счетчик * 3] = 0; Данные[55 + Счетчик * 3] = 0; Данные[56 + Счетчик * 3] = 0;
        // рамка сверху
        Данные[773 + Счетчик * 3] = 0; Данные[774 + Счетчик * 3] = 0; Данные[775 + Счетчик * 3] = 0;
        // рамка слева
        Данные[54 + Счетчик * 48] = 0; Данные[55 + Счетчик * 48] = 0; Данные[56 + Счетчик * 48] = 0;
        // рамка справа
        Данные[ 99 + Счетчик * 48] = 0; Данные[100 + Счетчик * 48] = 0; Данные[101 + Счетчик * 48] = 0;
    КонецЦикла;

    // Создаем bmp-файл
    ИмяФайла = ПолучитьИмяВременногоФайла("bmp");
    Поток = Новый COMОбъект("ADODB.Stream");
    Поток.Type = 1;
    Поток.Mode = 3;
    Поток.Open();
    Поток.Write(Новый COMSafeArray(Данные, "VT_UI1", Данные.Количество()));
    Поток.SaveToFile(ИмяФайла);
    Поток.Close();

    Возврат Новый Картинка(Новый ДвоичныеДанные(ИмяФайла));

КонецФункции

 Вот и все. Только пришлось добавить рамочку вокруг рисунка для красоты :)

См. также

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

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

5000 руб.

14.01.2016    55441    17    23    

43

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

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

2400 руб.

29.06.2020    19724    28    6    

44

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

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

20.08.2024    21865    mrXoxot    44    

128

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

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

27.05.2024    10980    smielka    37    

105

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

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

27.12.2023    17963    1225    elcoan    53    

125

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

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

3 стартмани

10.04.2023    12659    167    acces969    31    

126

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

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

1 стартмани

05.07.2022    7383    kalyaka    6    

33
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Serj1C 483 31.05.12 12:29 Сейчас в теме
очень интересно. я делал обработку для создания не только монотонных рисунков http://infostart.ru/public/77713/
проще было бы, конечно, использовать ком объект потока, но хотелось все чисто внутренними методами 1С
а так, беру на заметку
2. [AdepT] 41 31.05.12 12:44 Сейчас в теме
Там же целый минипаинт :) А тут маленькая функция для создания иконки. Но, как говорится, на вкус и цвет... :)
3. пользователь 08.06.12 14:32
Сообщение было скрыто модератором.
...
4. CaSH_2004 373 10.06.12 02:15 Сейчас в теме
Хорошая и полезная тема с отличными комментариями. Как-то недавно пришлось столкнуться как можно из библиотеки картинок извлечь таким-же макаром отдельные картинки - перепахал весь код и ускорил в 10 раз, хотя помучаться прищлось, необычные методики для 1С. Вот все никак на статью не разрожусь.
5. пользователь 12.06.12 17:59
Сообщение было скрыто модератором.
...
6. dragonbridge 14.08.12 12:12 Сейчас в теме
C COMSafeArray неплохо придумал, надо будет взять на вооружение.
7. softservice14 22.10.16 06:35 Сейчас в теме
8. Anthon 231 24.12.18 11:54 Сейчас в теме
То же самое, только без временных файлов и с переводом в абсолютный цвет, то есть теперь можно заполнить картинку любым цветом 1с.
Функции СО и ДО - это способ хранить веб-цвета 1С в текстовых полях справочников, например, это просто для удобства.
ПолучитьRGBиз16 превращает фотошопный цвет в абсолютный 1с
ПолучитьRGB превращает веб-цвет в абсолютный 1с
Полученные картинки можно сразу использовать для вставки в списки значений, к примеру.

Функция СО(Значение) Экспорт
ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.УстановитьСтроку();
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Значение);
СтрокаXML = ЗаписьXML.Закрыть();
Возврат СтрокаXML;
КонецФункции

Функция ДО(СтрокаXML) Экспорт
ЧтениеXML = Новый ЧтениеXML();
ЧтениеXML.УстановитьСтроку(СтрокаXML);
Попытка
Значение = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Возврат Значение;
КонецФункции

Функция ПолучитьRGBИз16(рЦвет16ричный = "#536ac2")
фд = Новый ФорматированныйДокумент;
фд.УстановитьHTML("<HT ML><HEAD><MET A content=""text/html; charset=utf-8"" http-equiv=Content-Type><MET A name=GENERATOR content=""MSHTML 11.00.9600.18817""></HEAD>
|<BODY><P><FONT color="+рЦвет16ричный+">Текст<FONT</P></BODY></HTML>", Новый Структура);
Возврат фд.Элементы[0].Элементы[0].ЦветТекста;
КонецФункции

Функция ПолучитьRGB(Цвет) Экспорт
Попытка
фд = Новый ФорматированныйДокумент;
тфд = фд.Добавить("Текст", Тип("ТекстФорматированногоДокумента"));
тфд.ЦветТекста = Цвет;
хтмл = "";
фд.ПолучитьHTML(хтмл, Новый Структура);
Исключение
Сообщить("Ошибка при построении служебного форматированного документа: " + ОписаниеОшибки(), СтатусСообщения.Важное);
КонецПопытки;
Попытка
рЧтение = Новый ЧтениеHTML;
рЧтение.УстановитьСтроку(хтмл);
пострДом = Новый ПостроительDOM;
докДом = пострДом.Прочитать(рЧтение);
знчАтрибута = докДом.Тело.ДочерниеУзлы[1].ПервыйДочерний.Атрибуты[0].Значение;
рЦвет16ричный = СокрЛП(СтрЗаменить(СтрЗаменить(знчАтрибута, "color: ", ""), ";", ""));
Исключение
Сообщить("Ошибка при распознании содержания форматированного документа: " + ОписаниеОшибки(), СтатусСообщения.Важное);
КонецПопытки;
Возврат ПолучитьRGBИз16(рЦвет16ричный);
КонецФункции

Функция СоздатьКартинку(Знач Цвет) Экспорт
Если Цвет.Вид <> ВидЦвета.Абсолютный Тогда
Цвет = ПолучитьRGB(Цвет);
КонецЕсли;
Данные = Новый Массив(822);
Данные[0] = 66; Данные[1] = 77;
Данные[2] = 54; Данные[3] = 03;
Данные[10] = 54; Данные[14] = 40;
Данные[18] = 16; Данные[22] = 16;
Данные[26] = 01; Данные[28] = 24;
Данные[38] = 195; Данные[39] = 14;
Данные[42] = 195; Данные[43] = 14;
Для Счетчик = 0 По 255 Цикл
Данные[54 + Счетчик * 3] = Цвет.Синий;
Данные[54 + Счетчик * 3 + 1] = Цвет.Зеленый;
Данные[54 + Счетчик * 3 + 2] = Цвет.Красный;
КонецЦикла;
Поток = Новый ПотокВПамяти();
Запись = Новый ЗаписьДанных(Поток);
Для Сч = 0 По Данные.Количество() - 1 Цикл
Запись.ЗаписатьБайт(?(Данные[Сч] = Неопределено, 0, Данные[Сч]));
КонецЦикла;
Запись.Закрыть();
ДвоичныеДанные = Поток.ЗакрытьИПолучитьДвоичныеДанные();
Картинка = Новый Картинка(ДвоичныеДанные);
Возврат Картинка;
КонецФункции
flanchev; +1 Ответить
9. Anthon 231 24.12.18 12:28 Сейчас в теме
не проверял на 1С-цвета ) поставил заглушку, если пользователь выберет цвет из 1Совских через ДиалогВыбораЦвета.

Функция ПолучитьRGB(Цвет) Экспорт
Попытка
фд = Новый ФорматированныйДокумент;
тфд = фд.Добавить("Текст", Тип("ТекстФорматированногоДокумента"));
тфд.ЦветТекста = Цвет;
Если (Цвет.Вид <> ВидЦвета.Абсолютный) И (Цвет.Вид <> ВидЦвета.WebЦвет) Тогда
тфд.ЦветТекста = WebЦвета.Белый;//неизвестные цвета пусть будут белыми
КонецЕсли;
тмл = "";
фд.ПолучитьHTML(хтмл, Новый Структура);
Исключение
Сообщить("Ошибка при построении служебного форматированного документа: " + ОписаниеОшибки(), СтатусСообщения.Важное);
КонецПопытки;
Попытка
рЧтение = Новый ЧтениеHTML;
рЧтение.УстановитьСтроку(хтмл);
пострДом = Новый ПостроительDOM;
докДом = пострДом.Прочитать(рЧтение);
знчАтрибута = докДом.Тело.ДочерниеУзлы[1].ПервыйДочерний.Атрибуты[0].Значение;
рЦвет16ричный = СокрЛП(СтрЗаменить(СтрЗаменить(знчАтрибута, "color: ", ""), ";", ""));
Исключение
Сообщить("Ошибка при распознании содержания форматированного документа: " + ОписаниеОшибки(), СтатусСообщения.Важное);
КонецПопытки;
Возврат ПолучитьRGBИз16(рЦвет16ричный);
КонецФункции
10. shmalevoz 309 21.05.19 10:04 Сейчас в теме
Может пригодится кому у кого потоки недоступны. Преобразование Массив байт <-> ДвоичныеДанные без потока


// Возвращает массив байт двоичных данных
//
// Параметры:  
// 	Значение:ДвоичныеДанные
//
// Возвращаемое значение: 
// 	Массив
//
Функция ДвоичныеДанныеВБайтыМассив(Значение) Экспорт
	
	Возврат Base64ВБайтыМассив(Base64Строка(Значение));
	
КонецФункции //ДвоичныеДанныеВБайтыМассив 

// Возвращает Base64 кодированные данные массива байт
//
// Параметры:  
// 	БайтыМассив
//
// Возвращаемое значение: 
// 	Строка
//
Функция БайтыМассивВДвоичныеДанные(БайтыМассив) Экспорт
	
	Возврат Base64Значение(БайтыМассивВBase64(БайтыМассив));
	
КонецФункции //БайтыМассивВДвоичныеДанные 

//
// Base64 строка <-> массив байт
// 

// Возвращает массив байт по строке закодированных в Base64 данных
// 
//	Для того, чтобы преобразовать данные в base64, первый байт помещается 
// 	в самые старшие восемь бит 24-битного буфера, следующий — в средние восемь 
// 	и третий — в младшие значащие восемь бит. Если кодируется менее, чем три 
// 	байта, то соответствующие биты буфера устанавливаются в ноль. Далее каждые 
// 	шесть бит буфера, начиная с самых старших, используются как индексы строки 
// 	«ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456­789+/» и её 
// 	символы, на которые указывают индексы, помещаются в выходную строку.
// 	Если кодируются только один или два байта, в результате получаются только 
// 	первые два или три символа строки, а выходная строка дополняется двумя 
// 	или одним символами «=»
// 
// Параметры:  
// 	Значение
//
// Возвращаемое значение: 
// 	Массив
//
Функция Base64ВБайтыМассив(Значение) Экспорт
	
	Результат	= Неопределено;
	СимволыКоды	= Base64СимволыКоды();
	
	// Убираем переводы строк
	Источник	= СтрЗаменить(Значение, Символ(10), "");
	Источник	= СтрЗаменить(Источник, Символ(13), "");
	
	Если НЕ СтрДлина(Источник) % 4 Тогда
		
		// Количество групп должно быть кратно 4м. 
		ГруппыКоличество	= СтрДлина(Источник) / 4;
		Результат			= Новый Массив;
		БайтыКоличество		= 3;
		
		Для ГруппаНомер = 1 По ГруппыКоличество Цикл
			КодыСумма	= 0;
			// Символы источники Base64
			// Суммируем коды символов. Из каждого берутся последние 6 бит
			Для СимволНомер = 1 По 4 Цикл
				Символ		= Сред(Источник, (ГруппаНомер - 1) * 4 + СимволНомер, 1);
				Если Символ = "=" Тогда 
					// Сдвигаем вправо 
					БайтыКоличество	= ?(СимволНомер = 3, 1, 2);
					КодыСумма		= КодыСумма / Pow(4, 4 - СимволНомер + 1);
					Прервать;
				Иначе
					СимволКод	= СимволыКоды.Получить(Символ);
					Если СимволКод = Неопределено Тогда
						ВызватьИсключение "Недопустимый символ " + Символ + " Base64 строки данных!";
					КонецЕсли;
				КонецЕсли;
				КодыСумма	= КодыСумма * 64 + СимволКод;
			КонецЦикла;
			// Символы приемники ASCII
			// младший символ справа
			БайтыМассив	= Новый Массив;
			Для БайтНомер = 1 По БайтыКоличество Цикл
				Остаток		= КодыСумма % 256;
				БайтыМассив.Добавить(Остаток);
				КодыСумма	= (КодыСумма - Остаток) / 256;
			КонецЦикла;
			Граница	= БайтыМассив.ВГраница();
			Для БайтНомер = 0 По Граница Цикл
				Результат.Добавить(БайтыМассив[Граница - БайтНомер]);
			КонецЦикла;
		КонецЦикла;
	КонецЕсли;
	
	Возврат Результат;
	
КонецФункции //Base64ВБайтыМассив 

// Возвращает строку Base64 кодировки массива байтов
//
// Параметры:  
// 	БайтыМассив
//
// Возвращаемое значение: 
// 	Строка
//
Функция БайтыМассивВBase64(БайтыМассив) Экспорт
	
	КодыСимволы			= Base64КодыСимволы();
	Результат			= "";
	Количество			= БайтыМассив.Количество();
	
	Если Количество Тогда
		
		ГруппыКоличество	= Цел((Количество - 1) / 3);
		
		Для ГруппаНомер = 0 По ГруппыКоличество Цикл
			
			// Первый символ
			// 6 старших бит байта 2
			Смещение	= ГруппаНомер * 3;
			Байт2		= БайтЗначение(БайтыМассив[Смещение]);
			Остаток		= Байт2 % 4;
			Результат	= Результат + КодыСимволы.Получить((Байт2 - Остаток) / 4);
			// Второй символ 
			// младшие 2 бита байта 2 + старшие 4 бита байта 1
			Код			= Остаток * 16;
			Смещение	= Смещение + 1;
			Если Смещение < Количество Тогда
				Байт1		= БайтЗначение(БайтыМассив[Смещение]);
				Остаток		= Байт1 % 16;
				Результат	= Результат + КодыСимволы.Получить(Код + (Байт1 - Остаток) / 16);
				// Третий символ
				// младшие 4 бита байта 1 + старшие 2 бита байта 0
				Код			= Остаток * 4;
				Смещение	= Смещение + 1;
				Если Смещение < Количество Тогда
					Байт0		= БайтЗначение(БайтыМассив[Смещение]);
					Остаток		= Байт0 % 64;
					Результат	= Результат + КодыСимволы.Получить(Код + (Байт0 - Остаток) / 64)
					+ КодыСимволы.Получить(Остаток);
				Иначе
					Результат	= Результат + КодыСимволы.Получить(Код)+ "=";
				КонецЕсли;
			Иначе
				Результат	= Результат + КодыСимволы.Получить(Код) + "==";
			КонецЕсли;
		КонецЦикла;
	КонецЕсли; 
	
	Возврат Результат;
	
КонецФункции //БайтыМассивВBase64 

//
// ДвоичныеДанные <-> Массив байт
// 

// Возвращает соответствие символов кодам допустимых символов Base64
//
// Параметры: 
//
// Возвращаемое значение: 
// 	Соответствие
//
Функция Base64СимволыКоды() Экспорт
	
	Результат	= Новый Соответствие;
	Источник	= Base64Символы();
	
	Для Индекс = 1 По СтрДлина(Источник) Цикл
		Результат.Вставить(Сред(Источник, Индекс, 1), Индекс - 1);
	КонецЦикла;
	
	Возврат Результат;
	
КонецФункции //Base64СимволыКоды 

// Возвращает соответствие кодов символам допустимых символов Base64
//
// Параметры: 
//
// Возвращаемое значение: 
// 	Соответствие
//
Функция Base64КодыСимволы() Экспорт
	
	Результат	= Новый Соответствие;
	Источник	= Base64Символы();
	
	Для Индекс = 1 По СтрДлина(Источник) Цикл
		Результат.Вставить(Индекс - 1, Сред(Источник, Индекс, 1));
	КонецЦикла;
	
	Возврат Результат;
	
КонецФункции //Base64КодыСимволы 

// Возвращает допустимые символы Base64 кодирования данных
//
// Параметры:  
//
// Возвращаемое значение: 
// 	Соответвтвие ключ - код, значение - символ
//
Функция Base64Символы()
	
	Возврат "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456­789+/";
	
КонецФункции //Base64КодыСимволы 


Показать
11. shmalevoz 309 21.05.19 10:18 Сейчас в теме
И hex значения web-цветов

// Возвращает коллекцию веб цветов
//
// Параметры:  
//
// Возвращаемое значение: 
// 	Структура
//
Функция ЦветаВебЗначения() Экспорт
	
	Результат	= Новый Структура;
	Результат.Вставить("Аквамарин", "7fffd4");
	Результат.Вставить("АкварельноСиний", "f0f8ff");
	Результат.Вставить("АнтикБелый", "faebd7");
	Результат.Вставить("Бежевый", "f5f5dc");
	Результат.Вставить("Белоснежный", "fffafa");
	Результат.Вставить("Белый", "ffffff");
	Результат.Вставить("Бирюзовый", "40e0d0");
	Результат.Вставить("БледноБирюзовый", "afeeee");
	Результат.Вставить("БледноЗеленый", "98fb98");
	Результат.Вставить("БледноЗолотистый", "eee8aa");
	Результат.Вставить("БледноКрасноФиолетовый", "db7093");
	Результат.Вставить("БледноЛиловый", "e6e6fa");
	Результат.Вставить("БледноМиндальный", "ffebcd");
	Результат.Вставить("БледноСиреневый", "d8bfd8");
	Результат.Вставить("Васильковый", "6495ed");
	Результат.Вставить("ВесеннеЗеленый", "00ff7f");
	Результат.Вставить("Голубой", "a6caf0");
	Результат.Вставить("ГолубойСКраснымОттенком", "fff0f5");
	Результат.Вставить("ГолубойСоСтальнымОттенком", "b0c4de");
	Результат.Вставить("ГрифельноСерый", "708090");
	Результат.Вставить("ГрифельноСиний", "6a5acd");
	Результат.Вставить("Древесный", "deb887");
	Результат.Вставить("ДымчатоБелый", "f5f5f5");
	Результат.Вставить("ЖелтоЗеленый", "9acd32");
	Результат.Вставить("Желтый", "ffff00");
	Результат.Вставить("ЗамшаСветлый", "ffe4b5");
	Результат.Вставить("ЗеленаяЛужайка", "7cfc00");
	Результат.Вставить("ЗеленоватоЖелтый", "7fff00");
	Результат.Вставить("ЗеленоватоЛимонный", "00ff00");
	Результат.Вставить("ЗеленоЖелтый", "adff2f");
	Результат.Вставить("Зеленый", "008000");
	Результат.Вставить("ЗеленыйЛес", "228b22");
	Результат.Вставить("Золотистый", "daa520");
	Результат.Вставить("Золотой", "ffd700");
	Результат.Вставить("Индиго", "4b0082");
	Результат.Вставить("Киноварь", "cd5c5c");
	Результат.Вставить("Кирпичный", "b22222");
	Результат.Вставить("КожаноКоричневый", "8b4513");
	Результат.Вставить("Коралловый", "ff7f50");
	Результат.Вставить("Коричневый", "a52a2a");
	Результат.Вставить("КоролевскиГолубой", "4169e1");
	Результат.Вставить("КрасноФиолетовый", "d02090");
	Результат.Вставить("Красный", "ff0000");
	Результат.Вставить("Кремовый", "fffbf0");
	Результат.Вставить("Лазурный", "f0ffff");
	Результат.Вставить("ЛимонноЗеленый", "32cd32");
	Результат.Вставить("Лимонный", "fffacd");
	Результат.Вставить("Лосось", "fa8072");
	Результат.Вставить("ЛососьСветлый", "ffa07a");
	Результат.Вставить("ЛососьТемный", "e9967a");
	Результат.Вставить("Льняной", "faf0e6");
	Результат.Вставить("Малиновый", "dc143c");
	Результат.Вставить("МятныйКрем", "f5fffa");
	Результат.Вставить("НавахоБелый", "ffdead");
	Результат.Вставить("НасыщенноНебесноГолубой", "00bfff");
	Результат.Вставить("НасыщенноРозовый", "ff1493");
	Результат.Вставить("НебесноГолубой", "87ceeb");
	Результат.Вставить("НейтральноАквамариновый", "66cdaa");
	Результат.Вставить("НейтральноБирюзовый", "48d1cc");
	Результат.Вставить("НейтральноВесеннеЗеленый", "00fa9a");
	Результат.Вставить("НейтральноГрифельноСиний", "7b68ee");
	Результат.Вставить("НейтральноЗеленый", "c0dcc0");
	Результат.Вставить("НейтральноКоричневый", "cd853f");
	Результат.Вставить("НейтральноПурпурный", "9370db");
	Результат.Вставить("НейтральноСерый", "a0a0a4");
	Результат.Вставить("НейтральноСиний", "0000cd");
	Результат.Вставить("НейтральноФиолетовоКрасный", "c71585");
	Результат.Вставить("Оливковый", "808000");
	Результат.Вставить("ОранжевоКрасный", "ff4500");
	Результат.Вставить("Оранжевый", "ffa500");
	Результат.Вставить("Орхидея", "da70d6");
	Результат.Вставить("ОрхидеяНейтральный", "ba55d3");
	Результат.Вставить("ОрхидеяТемный", "9932cc");
	Результат.Вставить("Охра", "a0522d");
	Результат.Вставить("Перламутровый", "fff5ee");
	Результат.Вставить("Персиковый", "ffdab9");
	Результат.Вставить("ПесочноКоричневый", "f4a460");
	Результат.Вставить("ПолночноСиний", "191970");
	Результат.Вставить("ПризрачноБелый", "f8f8ff");
	Результат.Вставить("Пурпурный", "800080");
	Результат.Вставить("Пшеничный", "f5deb3");
	Результат.Вставить("РозовоКоричневый", "bc8f8f");
	Результат.Вставить("Розовый", "ffc0cb");
	Результат.Вставить("Роса", "f0fff0");
	Результат.Вставить("РыжеватоКоричневый", "d2b48c");
	Результат.Вставить("СветлоГрифельноСерый", "778899");
	Результат.Вставить("СветлоГрифельноСиний", "8470ff");
	Результат.Вставить("СветлоЖелтый", "ffffe0");
	Результат.Вставить("СветлоЖелтыйЗолотистый", "fafad2");
	Результат.Вставить("СветлоЗеленый", "90ee90");
	Результат.Вставить("СветлоЗолотистый", "ffec8b");
	Результат.Вставить("СветлоКоралловый", "f08080");
	Результат.Вставить("СветлоКоричневый", "ffe4c4");
	Результат.Вставить("СветлоНебесноГолубой", "87cefa");
	Результат.Вставить("СветлоРозовый", "ffb6c1");
	Результат.Вставить("СветлоСерый", "c0c0c0");
	Результат.Вставить("СеребристоСерый", "dcdcdc");
	Результат.Вставить("Серебряный", "c0c0c0");
	Результат.Вставить("СероСиний", "5f9ea0");
	Результат.Вставить("Серый", "808080");
	Результат.Вставить("СинеСерый", "1e90ff");
	Результат.Вставить("СинеФиолетовый", "8a2be2");
	Результат.Вставить("Синий", "0000ff");
	Результат.Вставить("СинийСоСтальнымОттенком", "4682b4");
	Результат.Вставить("СинийСПороховымОттенком", "b0e0e6");
	Результат.Вставить("Сливовый", "dda0dd");
	Результат.Вставить("СлоноваяКость", "fffff0");
	Результат.Вставить("СтароеКружево", "fdf5e6");
	Результат.Вставить("ТемноБирюзовый", "00ced1");
	Результат.Вставить("ТемноБордовый", "800000");
	Результат.Вставить("ТемноГрифельноСерый", "2f4f4f");
	Результат.Вставить("ТемноГрифельноСиний", "483d8b");
	Результат.Вставить("ТемноЗеленый", "006400");
	Результат.Вставить("ТемноЗолотистый", "b8860b");
	Результат.Вставить("ТемноКрасный", "8b0000");
	Результат.Вставить("ТемноОливковоЗеленый", "556b2f");
	Результат.Вставить("ТемноОранжевый", "ff8c00");
	Результат.Вставить("ТемноСерый", "a9a9a9");
	Результат.Вставить("ТемноСиний", "00008b");
	Результат.Вставить("ТемноФиолетовый", "9400d3");
	Результат.Вставить("ТеплоРозовый", "ff69b4");
	Результат.Вставить("Томатный", "ff6347");
	Результат.Вставить("ТопленоеМолоко", "ffefd5");
	Результат.Вставить("ТусклоОливковый", "6b8e23");
	Результат.Вставить("ТусклоРозовый", "ffe4e1");
	Результат.Вставить("ТусклоСерый", "696969");
	Результат.Вставить("Ультрамарин", "000080");
	Результат.Вставить("Фиолетовый", "ee82ee");
	Результат.Вставить("Фуксин", "ff00ff");
	Результат.Вставить("ФуксинТемный", "8b008b");
	Результат.Вставить("Фуксия", "ff00ff");
	Результат.Вставить("Хаки", "f0e68c");
	Результат.Вставить("ХакиТемный", "bdb76b");
	Результат.Вставить("ЦветМорскойВолны", "2e8b57");
	Результат.Вставить("ЦветМорскойВолныНейтральный", "3cb371");
	Результат.Вставить("ЦветМорскойВолныСветлый", "20b2aa");
	Результат.Вставить("ЦветМорскойВолныТемный", "8fbc8b");
	Результат.Вставить("ЦветокБелый", "fffaf0");
	Результат.Вставить("Циан", "00ffff");
	Результат.Вставить("ЦианАкварельный", "00ffff");
	Результат.Вставить("ЦианНейтральный", "008080");
	Результат.Вставить("ЦианСветлый", "e0ffff");
	Результат.Вставить("ЦианТемный", "008b8b");
	Результат.Вставить("Черный", "000000");
	Результат.Вставить("ШелковыйОттенок", "fff8dc");
	Результат.Вставить("Шоколадный", "d2691e");
	
	Возврат Результат;
	
 КонецФункции //ЦветаВебЗначения 
Показать
Оставьте свое сообщение