Тип данных Структура 1C 8.X

Структура

Описание:

Представляет собой коллекцию пар КлючИЗначение. При этом ключ может быть только строковым и должен удовлетворять требованиям, предъявляемым к именованию переменных встроенного языка.

К значениям структуры можно обращаться как к свойствам объекта. При этом ключ используется как имя свойства.

Структура используется обычно для хранения небольшого количества значений, каждое из которых имеет некоторое имя.

Элементы коллекции: КлючИЗначение

Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.

Свойства:


Имя ключаВ качестве свойств структура предоставляет элементы. Имя свойства определяется ключом, а значение свойства определяется значением элемента.
Методы:
Вставить(<Ключ>,   <Значение>)Устанавливает значение элемента структуры по ключу. Если элемент с переданным значением ключа существует, то его значение заменяется, в противном случае добавляется новый элемент.
Количество()Получает количество элементов структуры.
Очистить()Удаляет все элементы структуры.
Свойство(<Ключ>, <НайденноеЗначение>)Получает значение элемента по указанному имени, а также проверяет, имеется ли указанное свойство. Возвращает Истина — ключ найден, Ложь — в противном случае.
Удалить(<Ключ>)Удаляет элемент структуры с заданным ключом.
Конструкторы:
Новый Структура(<ФиксированнаяСтруктура>)Создаваемая структура заполняется свойствами из исходной фиксированной структуры.
Новый Структура(<Ключ>, <Значения>)Создает структуру с ключами, значения которых передаются в параметре конструктора. Если в первом параметре заданы ключи элементов структуры, то в следующих параметрах могут быть указаны значения этих элементов в том порядке, в котором они расположены в строке в первом параметре.

Как создать структуру в 1с 8.2, 8.3?

Способ 1 — без данных

НоваяСтруктура = Новый Структура;

Способ 2 — с заполнением данными

НоваяСтруктура = Новый Структура ("Марка, ГодВыпуска, Цвет","TOYOTA", "2016","Черный");

// Созданная структура имеет пары КлючИЗначение 
// 1) "Марка"     -> "TOYOTA"
// 2) "ГодВыпуска" -> "2016"
// 3) "Цвет"       -> "Черный"

Как добавить элемент в структуру в 1с 8.2, 8.3?
// Создаем структуру
НоваяСтруктура = Новый Структура; 

// Добавляем данные используя метод Вставить(<Ключ>,<Значение>)
НоваяСтруктура.Вставить("Марка","TOYOTA");
НоваяСтруктура.Вставить("ГодВыпуска","2016");
НоваяСтруктура.Вставить("Цвет","Черный");

Как изменить значение ключа созданной структуры в 1с 8.2, 8.3?

Способ 1

// Создаем структуру
НоваяСтруктура = Новый Структура; 

// Добавляем данные используя метод Вставить(<Ключ>,<Значение>)
НоваяСтруктура.Вставить("Марка","TOYOTA");
НоваяСтруктура.Вставить("ГодВыпуска","2016");
НоваяСтруктура.Вставить("Цвет","Черный");

// Меняем значение поля Марка
НоваяСтруктура.Марка = "ВАЗ";

// Теперь значение поля Марка - "ВАЗ".

Способ 2

НоваяСтруктура.Вставить("Марка","Chevrolet");

// Теперь значение поля Марка - "Chevrolet"

Как узнать количество элементов в структуре 1с 8.2, 8.3?
//Для вывода количества элементов структуры используем метод Количество().
Сообщить(НоваяСтруктура.Количество()); // По нашим примерам выше количество элементов вернется - 3

Как удалить элемент из структуры в 1с 8.2, 8.3?
//Для удаления одного элемента из структуры, 
//необходимо передать имя ключа в метод Удалить(<Ключ>), 
//после этого элемент с переданным ключом будет удален. 

НоваяСтруктура.Удалить("Цвет");

Как удалить все элементы из структуры в 1с 8.2, 8.3?
//Для удаления всех элементов из структуры необходимо вызвать метод Очистить().

НоваяСтруктура.Очистить();
Как обойти все элементы структуры в 1с 8.2, 8.3?

//Для обхода всей структуры (коллекции) необходимо использовать конструкцию - Для Каждого Из Цикл

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