Коллекции значений 1С — это универсальные объекты Массив, Список значений, Таблица значений, Дерево значений, Структура, Соответствие.
Универсальные коллекции значений в 1С:
- Коллекции значений 1С — Массив
Простейший набор значений, например – массив из 7 значений: 1,2,5,20,»Зеленый»,’20120610120000′,2350 - Коллекции значений 1С — Список значений
Массив с расширенным функционалом – каждое значение имеет «представление» (то, как оно будет отображено пользователю в интерфейсе), сортировка, интерфейсные функции (используется для выбора значения из списка на форме в «выпадающем списке»). - Коллекции значений 1С — Таблица значений
То же, что и табличная часть, но с возможностью динамически создавать и использовать нетипизированные колонки. Представляет собой обычную таблицу, аналогичную таблице Excel. В виде таблицы значений можно получить результат запроса из базы данных. - Коллекции значений 1С — Дерево значений
Расширенная таблица значений, у которой каждая строка может иметь подчиненные строки. - Коллекции значений 1С — Структура
Аналог подобных объектов из других языков программирования – создание динамического набора переменных с именами. - Коллекции значений 1С — Соответствие
Соответствие пар значений. Аналогично структуре, но вместо «название переменной – значение» в соответствии используется «одно значение – другое значение».
Все виды универсальных коллекций в 1С имеют схожие методы управления (методы), например: Добавить(), Удалить(), Найти() и т.п.
К значениям любой коллекции можно обращаться схожими способами.
Для «неименованных» коллекций – по индексу (массив, список значений):
- Коллекция.Получить(Индекс) и Коллекция.Установить(Индекс)
- Коллекция[Индекс]
Для «именованных» коллекций – по имени (значение поля в строке таблицы – по имени колонки):
- Коллекция.Имя
- Коллекция[«Имя»]
При передачи коллекции как параметр внутрь процедуры/функции – изменения внутри функции сохранятся после выхода из нее, например:
Процедура ДобавитьЗначение(сзПример)
сзПример.Добавить(100);
КонецПроцедуры
сзПример = Новый СписокЗначений();
сзПример.Добавить(200);
ДобавитьЗначение(сзПример); //вызываем процедуру
Сообщить(сзПример.Количество()); //в массиве будет 2 значения, хотя одно добавлено вне процедуры, а одно внутри
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.