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