Форум Кладовочки АЛьФ`а

Обсуждение проектов => FormEx => Тема начата: sau от 04 октября 2024, 00:55

Название: Раскраска списка значений
Отправлено: sau от 04 октября 2024, 00:55
Есть ли возможность для Сервис.ВыбратьЗначение?
Или для обычного списка значений при выборе в виде меню.
Название: Re: Раскраска списка значений
Отправлено: АЛьФ от 04 октября 2024, 09:28
Для списка значений нет, но можно раскрасить меню, которое выводится методом Сервис::ВыбратьЗначение().
Название: Re: Раскраска списка значений
Отправлено: sau от 05 октября 2024, 15:55
Цитата: АЛьФ от 04 октября 2024, 09:28Для списка значений нет, но можно раскрасить меню, которое выводится методом Сервис::ВыбратьЗначение().
А шрифт изменить (размер, вид)?
Название: Re: Раскраска списка значений
Отправлено: АЛьФ от 06 октября 2024, 11:21
Цитата: sau от 05 октября 2024, 15:55
Цитата: АЛьФ от 04 октября 2024, 09:28Для списка значений нет, но можно раскрасить меню, которое выводится методом Сервис::ВыбратьЗначение().
А шрифт изменить (размер, вид)?
Нет, шрифт изменить не получится в текущем функционале.
Название: Re: Раскраска списка значений
Отправлено: Злоп от 06 октября 2024, 21:38
хм... что-то у меня все работает...
(https://wdfiles.ru/plugins/imageviewer/site/thumb.php?s=Nm6k)

ПоказыватьЗаголовокСписка=1; //1 - показывать, 0 - не показывать
СписокПринтеров = глСервис.ПолучитьСписокПринтеров(); //здесь можно отфильтровать список принтеров (по вхождению неких синальных последовательностей типа "BAR"), для исключения принтеров ШК из формата печати А4

Команда = СписокПринтеров.НайтиЗначение(СокрЛП(ЕГАИС_АРМ_ПринтерШК)); //позиция в списке
Команда = Макс(1,Команда)+ПоказыватьЗаголовокСписка; //учтем есть ли значение в списке и наличие заголовка
Команда = "{DOWN "+Команда+"}";глСервис.ЭмулироватьКлавиатуру(Команда); //сколько раз жмакнуть курсор вниз, или на 1 строку если в списке нет
Принтер = ""; Если глСервис.ВыбратьЗначение(СписокПринтеров,Принтер,?(ПоказыватьЗаголовокСписка<>0,"ВЫБЕРИ ПРИНТЕР ШК/ЭТИКЕТОК",""),0,0,КодШрифт)<>1 Тогда Возврат; КонецЕсли;
Название: Re: Раскраска списка значений
Отправлено: Злоп от 06 октября 2024, 21:49
Выше картинка и код по тестовой сборке, скачанной с яндекса только что.
.
Обращаю внимание: в 6-ом параметре (Картинка(?)) передаю шрифт - и все работает.
Возможно, если в 6-ой параметр передать картинку - то будет отрабатывать согласно СП.
НО ТО, ЧТО РАБОТАЕТ УСТАНОВКА ШРИФТА - НЕ ЛОМАТЬ!!! ;_)

выдержка из СП:
.
ВыбратьЗначение(<?>)
Синтаксис:
ВыбратьЗначение(<СписокЗначений>, <Значение>, <Заголовок>, <СпособВыбора>, <Флаг>, <Картинка>, <ПараметрыЦвета>, <КоординатаХ>, <КоординатаУ>, <ПутьВыбора>)
Назначение:
Метод предназначен для интерактивного выбора значения из многоуровневого списка. Многоуровневость
обеспечивается вложенностью списков значений (см. Пример). Количество уровней не ограничено. Если выбор
производится в меню, то значения с представлением "-" воспринимаются как разделители.
Установка пиктограмм в списке значений
Добавляем в начале представления "[icon:N]", где N - порядковый номер пиктограммы в картинке. Если пиктограмма отображается, то строка "[icon:N]" от представления отрезается при выводе. В режиме выбора из меню (не пометка!) значения списка значений, на которых установлена пометка, считаются недоступными. При выборе из меню пункт списка значений с представлением "|" - переход на следующую колонку
Параметры:
<СписокЗначений> - тип: СписокЗначений. Список значений, из которого необходимо произвести выбор;
<Значение> - тип: Любой. Переменная, куда помещается результат выбора;
<Заголовок> - тип: Строка. Заголовок диалогового окна выбора;
<СпособВыбора> - тип: Число. Необязательный. Значение по умолчанию - 0. Способ выбора значения:
0 - выбор в виде многоуровневого меню;
1 - выбор в виде дерева.
<Флаг> - тип: Число. Необязательный. Значение по умолчанию - 0.
Для выбора в дереве: 1 - разрешить выбор групп; 0 - запретить.
Для выбора в меню: 0 - простой выбор; 1 - пометка значений; 2 - простой выбор (без привязки к активному
реквизиту); 3 - пометка значений (без привязки к активному реквизиту). Если указано значение из разряда без
привязки к активному реквизиту, то меню показывается в текущей позиции курсора мыши.
<Картинка> - Необязательный. Объект "Картинка" с нужными пиктограммами, в формате как для ТЗ.
<ПараметрыЦвета> - Необязательный. Список значений с параметрами цвета: значение - число цвета, представление - имя параметра. Имя параметра может быть одним из следующих: ЦветФонаВыделения, ЦветШрифтаВыделения, ЦветРамкиВыделения, ЦветФона, ЦветШрифта
<КоординатаХ> - тип: Число. Необязательный. Задает экранную координату положения меню по оси Х.
<КоординатаУ> - тип: Число. Необязательный. Задает экранную координату положения меню по оси У.
<ПутьВыбора> - переменная, в которую после выбора помещается путь выбранного значения.
ЗАМЕЧАНИЕ:
Многоуровневость обеспечивается списками значений, вложенными в основной (см. пример).
Если выбор производится в меню, то значения с представлением - воспринимаются как
разделители.
ПРИМЕР:
Сервис = СоздатьОбъект("Сервис");
Список = СоздатьОбъект("СписокЗначений");
Список.ДобавитьЗначение(1,"[icon:1]Пункт 1");
Список.ДобавитьЗначение(2,"[icon:2]Пункт 2");
Список.ДобавитьЗначение(3,"[icon:3]Пункт 3");
Список.ДобавитьЗначение(4,"[icon:4]Пункт 4");
Список.ДобавитьЗначение(0,"-");
// создаем вложенный список
СписокДоп = СоздатьОбъект("СписокЗначений");
СписокДоп.ДобавитьЗначение(551,"Пункт 51");
СписокДоп.ДобавитьЗначение(552,"Пункт 52");
СписокДоп.ДобавитьЗначение(553,"Пункт 53");
СписокДоп.ДобавитьЗначение(554,"Пункт 54");
// добавляем вложенный список
Список.ДобавитьЗначение(СписокДоп,"Пункт 5");
Список.ДобавитьЗначение(6,"Пункт 6");
Список.ДобавитьЗначение(7,"Пункт 7");
Выб = "";
Картинка = СоздатьОбъект("Картинка");
Картинка.Загрузить("МояКартинка4Пиктограммы");
ПараметрыЦвета = СоздатьОбъект("СписокЗначений");
ПараметрыЦвета.Установить("ЦветФонаВыделения",255);
ПараметрыЦвета.Установить("ЦветРамкиВыделения",0);
Если Сервис.ВыбратьЗначение(Список,Выб,"Тестовый выбор значения",0,0,Картинка,ПараметрыЦвета) = 1
Тогда
        Сообщить(Выб);
КонецЕсли;
Название: Re: Раскраска списка значений
Отправлено: Злоп от 06 октября 2024, 21:56
вот если шрифт не устанавливать
(https://wdho.ru/plugins/imageviewer/site/thumb.php?s=7ypw)
Название: Re: Раскраска списка значений
Отправлено: Злоп от 06 октября 2024, 21:57
где полочка?
Название: Re: Раскраска списка значений
Отправлено: АЛьФ от 06 октября 2024, 21:58
Цитата: Злоп от 06 октября 2024, 21:57где полочка?
С пирожками?
Название: Re: Раскраска списка значений
Отправлено: Злоп от 06 октября 2024, 21:59
Цитата: АЛьФ от 06 октября 2024, 21:58
Цитата: Злоп от 06 октября 2024, 21:57где полочка?
С пирожками?
именно!
Название: Re: Раскраска списка значений
Отправлено: Злоп от 06 октября 2024, 22:00
Алексей, что скажешь насчет 6-го параметра?
Название: Re: Раскраска списка значений
Отправлено: MWW_Ruza от 06 октября 2024, 22:19
Цитата: Злоп от 06 октября 2024, 21:49Возможно, если в 6-ой параметр передать картинку - то будет отрабатывать согласно СП.

Отрабатывает, вчера штатный пример пробовал, указал в качестве 6-того параметра идентификатор картинки из библиотеки конфигурации с несколькими пиктограммами, работает как заявлено.
Играть со шрифтами не пробовал.

PS по хорошему, и то и другое бы оставить. И так, что-бы можно было по желанию или картинку, или шрифт, или и то и другое вместе использовать  8)
Название: Re: Раскраска списка значений
Отправлено: Злоп от 06 октября 2024, 22:22
Я вот совершенно не помню, откуда я взял, что 6-ой параметр можно впихнуть шрифт...?
Либо это было в каком-то варианте алс, или Алексей подсказал...
Название: Re: Раскраска списка значений
Отправлено: MWW_Ruza от 06 октября 2024, 22:46
Вот, картинка:

(https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/i-574.jpg)

а вот шрифт:

(https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/i-573.jpg)
Название: Re: Раскраска списка значений
Отправлено: Злоп от 06 октября 2024, 22:54
Я не буду против, если параметр "Шрифт" будет добавлен как последний к текущему набору параметров.
Использование шрифта в выборе значения у меня вообще разовые пару штук, переделать не представит сложности.
Название: Re: Раскраска списка значений
Отправлено: MWW_Ruza от 06 октября 2024, 23:01
Хм...
Странно, почему-то отладчик не работает: Видеоролик https://cloud.mail.ru/public/Kh5t/DqC34W5YL
Название: Re: Раскраска списка значений
Отправлено: MWW_Ruza от 06 октября 2024, 23:03
Цитата: Злоп от 06 октября 2024, 22:54Я не буду против, если параметр "Шрифт" будет добавлен как последний к текущему набору параметров.
Использование шрифта в выборе значения у меня вообще разовые пару штук, переделать не представит сложности.

Ну, да, главное определили, что работает :)
А как конкретно передавать параметр, это уже дело техники :)
Да и вообще, я так думаю, что кроме тебя это никто в рабочих базах и не использовал... А ты не против 8)
А для остальных соответствует СП (а там - картинка), и ладно.
Название: Re: Раскраска списка значений
Отправлено: MWW_Ruza от 06 октября 2024, 23:19
А вообще, что-бы не плодить параметры, можно шестой парапметр в виде СЗ сделать. С двумя (пока, вдруг еще чего-то потом понадобится) именованными элементами - Картинка, Шрифт.
Название: Re: Раскраска списка значений
Отправлено: АЛьФ от 06 октября 2024, 23:53
Цитата: MWW_Ruza от 06 октября 2024, 23:19А вообще, что-бы не плодить параметры, можно шестой парапметр в виде СЗ сделать. С двумя (пока, вдруг еще чего-то потом понадобится) именованными элементами - Картинка, Шрифт.
Седьмым параметром уже идёт список. Туда шрифт и внесу. В параметре картинки оставлю как есть. Скорее всего, там при передаче числового значения считается, что это хэндл шрифта.
Название: Re: Раскраска списка значений
Отправлено: sau от 07 октября 2024, 00:41
Спасибо. Отлично.
Название: Re: Раскраска списка значений
Отправлено: MWW_Ruza от 07 октября 2024, 11:35
Ну, да, там уже есть:

<ПараметрыЦвета> - Необязательный. Список значений с параметрами цвета: значение - число цвета, представление - имя параметра. Имя параметра может быть одним из следующих: ЦветФонаВыделения, ЦветШрифтаВыделения, ЦветРамкиВыделения, ЦветФона, ЦветШрифта

Туда просто просится "ИдентификаторШрифта" :)
Название: Re: Раскраска списка значений
Отправлено: Злоп от 07 октября 2024, 13:01
Цитата: АЛьФ от 06 октября 2024, 23:53Седьмым параметром уже идёт список. Туда шрифт и внесу. В параметре картинки оставлю как есть. Скорее всего, там при передаче числового значения считается, что это хэндл шрифта.

Туда сделать: если передано число - тогда это шрифт (остальные настройки по умолчанию). Если СЗ - тогда "полные" настройки, в которых в т.ч. может быть и параметр шрифта.

Было бы тупо просто удобнее.
Как вариант.