Список значений в 1С

Для начинающих программистов: Список значений

Что это такое?

СписокЗначений — это расширенная версия массива.
Если массив умеет просто хранить значения, то список значений умеет:

  • хранить и само значение, и его «подпись» (строку или картинку для пользователя),
  • сортировать данные по одному нажатию,
  • искать элементы без лишнего кода,
  • легко копироваться,
  • работать как с индексами, так и с перебором,
  • и даже превращаться обратно в массив.

Можно сказать, что это «массив с интеллектом».


1. Создание и наполнение

Простейший пример:

Список = Новый СписокЗначений;
Список.Добавить(10);
Список.Добавить(0);
Список.Добавить(-5);
Список.Добавить(23);

Теперь список содержит 4 элемента. Каждый элемент — это не просто число, а структура с полями:

  • Значение (само число),
  • Представление (строка для отображения).

2. Использование представлений

Мы можем добавить не только число, но и его текстовое описание:

Список.Добавить(10, "десять");
Список.Добавить(1861, "Отмена крепостного права");

Теперь у каждого элемента есть две стороны: «для компьютера» и «для человека».
Это делает список особенно удобным для выбора пользователем.


3. Перебор элементов

Для Каждого Элемент Из Список Цикл
    Сообщить("Значение: " + Элемент.Значение);
    Сообщить("Представление: " + Элемент.Представление);
КонецЦикла;

4. Сортировка

Список может сам себя отсортировать:

Список.СортироватьПоЗначению(НаправлениеСортировки.Возр);

В отличие от массива, не нужно изобретать «пузырьки» и прочие алгоритмы — всё готово.


5. Поиск

Можно быстро проверить, есть ли число в списке:

Найденный = Список.НайтиПоЗначению(23);
Если Найденный <> Неопределено Тогда
    Сообщить("Нашёл: " + Найденный.Значение);
Иначе
    Сообщить("Нет такого значения");
КонецЕсли;

6. Вставка и удаление

Список.Вставить(0, 100); // вставили в начало
Список.Удалить(0);       // удалили первый элемент

7. Индексы

Как и массив, список можно обходить по индексам:

Для И = 0 По Список.Количество()-1 Цикл
    Сообщить(Список[И].Значение);
КонецЦикла;

8. Копирование

Копия = Список.Скопировать();
Копия[0].Значение = 999;

Оригинал при этом не изменится. Удобно, когда нужно поэкспериментировать.


9. Преобразование в массив

Массив = Список.ВыгрузитьЗначения();

Теперь у нас обычный массив для более простых задач.


Где использовать?

  • Когда нужно показать пользователю список для выбора.
  • Когда у одного значения должно быть несколько «масок» (например, число и его название).
  • Когда нужна сортировка и поиск без лишнего кода.

Домашнее задание

  1. Создайте список значений из 5 чисел. Найдите наибольшее и наименьшее.
  2. Сделайте список дат и выведите их текстовое представление («понедельник», «январь» и т.д.).
  3. Реализуйте меню выбора с историческими событиями и выведите выбранное пользователем.

Комментарии

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

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