Содержание:
1. Что такое список значений и для чего он используется?
2. Как создать список значений в конфигурации системы 1С? Возможности списка значений
3. Поиск и перебор элементов списка значений 1С
1. Что такое список значений и для чего он используется?
В этой статье будет описана одна из универсальных коллекций «Список значений», а также будут рассмотрены способы работы с элементами списка значений 1С.
Вы получите ответы на вопросы: что такое список значений; для чего используется список значений; как работать с его элементами.
В первую очередь, список значений — это динамическая структура данных, она хранит в себе элементы, которые являются структурами с четырьмя полями: значение; картинка; пометка; представление. Важное уточнение в том, что список значений не сохраняется в конфигурации информационной базы 1С, а нужен для работы с данными “на лету”.
Список значений — это объект встроенного языка, который работает по аналогии с обычным массивом, но имеет расширенный набор удобных методов. Каждый вид 1С коллекции значения нужен для конкретной задачи, но обычно коллекции можно преобразовывать друг к другу.
Объект списка значений используется для отметки 1С значений из списка на форме, для преобразования таблицы значений в список значений (одну колонку или строку), для отбора в запросе, для заполнения полей выбора, ввода. В основном, это интерфейсные задачи. Список применений не ограничивается тем, что перечислено выше. В целом, список значений позволяет хранить и обрабатывать данные.
Как было написано выше, список содержит не значения, а структуры, полям которых можно задавать значения. Каждая такая структура имеет тип: «ЭлементСпискаЗначений».
Перейдем в режим 1С:Предприятие.
Допустим у нас имеется документ, реквизит, подготовленный для демонстрации списка значений и фиксированный массив из 5 случайных чисел.
Реквизит «СпЗнч» обновляется по нажатию кнопки «ЗаполнитьСписок».
2. Как создать список значений в конфигурации системы 1С? Возможности списка значений
Чтобы создать список значений на основе массива воспользуемся методом «ЗагрузитьЗначения()».
Создание массива
Пример вывода массива
Теперь добавим к уже существующим элементам списка значений 1С еще два, разными способами.
Добавление значений
В первом случае заполняются все поля элемента списка значений 1С, кроме «Картинка», во втором указывается только значение.
Вывод
Как можно заметить, при создании элемента списка значений 1С с добавлением представления и пометки, реквизит отображает поле представление, а не значение, а если указать только значение, то реквизит выводит значение.
Значит ли это то, что при создании объекта 1С без заполнения представления, оно заполняется автоматически при создании объекта? Проверим это.
Проверка
Результат
Выходит, что поле не заполняется автоматически.
Также на рисунку демонстрируется работа метода «НайтиПоЗначению(Строка)».
Список значений может производить операции вставки и удаления, умеет искать, сортировать, получать значения с использованием «[]», помимо загрузки значений из массива, может делать выгрузку в массив, а еще делать копию самого себя, некий мастер на все руки. Полный список методов можно найти в справочнике.
3. Поиск и перебор элементов списка значений 1С
Перебор осуществляется с помощью циклов.
Первый способ — это обход списка по индексу.
Первый пример обхода списка
Вторым способом является использование конструкции «Для Каждого».
Второй пример обхода списка
Вывод обхода вторым способом
Для поиска элемента можно использовать структуру, которая заполняется, если элемент найден.
Поиск перебором
Результат поиска
Для поиска, помимо перебора с условием в цикле, могут использоваться функции: НайтиПоЗначению (Значение), НайтиПоИдентификатору (ID).
Пример работы поиска по значению уже был представлен.
ID – обычно представляет собой число, порядковый номер задается по мере добавления элементов списка значений 1С.
В этой статье была описана универсальная коллекция: список значений. Были представлены основные возможности коллекции, а также рассмотрены способы поиска в списке значений и перебора элементов списка значений 1С.
Специалист компании "Кодерлайн"
Данила Уваров