СписокЗначений

Типы · ValueList

Используется для доступа к методам списка значений в целом. Для режима запуска ОбычноеПриложение обмен с сервером невозможен!

Примеры платформы

Если ТекЭлементСписка <> Неопределено Тогда
    НомерСтроки = Список.Индекс(ТекЭлементСписка);
    Если НомерСтроки + 1 < Список.Количество() Тогда
        Список.Сдвинуть(ТекЭлементСписка, 1);
    КонецЕсли;
КонецЕсли;
Полное описание, параметры и ограничения

СписокЗначений (ValueList)

СписокЗначений (ValueList)

Доступен, начиная с версии 8.0.

Элементы коллекции:
ЭлементСпискаЗначений
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.
Возможно обращение к элементу коллекции посредством оператора [...]. В качестве аргумента передается индекс элемента (нумерация с 0).

Свойства:
ДоступныеЗначения (AvailableValues)
ТипЗначения (ValueType)

Методы:
Вставить (Insert)
ВыбратьЭлемент (ChooseItem)
ВыбратьЭлементАсинх (ChooseItemAsync)
ВыгрузитьЗначения (UnloadValues)
Добавить (Add)
ЗагрузитьЗначения (LoadValues)
ЗаполнитьПометки (FillChecks)
Индекс (IndexOf)
Количество (Count)
НайтиПоЗначению (FindByValue)
НайтиПоИдентификатору (FindByID)
ОтметитьЭлементы (CheckItems)
ОтметитьЭлементыАсинх (CheckItemsAsync)
Очистить (Clear)
ПоказатьВыборЭлемента (ShowChooseItem)
ПоказатьОтметкуЭлементов (ShowCheckItems)
Получить (Get)
Сдвинуть (Move)
Скопировать (Copy)
СортироватьПоЗначению (SortByValue)
СортироватьПоПредставлению (SortByPresentation)
Удалить (Delete)

Конструкторы:
По умолчанию

Описание:

Используется для доступа к методам списка значений в целом.
Для режима запуска ОбычноеПриложение обмен с сервером невозможен!

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Возможен обмен с сервером. Сериализуется. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/core}. Имя типа XDTO: ValueListType.

Пример:

// Перемещение элемента в списке вперед на одну позицию.

// Список - список значений;

// ТекЭлементСписка - текущий элемент списка.

Если ТекЭлементСписка <> Неопределено Тогда
НомерСтроки = Список.Индекс(ТекЭлементСписка);
Если НомерСтроки + 1 < Список.Количество() Тогда
Список.Сдвинуть(ТекЭлементСписка, 1);
КонецЕсли;
КонецЕсли;

См. также:
ЭлементСпискаЗначений
ПолеВыбора, свойство СписокВыбора
ПолеВвода, свойство СписокВыбора
СписокЗначений, метод Скопировать
Форма, метод ВыбратьИзСписка
Форма, метод ВыбратьИзМеню
ПолеНастройки, свойство СписокЗначений
ПоляНастройки, метод Добавить
ПоляНастройки, метод Вставить
ПеречислениеСписок.<ИмяПеречисления>, свойство Отбор
Расширение поля ввода системного перечисления, свойство ДоступныеЗначения
Расширение поля ввода перечисления, свойство ДоступныеЗначения

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Выбрать типизированный статус в полностью созданном поле формы

Список для выбора получаем от менеджера перечисления с обязательными параметрами. В реквизите формы хранится значение перечисления, не подпись.

Где и как запускать

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

  1. Создайте НОВУЮ пустую файловую учебную базу с именем корня конфигурации Учебная85. Не меняйте рабочие конфигурации ради этого примера.

  2. Перечисления → Добавить: УчебныйСтатус, синоним Учебный статус. Значения в порядке Черновик, Готов, Отменен; синонимы соответственно Черновик, Готов к проверке, Отменён.

  3. Модуль менеджера оставьте пустым, формы/макеты не добавляйте. Обновите конфигурацию базы данных.

  4. Код без директив вставляется в тело ВыполнитьПример() Экспорт серверного общего модуля УчебныеЗадачи. Полный модуль формы вставляется отдельно по подготовке формы.

  5. Создайте отдельную учебную внешнюю обработку с пустой управляемой основной формой. Каждую задачу запускайте в своей копии формы.

  6. Не добавляйте вручную реквизит ЗначениеПримера, поле ПолеПримера и команду УчебноеДействие: их создаст код.

  7. В свойствах формы → События свяжите ПриСозданииНаСервере с одноимённой процедурой. Вставьте весь модуль, включая клиентские и серверные процедуры.

  8. Сохраните учебную EPF и откройте через Файл → Открыть в тонком или толстом клиенте Windows. Рабочие данные не читаются и не записываются.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Метаданные.Перечисления.Найти("УчебныйСтатус") = Неопределено Тогда
        ВызватьИсключение "Подготовьте собственное перечисление УчебныйСтатус";
    КонецЕсли;
    Новые = Новый Массив;
    ТипРеквизита = Новый ОписаниеТипов("ПеречислениеСсылка.УчебныйСтатус");
    Новые.Добавить(Новый РеквизитФормы("ЗначениеПримера", ТипРеквизита));
    ЭтаФорма.ИзменитьРеквизиты(Новые);
    ЭтаФорма.ЗначениеПримера = Перечисления.УчебныйСтатус.Черновик;
    Поле = Элементы.Добавить("ПолеПримера", Тип("ПолеФормы"));
    Поле.Вид = ВидПоляФормы.ПолеВвода;
    Поле.ПутьКДанным = "ЗначениеПримера";
    Поле.Заголовок = "Учебный статус";
    Поле.КнопкаОчистки = Истина;
    Поле.РежимВыбораИзСписка = Истина;
    ПараметрыВыбора = Новый Структура("Отбор,СтрокаПоиска", Новый Структура, Неопределено);
    Список = Перечисления.УчебныйСтатус.ПолучитьДанныеВыбора(ПараметрыВыбора);
    Для Каждого Элемент Из Список Цикл
        Поле.СписокВыбора.Добавить(Элемент.Значение, Элемент.Представление);
    КонецЦикла;

    КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
    КомандаДействия.Действие = "УчебноеДействие";
    КомандаДействия.Заголовок = "Проверить статус";
    КомандаДействия.Подсказка = "Действие только над данными учебной формы";
    КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
    Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
    Кнопка.ИмяКоманды = КомандаДействия.Имя;
    Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры

&НаКлиенте
Процедура УчебноеДействие(Команда)
    Если ЗначениеПримера.Пустая() Тогда
        Сообщить("Учебный статус не выбран; ничего не записано.");
        Возврат;
    КонецЕсли;
    Сообщить(ТипЗнч(ЗначениеПримера) = Тип("ПеречислениеСсылка.УчебныйСтатус"));
    Сообщить(ЗначениеПримера = Перечисления.УчебныйСтатус.Готов);
    Сообщить("Представление: " + Строка(ЗначениеПримера));
КонецПроцедуры

Разбор по шагам

  1. До создания реквизита проверяем собственную учебную конфигурацию и наличие перечисления.

  2. ПолучитьДанныеВыбора получает структуру с Отбор и СтрокаПоиска, даже когда поиск и отбор пустые.

  3. СписокВыбора наполняем типизированными значениями и их представлениями. Начальное значение Черновик задано явно.

  4. КнопкаОчистки возвращает пустое значение перечисления, которое обрабатывается отдельной веткой.

  5. Проверяем тип и сравниваем с конкретным значением Готов, не с текстом подписи.

Как проверить результат

  1. Выберите Готов к проверке: оба сравнения Истина, представление Готов к проверке.

  2. Выберите Черновик: проверка типа Истина, сравнение с Готов Ложь — это ожидаемо.

  3. Очистите поле: сообщение о невыбранном статусе, обращений к базе записи нет.

Ожидаемый результат

Рабочее поле выбора с реальным типом перечисления и корректной обработкой пустого состояния.

На что обратить внимание

  1. Это не универсальная строковая выпадающая коллекция: реквизит имеет конкретный тип учебной конфигурации.

  2. Представления списка могут зависеть от языка интерфейса.

  3. Изменение поля относится только к памяти формы, не к статусам рабочих заказов.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Настроить быстрый выбор статуса без истории

Собственный список содержит draft/Черновик и published/Опубликован. Выбор, история и место кнопки настраиваются независимо.

