Хм... Я подразумевал использование метода FormEx:
Объект "Сервис"
Цитата:ВыбратьЗначение(<?>,,,,,)
ChooseValue(<?>,,,,,)
Синтаксис:
ВыбратьЗначение(СписокЗначений, Значение, Заголовок, СпособВыбора, Флаг, Картинка,ПараметрыЦвета)
Назначение:
Метод предназначен для интерактивного выбора значения из многоуровневого списка. Многоуровневость обеспечивается вложенностью списков значений (см. Пример). Количество уровней не ограничено. Если выбор производится в меню, то значения с представлением ''-'' воспринимаются как разделители.
Параметры:
Установка пиктограмм в списке значений
Добавляем в начале представления ''[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 Тогда
Сообщить(Выб);
КонецЕсли;