Файл: Универсальные коллекции значений.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 08.11.2023

Просмотров: 21

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Чтобы исключить пустые сообщения, необходимо третий параметр поставить в значение Ложь (по умолчанию он имеет значение Истина), теперь он будет пропускать пустые сообщения и результат будет следующим:





  1. Структура

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



Для решения данной задачи индекс элемента должен быть строковым, т.е. модель доступа к элементам требуется новый вид коллекции. Для реализации такого способа работы с элементами в коллекции значений разработчики системы 1С:Предприятие 8 создали тип коллекции СТРУКТУРА



В отличие от массива, в структуре индекс элемента является строковым и поэтому называется ключом. Ключ определяется по правилам именования переменных, поэтому, можно сказать, что ключ является идентификатором элемента в наборе (идентифицирует, т.е. определяет элемент в наборе). Использование в качестве ключа строки с пробелами реализуется с помощью другого вида коллекции СООТВЕТСТВИЕ (рассматривается в следующем разделе).

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



Ключ элемента значения

Значение

Город

Томск

Улица

Новая

Дом

15

Физически систему хранения структуры в памяти можно увидеть в режиме отладки:




Для использования структуры без возможности изменения состава значений можно использовать разновидность данной коллекции: "Фиксированная структура":



Рассмотрим на практике приемы использования коллекции СТРУКТУРА. Для практики нам потребуется описание возможных методов и свойств из синтакс-помощника:



Начнем, как обычно, с создания переменной с типом СТРУКТУРА

Создание структуры ФИО возможно с помощью конструктора встроенного языка "Новый" и указания типа значения "Структура":



В данном случае в переменной ФИО будет создано значение типа СТРУКТУРА без элементов, т.е. пустая структура. Такой вариант может использоваться для универсальных задач хранения значений, когда заранее не известно, что будем хранить и как идентифицировать.

Для создания значения с определенной структурой хранения данных, можно передать список ключей в момент создания значения типа СТРУКТУРА:



В данном случае мы получаем переменную с определенной структурой хранения значений, без самих значений:



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



И так, мы разобрались с приемами создания значений типа СТРУКТУРА.

Теперь разберемся на практике с вариантами доступа к элементам структуры:

  • первый способ – как в случае с массивом, воспользуемся указанием ключа через квадратные скобки




Данный способ может использоваться для построения универсальных алгоритмов:



  • второй способ – с учетом новой возможности обращения к элементу значения через ключ, как свойство значения. В данном случае указание ключа осуществляется через точку после имени переменной. Такой способ стал возможен, т.к. ключ структуры является идентификатором элемента в коллекции:



Изменение состава коллекции значений структура связано с двумя задачами:

  1. Добавление элементов может осуществляться разными способами

  • первый способ – при создании через параметры, передаваемые в конструктор НОВЫЙ



  • второй способ – в момент использования с помощью метода "вставить" для значения типа СТРУКТУРА с указанием имени ключа и значения



Удаление элементов из коллекции может происходить:

  • выборочное – с указанием определенного элемента с помощью метода удалить и передачи имени ключа, удаляемого элемента:



Как видим, при попытке обращения к элементу по несуществующему ключу (ключ удален), система выдает предупреждение об ошибке.

  • полное – удаление всех элементов коллекции с помощью метода "Очистить":



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

Пример №1. Мы не знаем, есть ли у рассматриваемой нами коллекции нужное нам свойство. Необходимо проверить его наличие и, если оно есть получить его значение. Данную задачу можно решить с помощью метода "Свойство":




Пример №2. Необходимо узнать, является ли рассматриваемая нами структура пустой или в ней есть элементы. Для решения данной задачи нам необходимо определить количество элементов коллекции:



  1. Список значений

Список значений предназначен для хранения коллекции значений и их пользовательских представлений в интерфейсе.

Представление значений может задаваться тремя вариантами: "Представление", "Пометка" и "Картинка".

Представление – используется для хранения строкового представление значения и имеет тип "Строка"

Пометка – может использоваться, например, для хранения признака использования значения и имеет тип "БУЛЕВО"

Картинка – используется для графического представления значения и имеет тип "Картинка"

На следующей картинке мы видим пример интерфейсной работы со списком значений: