Значение для хранения отличается от подписи, которую видит пользователь.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Список создаётся в памяти.
Это подготовка данных выбора, а не вызов диалога.
Способы = Новый СписокЗначений;
Способы.Добавить("pickup", "Самовывоз");
Способы.Добавить("courier", "Курьер");
Способы.Добавить("post", "Почта");
Способы.СортироватьПоПредставлению();
Элемент = Способы.НайтиПоЗначению("pickup");
Если Элемент <> Неопределено Тогда
Элемент.Пометка = Истина;
Сообщить(Элемент.Представление);
Сообщить(Элемент.Значение);
КонецЕсли;
Значения = Способы.ВыгрузитьЗначения();
Сообщить(Значения.Количество());Разбор по шагам
Добавляем стабильные коды и пользовательские подписи.
Сортируем по подписям, а ищем по значению pickup.
Пометка хранится у элемента; ВыгрузитьЗначения возвращает только значения.
Как проверить результат
Вывод: Самовывоз; pickup; 3.
Неизвестный код в НайтиПоЗначению должен вернуть Неопределено.
Ожидаемый результат
Найдён Самовывоз, пометка установлена; массив содержит три кода.
На что обратить внимание
После сортировки не определяйте способ по старому индексу.
ВыгрузитьЗначения не сохраняет представления и пометки.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.