2

Как выгрузить колонку таблицы значений в список значений?

Для чего это нужно? Например, вы хотите предложить пользователю выбрать одно из значений, содержащихся в колонке таблицы значений. Давайте посмотрим, как это можно реализовать.

Предположим, у нас есть таблица значений вида:

Наименование Цена
Стол деревянный 10000
Стол деревянный 9500
Стул деревянный 3500
Шкаф для одежды 15500
Шкаф для одежды 14000

Для того, чтобы предложить пользователю выбрать одно из значений колонки Наименование, напишем следующий код:

//создадим список значений
сзМенюВыбора = Новый СписокЗначений;
//загрузим значения колонки
сзМенюВыбора.ЗагрузитьЗначения(тз.ВыгрузитьКолонку("Наименование"));
//предложим пользователю выбрать значение из списка
ВыбЭлт = сзМенюВыбора.ВыбратьЭлемент();
Если НЕ ВыбЭлт = Неопределено Тогда
	Сообщить("Ваш выбор = " + ВыбЭлт.Значение);
КонецЕсли;

Только вот незадача: элементы «Стол деревянный» и «Шкаф для одежды» будут показываться дважды. Чтобы пользователь видел только уникальные значения, в наш код необходимо внести небольшие правки:

//скопируем колонку таблицы в новую таблицу
тзНаименование = тз.Скопировать(,"Наименование");
//свернем по значениям в колонке
тзНаименование.Свернуть("Наименование");
//загрузим полученные значения в список значений
сзМенюВыбора = Новый СписокЗначений;
сзМенюВыбора.ЗагрузитьЗначения(тзНаименование.ВыгрузитьКолонку("Наименование"));
//предложим пользователю выбрать значение
ВыбЭлт = сзМенюВыбора.ВыбратьЭлемент();
Если НЕ ВыбЭлт = Неопределено Тогда
	Сообщить("Ваш выбор = " + ВыбЭлт.Значение);
КонецЕсли;

Читайте также:

  1. СписокЗначений.ЗагрузитьЗначения()
  2. ТаблицаЗначений.ВыгрузитьКолонку()

Поделиться страницей в соц.сетях

Метки: Метки

2 комментария к записи “Как выгрузить колонку таблицы значений в список значений?

  1. Выгружать ТЗ из чего-либо на клиенте невозможно. По опыту, могу сказать, что список обычно выгружается на клиенте для параметров запроса, который формируется только на сервере. Я бы сделал так:
    сзМенюВыбора = Новый СписокЗначений;
    Для Каждого Строка Из тз Цикл
    Если ЗначениеЗаполнено(сзМенюВыбора.НайтиПоЗначению(Строка.Наименование)) Тогда
    Продолжить;
    Иначе
    сзМенюВыбора.Добавить(Строка.ПлатёжноеПоручение);
    КонецЕсли;
    КонецЦикла;

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

Добавить комментарий

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