====== Фиксированная структура ======
Фиксированная структура - это неупорядоченная неизменяемая коллекция, состоящая из пар [[1c:общие:КлючИЗначение|Ключ-Значение]]. В отличие от обычной [[1c:коллекции:структура|структуры]], в фиксированную структуру невозможно добавить новую пару значений, изменить или удалить существующую.
Назначение фиксированной структуры по первоначальной задумке разработчиков 1с - использование в качестве значений параметров сеанса. Но в ходе развития платформы фиксированная структура всё чаще встречается в качестве параметра различных встроенных функций и методов. Использование параметров такого типа гарантирует, что этот параметр не будет изменён внутри тела процедуры или функции.
Англоязычный аналог - ''FixedStructure''.
===== Создание и использование =====
Фиксированная структура поддерживает оба варианта конструирования простой структуры. Но так как в фиксированную структуру невозможно добавить новые реквизиты, есть смысл использовать лишь вариант с передачей начальных значений:
Структура = Новый ФиксированнаяСтруктура(«КакойТоКлюч1, КакойТоКлюч2»,
ЗначениеКотороеНадоСохранить1, ЗначениеКотороеНадоСохранить2);
Существует также способ создания переменных данного типа на основе уже созданной обычной структуры:
Структура = Новый Структура;
Структура.Вставить(«КакойТоКлюч1», ЗначениеКотороеНадоСохранить1);
Структура.Вставить(«КакойТоКлюч2», ЗначениеКотороеНадоСохранить2);
Структура2 = Новый ФиксированнаяСтруктура(Структура);
К значениям структуры можно обращаться как к значениям обычной структуры:
Сообщить(Структура2.КакойТоКлюч2);
Возможен также перебор значений в цикле посредством оператора [[1c:база:циклы#Циклы для обхода коллекций|Для Каждого...Из...Цикл]]. Порядок следования пар при таком переборе не определён.
===== XDTO =====
Фиксированная структура может быть выгружена/загружена с помощью механизма [[1c:общие:xdto|XDTO]]. Для этого существует тип ''FixedStructure'' пространства имён ''%%http://v8.1c.ru/8.1/data/core%%'' (является частью платформы). Разумеется, для успешной операции подобными свойствами должны обладать все сохранённые в структуре значения.
===== Ограничения =====
Ограничения у фиксированной структуры такие же, что и у обычной - к ключу предъявляются требования как к именам переменных. Плюс невозможность изменения содержимого - будет вызвано исключение. Методы изменения содержимого отсутствуют.
===== Доступность =====
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер).
===== Свойства и методы =====
^ Наименование ^ Назначение ^
|**Свойства**||
|<Имя ключа>|Возвращает значение, связанное с ключом <Имя ключа>.|
|**Методы**||
|[[1c:коллекции:фиксированная_структура:конструктор|ФиксированнаяСтруктура]]|Создаёт переменную данного типа.|
|[[1c:коллекции:фиксированная_структура:Количество]]|Возвращает число элементов структуры.|
|[[1c:коллекции:фиксированная_структура:Свойство]]|Позволяет определить наличие свойства.|
===== См. также =====
[[1c:коллекции:структура|Структура]], [[1c:общие:КлючИЗначение]].