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

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 Управляемые формы Конфигурации 1cv8 Платные (руб)

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

6000 руб.

16.01.2015    61944    43    59    

80

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

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

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

5000 руб.

14.01.2016    54574    16    21    

42

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

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

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

2400 руб.

29.06.2020    16826    21    4    

35

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

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

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

27.12.2023    11004    756    elcoan    45    

106

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

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

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

2 стартмани

10.04.2023    9796    153    acces969    31    

119

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

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

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

1 стартмани

05.07.2022    3848    kalyaka    4    

29

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

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

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

3600 руб.

29.04.2022    12205    1    5    

10
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 372 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 230 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, Данные[Сч]));
КонецЦикла;
Запись.Закрыть();
ДвоичныеДанные = Поток.ЗакрытьИПолучитьДвоичныеДанные();
Картинка = Новый Картинка(ДвоичныеДанные);
Возврат Картинка;
КонецФункции
+
9. Anthon 230 24.12.18 12:28 Сейчас в теме
не проверял на 1С-цвета ) поставил заглушку, если пользователь выберет цвет из 1Совских через ДиалогВыбораЦвета.

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