Содержание
Список значений это универсальная коллекция значений, которая, по сути, одномерный динамический массив, созданный в рамках платформы 1С для решения некоторых интерфейсных задач. В отличие от простого массива, элементы которого могут быть произвольных типов, у списка значений каждый элемент имеет специальный тип Элемент списка значений. Элемент списка значений может хранить в себе следующие данные: само значение (любого типа), представление значения (тип строка), пометка (тип булево) и картинка (тип картинка).
Работать со списком значений (создавать, заполнять и т.д.) можно и в тонком, и в толстом клиенте.
Программно в конфигураторе 1С создать список значений необходимо при помощи конструктора Новый.
Список = Новый СписокЗначений ;
После создание списка значений с ним можно работать — добавлять новые значения, выгружать значения в массив и загружать значения из массива.
Как добавить новое значение в список
Для того чтобы нам начать работать со списком значений, необходимо заполнить его элементами.
Сделать это можно тремя способами: добавить новый элемент (добавится в конец списка), вставить новый элемент в нужное место и загрузить элементы из массива. Для добавления элемента в конец списка используется метод Добавить(), а для вставки элемента в нужное место списка – метод Вставить()
Метод добавить имеет следующий синтаксис:
Добавить( , , , )
Значение — это может быть объект любого типа, который будет храниться в списке значений.
Представление — задаем, каким образом объект будет представлен пользователю в списке. Имеет тип строка. Это необязательный параметр, в случае отсутствия представления объект будет показан в обычном виде.
Пометка -задает, будет ли у данного объекта в списке пометка выбора или нет. Имеет тип Булево. Тоже необязательный параметр.
Картинка – картинка, которая привяжется к нужному элементу.
Обязательным является первый параметр.
Добавить элементы можно так:
Список . Добавить ( 100 , «Число 100» );
Список . Добавить ( 10 , «Число 10» );
Список . Добавить ( 100 );
Список . Добавить ( 10 );
Метод Вставить имеет следующий синтаксис.
Вставить( , , , , )
Все параметры, кроме Индекса, точно такие же, как у метода Добавить.
Параметр Индекс указывает непосредственно номер позиции, на который устанавливается элемент. Элемент, который был на этом индексе, сдвигается на плюс один, и все последующие элементы тоже.
Т.е. при написании следующего кода:
Список = Новый СписокЗначений ;
Список . Добавить ( 100 , «Число 100» );
Список . Добавить ( 10 , «Число 10» );
Список . Вставить ( 0 , 1000 , «Число 1000» );
Элементы будут расположены таким образом:
Как загрузить массив в список значений
С помощь метода ЗагрузитьЗначения в список значений можно загрузить одномерный массив.
Все предыдущие элементы списка значений при этом удалятся. Об этом надо всегда помнить.
Делается это достаточно просто – необходимо передать в метод нужный массив.
Массив = Новый Массив ;
Массив . Добавить ( «Иванов И.И» );
Массив . Добавить ( «Петров А.Н» );
Список = Новый СписокЗначений ;
Список . ЗагрузитьЗначения ( Массив );
Элемент списка значений
Мы научились добавлять, вставлять и загружать элементы в список значений, рассмотрим, что вообще такое Элемент списка значений.
Если элементы массива это и есть те значения, которые хранятся в массиве, то элементом списка значений является отдельный объект, который имеет свойства и методы. Все параметры метода Добавить списка значений являются свойствами элемента списка значений, который будет создан при помощи этого метода. Любой список значений состоит из объектов Элемент списка значений. Мы можем обратиться к любому элементу списка значений и работать с ним самостоятельно как с объектом. Но объект Элемент списка значений не может существовать без своего родителя — Списка значений.
Обратиться непосредственно к элементу списка значений можно двумя способами: с помощью оператора квадратные скобки и с помощью метода Получить.
ПервыйЭлемент = Список [ 0 ];
ПервыйЭлемент = Список . Получить ( 0 );
В метод получить передается только один параметр – индекс нужного элемента
После того, как мы получили нужный элемент, к его свойства (Значение, Представление, Пометка, Картинка) можно обращаться через точку.
Причем можно как считать значение нужного свойства, так и записать в это свойство какое-либо значение.
ПервыйЭлемент = Список . Получить ( 0 );
ПервыйЭлемент . Представление = «Иванов Иван Иванович» ;
Сообщить ( ПервыйЭлемент . Значение + » — » + ПервыйЭлемент . Представление );
Как перебрать список значений
Перебрать список значений довольно просто – необходимо воспользоваться или циклом Для…Цикл, тогда получать элемент списка значений нужно будет посредством квадратной скобки (или метода Получить), или циклом Для каждого Цикл, в этом случае мы будем получить уже непосредственно элемент в каждой итерации цикла.
Для н = 0 по Список . Количество () — 1 Цикл
ЭлемСписка = Список [ н ];
Сообщить ( ЭлемСписка . Значение );
КонецЦикла;
Обратите внимание, что максимальное значение счетчика цикла должно соответствовать количеству элементов списка минус один, т.к. индекс начинается с нуля.
Гораздо практичнее пользоваться циклом Для каждого Цикл
Для Каждого ЭлемСписка из Список Цикл
Сообщить ( ЭлемСписка . Значение );
КонецЦикла;
В этом случае, мы сразу получаем нужный элемент списка в каждой итерации.
Статьи о других универсальных коллекциях значений в 1С
Более подробно о работе со списками значений и другими интересными объектами языка программирования в 1С читайте в моей книге «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Описание:
Список значений — это не сохраняемый в базе данных объект, который позволяет строить для решения интерфейсных задач динамические наборы значений и манипулировать ими (добавлять, редактировать, удалять элементы, сортировать). Он может быть наполнен значениями любого типа, т.е. в одном списке типы хранимых значений могут быть разными. Одним из примеров использования данного объекта может служить организация выбора конкретного документа из списка возможных документов, сформированного по сложному алгоритму.
Элементы коллекции: ЭлементСпискаЗначений
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.
Возможно обращение к элементу коллекции посредством оператора [. ]. В качестве аргумента передается индекс элемента (нумерация с 0).
« Как стать программистом 1С » Язык 1С » Список значений 1С Загрузить значения, Выгрузить значения — экспорт, импорт значений
Список значений 1С Загрузить значения, Выгрузить значения — экспорт, импорт значений
Методы 1С СписокЗначений.ЗагрузитьЗначения(Массив) и 1С СписокЗначений.ВыгрузитьЗначения() позволяют сделать список значений из массива и наоборот – массив из списка значений.
В таблице значений есть методы, которые позволяют данные из одной колонки выгрузить в массив или загрузить из массива. Таким образом эти методы списка значений можно использовать с таблицей значений.
Чтобы создать список значений из массива с помощью 1С СписокЗначений.ЗагрузитьЗначения:
мЗначений = Новый Массив(3);
мЗначений[0] = 10;
мЗначений[1] = 20;
мЗначений[2] = 30;
спЗначений = Новый СписокЗначений(); //обратите внимание – список значений нужно сначала создать, прежде чем наполнить значениями из массива
спЗначений.ЗагрузитьЗначения(мЗначений); //теперь список значений содержит 3 значения: 10, 20, 30
Чтоб создать массив из списка значений с помощью 1С СписокЗначений.ВыгрузитьЗначения:
спЗначений = Новый СписокЗначений();
спЗначений.Добавить(10);
спЗначений.Добавить(20);
спЗначений.Добавить(30);
мЗначений = спЗначений.ВыгрузитьЗначения(); //обратите внимание – массив не нужно заранее создавать! Он сразу создается с данными!