====== Структура. ======
===== Описание. =====
Структура неупорядоченная коллекция работающая по принципу "Ключ и значение", предназначенная для создания объектов с произвольным набором свойств. То есть каждый элемент этой коллекции представляет собой пару "Ключ и значение". Структуру очень часто используют для отборов, если во встроенном языке в качестве параметра для какой либо встроенной функции можно указать отбор (НайтиСтроки для табличных частей и таблиц значений, Выбрать для справочников и тд), то там всегда ожидается структура. Структуру так же удобно использовать, для передачи списка параметров.
===== Создание и использование. =====
Создание структуры происходит с помощью метода ''Новый'' например:
Структура = Новый Структура(«КакойТоКлюч1, КакойТоКлюч2», ЗначениеКотороеНадоСохранить1, ЗначениеКотороеНадоСохранить2 )
Также можно создать структуру без параметров и добавить элементы когда будет удобно:
Структура = Новый Структура;
Структура.Вставить(«КакойТоКлюч», ЗначениеКотороеНадоСохранить);
Ещё один способ создания - на основе [[1c:коллекции:фиксированная_структура|фиксированной структуры]]. А если учесть, что фиксированную структуру можно создать на основе обычной, несложно сделать копию обычной структуры:
Структура2 = Новый Структура(Новый ФиксированнаяСтруктура(Структура));
После создания можно обращаться к значениям структуры по ключам:
НужноеЗначение = Структура.КакойТоКлюч1
Если заранее неизвестно, содержит ли структура нужный ключ, можно использовать метод ''Свойство'' который возвращает ''Истина'' если запрошенный ключ есть и ''Ложь'' если ключа нет. Например:
ЗдесьБудетЗначение = "";
Если Структура.Свойство("Параметр", ЗдесьБудетЗначение) Тогда
а = ЗдесьБудетЗначение;//ключ есть в структуре и мы можем воспользоваться значением
КонецЕсли;
===== Ограничения =====
При создании и использовании структур необходимо принимать во внимание следующие ограничения:
* При добавлении элемента структуры ключ должен быть указан обязательно. Ключ может быть только строкой, на которую накладывается ограничение как на имя переменной:
* не должно быть пробелов
* спецсимволов,
* ключ не может начинаться с числа.
* Структуру нельзя сортировать, но на текущий момент значения в ней сохраняются в том порядке в котором в нее попали. Хотя это поведение нигде не задокументировано.
* К значениям структуры нельзя обратиться по индексу, но ее значения можно обойти в цикле.
===== См. также =====
{{backlinks>.#1c}}