Диалог выбора цвета 1с

Как открыть пользователю стандартный диалог выбора Цвета или Шрифта?

Похожие FAQ

Еще в этой же категории

Заполнение списка значений в элементе поле выбора на форме 9
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип — Произвольный, Использование — Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Форма

Программное создание таблицы значений с условным оформлением 6
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Форма

Как активизировать, перевести фокус на необходимый элемент на форме? 6
//Текущему Элементу формы присваиваем элемент котровый необходимо активизировать ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ТабличноеПоле; Форма

Программное добавление элементов на форму 6
ЭлементыФормы (Controls) . Добавить (Add) — Добавляет элемент управления на форму. Синтаксис: Добавить( Тип , Имя , Видимость , ПоместитьНа ) Параметры: Тип (обязательный) Тип: Тип. Тип добавляемого элемента управления: Индикатор; П Поле выбора

Как ограничить список выбора? 5
Ограничим список элементов, установив отбор в открываемой форме //Пример 1 Процедура СтатьяПДРНачалоВыбора(Элемент, СтандартнаяОбработка) ФормаВыбора = Справочники.ПрочиеДоходыИРасходы.ПолучитьФормуВыбора(, Элемент); ЭлементОтбораВидПДР = Форма Посмотреть все в категории Работа с Формой (Диалог) и её элементами

Достаточно часто нам требуется получить от пользователя какую-либо информацию — имя файла или каталога, цвет или шрифт. Для всего этого в 1С существуют диалоги. Код, который требуется для вызова диалога, довольно стандартный и мало чем отличается из раза в раз. Собственно именно о том, как вызвать различные диалоги в 1С 8.2 и 8.3 и пойдет речь.

Читайте также:  Hp compaq 6000 pro microtower характеристики

Отмечу, что приведенные ниже примеры подходят для любых конфигураций 1С 8.2, а также для конфигураций 1С 8.3 у которых свойство конфигурации «Режим использования модальности» установлено как «Использовать» либо «Использовать с предупреждениями». Если же Вы имеете дело с конфигурацией 1С 8.3 не использующей модальность, то рекомендую прочесть статью о модальности в 1С.

Выбор каталога в 1С

Выбор файла в 1С

Обращаю Ваше внимание, что несколько масок расширений в одном фильтре должны разделяться знаком — точка с запятой (в синтаксис-помощнике об этом по-моему не написано).

Стандартный типовой диалог выбора цвета предлагает выбор из цветов вида: элемент стиля, web-цвет и ввод числовых значений составляющих цвета RGB, при этом нет гарантии каким способом будет выбрано значение цвета пользователем. Составляющие цвета RGB имеются только в абсолютном виде цвета (при вводе составляющих цвета RGB вручную). Есть ряд задач в которых необходимо хранить и передавать именно составляющие цвета RGB, а не сам цвет как тип, для таких целей может пригодиться предлагаемый вариант.

Для быстроты и удобства использования пользователями цвет выбирается мышкой, так же имеется возможность (при необходимости) скопировать значения цвета в HEX и RGB кодировке в буфер обмена. Диалог выбора цвета реализован на управляемых формах, без использования ВК, обработка самодостаточная (в ней присутствует все необходимое для работы).

Возвращаемое значение: тип цвет в абсолютном виде, который можно разложить на составляющие RGB.

Пример подстановки текущего изменяемого цвета в диалог выбора цвета при его открытии:

//Процедуры и функции
&НаСервере
Функция ПолучитьЦветHEX (Знач Красный = 0 , Знач Зеленый = 0 , Знач Синий = 0 ) Экспорт

Если Красный = 0 Тогда

Пока Красный > 0 Цикл

КрасныйHEX = Сред ( ЦифрыHEX , Красный % 16 + 1 , 1 ) + КрасныйHEX ;

Читайте также:  Программы для форматирования microsd карт на русском

Красный = Цел ( Красный / 16 ) ;

Если Зеленый = 0 Тогда

Пока Зеленый > 0 Цикл

ЗеленыйHEX = Сред ( ЦифрыHEX , Зеленый % 16 + 1 , 1 ) + ЗеленыйHEX ;

Зеленый = Цел ( Зеленый / 16 ) ;

Если Синий = 0 Тогда

Пока Синий > 0 Цикл

СинийHEX = Сред ( ЦифрыHEX , Синий % 16 + 1 , 1 ) + СинийHEX ;

Синий = Цел ( Синий / 16 ) ;

