====== Фиксированная структура ====== Фиксированная структура - это неупорядоченная неизменяемая коллекция, состоящая из пар [[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:общие:КлючИЗначение]].