Где и как запускать

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

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

  2. Не добавляйте вручную реквизит ЗначениеПримера, поле ПолеПримера и команду УчебноеДействие: их создаст код.

  3. В свойствах формы → События свяжите ПриСозданииНаСервере с одноимённой процедурой. Вставьте весь модуль, включая клиентские и серверные процедуры.

  4. Сохраните учебную EPF и откройте через Файл → Открыть в тонком или толстом клиенте Windows. Рабочие данные не читаются и не записываются.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Новые = Новый Массив;
    ТипРеквизита = Новый ОписаниеТипов("Строка");
    Новые.Добавить(Новый РеквизитФормы("ЗначениеПримера", ТипРеквизита));
    ЭтаФорма.ИзменитьРеквизиты(Новые);
    ЭтаФорма.ЗначениеПримера = "draft";
    Поле = Элементы.Добавить("ПолеПримера", Тип("ПолеФормы"));
    Поле.Вид = ВидПоляФормы.ПолеВвода;
    Поле.ПутьКДанным = "ЗначениеПримера";
    Поле.Заголовок = "Настроить быстрый выбор статуса без истории";
    Поле.СписокВыбора.Добавить("draft", "Черновик");
    Поле.СписокВыбора.Добавить("published", "Опубликован");
    Поле.РежимВыбораИзСписка = Истина;
    Поле.БыстрыйВыбор = Истина;
    Поле.ИсторияВыбораПриВводе = ИсторияВыбораПриВводе.НеИспользовать;
    Поле.АвтоВыборНезаполненного = Ложь;
    Поле.РежимВыбораНезаполненного = РежимВыбораНезаполненного.ПриНажатииEnter;
    Поле.КнопкаВыбора = Истина;
    Поле.КнопкаВыпадающегоСписка = Истина;
    Поле.ОтображениеКнопкиВыбора = ОтображениеКнопкиВыбора.ОтображатьВПолеВвода;
    Поле.ЗаголовокКнопкиВыбора = "Выбрать статус";
    Поле.ПодсказкаВыпадающегоСписка = "Только два учебных статуса";

    КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
    КомандаДействия.Действие = "УчебноеДействие";
    КомандаДействия.Заголовок = "Проверить свой пример";
    КомандаДействия.Подсказка = "Действие только над данными учебной формы";
    КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
    Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
    Кнопка.ИмяКоманды = КомандаДействия.Имя;
    Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры

&НаКлиенте
Процедура УчебноеДействие(Команда)
    Поле = Элементы.ПолеПримера;
    Выбранный = Поле.СписокВыбора.НайтиПоЗначению(ЗначениеПримера);
    Если Выбранный = Неопределено Тогда
        Сообщить("Значение не входит в собственный список разрешённых статусов");
        Возврат;
    КонецЕсли;
    Сообщить(СтрШаблон("Значение %1; представление %2", Выбранный.Значение, Выбранный.Представление));
    Сообщить(Поле.БыстрыйВыбор);
    Сообщить(Поле.ИсторияВыбораПриВводе = ИсторияВыбораПриВводе.НеИспользовать);
    Сообщить(Не Поле.АвтоВыборНезаполненного);
КонецПроцедуры

Разбор по шагам

  1. СписокВыбора содержит собственные значения, а не запрос к справочнику.

  2. РежимВыбораИзСписка отображает представления списка; реквизит сохраняет draft либо published.

  3. БыстрыйВыбор управляет выпадающим выбором, ИсторияВыбораПриВводе выключает её использование для этого поля.

  4. Автоматический выбор незаполненного выключен отдельно от отображения кнопок.

  5. ЗаголовокКнопкиВыбора — свойство интерфейса 8.5: в самом поле используется как подсказка кнопки.

Как проверить результат

  1. На открытии диагностика draft / Черновик и три Истина.

  2. После выбора Опубликован диагностика published / Опубликован.

  3. Для значения вне списка команда прекращается с объяснением.

Ожидаемый результат

Показано различие значения статуса, представления и настроек выпадающего выбора.

На что обратить внимание

  1. Заголовок кнопки применяется только в интерфейсе Версия 8.5; в другом режиме внешний вид может отличаться.

  2. Отключение истории поля не означает стирание всех ранее сохранённых данных пользователя.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.