ЦветHEX = "#" + ?( СтрДлина ( КрасныйHEX ) = 1 , "0" + КрасныйHEX , КрасныйHEX ) + ?( СтрДлина ( ЗеленыйHEX ) = 1 , "0" + ЗеленыйHEX , ЗеленыйHEX ) + ?( СтрДлина ( СинийHEX ) = 1 , "0" + СинийHEX , СинийHEX );

//Обработчики событий
&НаСервере
Процедура ПриСозданииНаСервере ( Отказ , СтандартнаяОбработка )

ТекстДиалогаВыбораЦвета = РеквизитФормыВЗначение ( "Объект" ). ПолучитьМакет ( "ТекстДиалогаВыбораЦвета" ). ПолучитьТекст ();

Параметры . Свойство ( "ТекущийЦвет" , ТекущийЦвет );

Если Не ТекущийЦвет = Неопределено Тогда

Объект . ВыбранныйЦвет = ТекущийЦвет ;

Красный = ТекущийЦвет . Красный ;
Зеленый = ТекущийЦвет . Зеленый ;
Синий = ТекущийЦвет . Синий ;

ТекстДиалогаВыбораЦвета = СтрЗаменить ( ТекстДиалогаВыбораЦвета , "name=’color’ value=’#000000’" , "name=’color’ value=’" + ПолучитьЦветHEX ( Красный , Зеленый , Синий ) + "’" );
ТекстДиалогаВыбораЦвета = СтрЗаменить ( ТекстДиалогаВыбораЦвета , "name=’colorR’ value=’0’" , "name=’colorR’ value=’" + Строка ( Красный ) + "’" );
ТекстДиалогаВыбораЦвета = СтрЗаменить ( ТекстДиалогаВыбораЦвета , "name=’colorG’ value=’0’" , "name=’colorG’ value=’" + Строка ( Зеленый ) + "’" );
ТекстДиалогаВыбораЦвета = СтрЗаменить ( ТекстДиалогаВыбораЦвета , "name=’colorB’ value=’0’" , "name=’colorB’ value=’" + Строка ( Синий ) + "’" );

Объект . ДиалогВыбораЦвета = ТекстДиалогаВыбораЦвета ;

//Обработчики команд
&НаКлиенте
Процедура ДиалогВыбораЦветаПриНажатии ( Элемент , ДанныеСобытия , СтандартнаяОбработка )

СоставляющиеВыбранногоЦвета = Элемент . Документ ;

Если СоставляющиеВыбранногоЦвета = Неопределено Тогда Возврат; КонецЕсли;

colorR = СоставляющиеВыбранногоЦвета . getElementBy >( "colorR" );
colorG = СоставляющиеВыбранногоЦвета . getElementBy >( "colorG" );
colorB = СоставляющиеВыбранногоЦвета . getElementBy >( "colorB" );

Красный = ?( colorR = Неопределено, 0 , colorR . Value );
Зеленый = ?( colorG = Неопределено, 0 , colorG . Value );
Синий = ?( colorB = Неопределено, 0 , colorB . Value );

Объект . ВыбранныйЦвет = Новый Цвет ( Красный , Зеленый , Синий );

&НаКлиенте
Процедура КомандаОК ( Команда )

Закрыть ( Объект . ВыбранныйЦвет );

&НаКлиенте
Процедура КомандаОтмена ( Команда )

Пример вызова диалога выбора цвета:

//Процедуры и функции

&НаКлиенте
Процедура УстановитьНовыйЦветКлиент ( Элемент , СтандартнаяОбработка )

Элемент_Имя = Элемент . Имя ;

ТекущийЦвет = Объект [ Элемент_Имя ];

ТекПараметры = Новый Структура ( "ТекущийЦвет" , ТекущийЦвет );

ВыбранныйЦвет = ОткрытьФормуМодально ( "Обработка.ИмяОбработки.Форма.ФормаДиалогаВыбораЦвета" , ТекПараметры , ЭтаФорма );

Читайте также:  Intel core i9 7900x цена

Если Не ВыбранныйЦвет = Неопределено Тогда

Объект [ Элемент_Имя ] = ВыбранныйЦвет ;

//Обработчики событий
&НаКлиенте
Процедура ИзменяемыйЦветНачалоВыбора ( Элемент , ДанныеВыбора , СтандартнаяОбработка )

УстановитьНовыйЦветКлиент ( Элемент , СтандартнаяОбработка );