Выбор цвета на форме и запись в реквизиты
На форме элемента справочника имеется несколько реквизитов: Красный, Зеленый, Синий (число: неотрицательное, с диапазоном от 0 до 255).
При выборе цвета значения цвета в формате RGB заполняются в реквизиты элемента и записываются в справочник для хранения.
Процедура выбора цвета использует форму объекта COMОбъект(«WScript.Shell») для выбора цвета.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Шел = Новый COMОбъект("WScript.Shell"); Шел.RegWrite("HKLM\SOFTWARE\Classes\Licenses\4D553650-6ABE-11cf-8ADB-00AA00C00905\","gfjmrfkfifkmkfffrlmmgmhmnlulkmfmqkqj"); Диалог = Новый COMОбъект("MSComDlg.CommonDialog"); Диалог.ShowColor(); Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl"); Скрипт.language = "javascript"; Скрипт.AddObject("Диалог",Диалог); Цвет = РазложитьRGB(Скрипт.Eval("Диалог.Color")); Красный = Цвет.Красный; Зеленый = Цвет.Зеленый; Синий = Цвет.Синий; |
После выбора цвет раскладывается по принципу RGB на три составляющие в числовом выражении и записывается в реквизиты. Функция РазложитьRGB() помогает получить три числа цвета и сформировать объект Цвет(), возвращая как результат своей работы.
1 2 3 4 5 6 7 |
Функция РазложитьRGB(ЗначениеЧислом) ЦветRGB = ЗначениеЧислом; R = ЦветRGB%256; G = (Цел(ЦветRGB/256))%256; B = (Цел(ЦветRGB/(256 * 256)))%256; Возврат Новый Цвет(R,G,B); КонецФункции |