ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 08.11.2023
Просмотров: 21
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Чтобы исключить пустые сообщения, необходимо третий параметр поставить в значение Ложь (по умолчанию он имеет значение Истина), теперь он будет пропускать пустые сообщения и результат будет следующим:
-
Структура
При использовании массивов, обращение к элементу значения осуществляется по числовому индексу элемента (как мы уже знаем), но при решении некоторых задач предметной области, может возникнуть необходимость обращения к элементам не по индексам, а по именам, для улучшения восприятия логики алгоритма.
Для решения данной задачи индекс элемента должен быть строковым, т.е. модель доступа к элементам требуется новый вид коллекции. Для реализации такого способа работы с элементами в коллекции значений разработчики системы 1С:Предприятие 8 создали тип коллекции СТРУКТУРА
В отличие от массива, в структуре индекс элемента является строковым и поэтому называется ключом. Ключ определяется по правилам именования переменных, поэтому, можно сказать, что ключ является идентификатором элемента в наборе (идентифицирует, т.е. определяет элемент в наборе). Использование в качестве ключа строки с пробелами реализуется с помощью другого вида коллекции СООТВЕТСТВИЕ (рассматривается в следующем разделе).
Использование имени для каждого элемента набора очень удобно для тех случаев, когда требуется определить хранение элементов значения с учетом логики дальнейшего их использования. Таким образом, мы определяем структуру хранения (когда каждый элемент имеет свое назначение), например, при хранении адреса:
Ключ элемента значения | Значение |
Город | Томск |
Улица | Новая |
Дом | 15 |
Физически систему хранения структуры в памяти можно увидеть в режиме отладки:
Для использования структуры без возможности изменения состава значений можно использовать разновидность данной коллекции: "Фиксированная структура":
Рассмотрим на практике приемы использования коллекции СТРУКТУРА. Для практики нам потребуется описание возможных методов и свойств из синтакс-помощника:
Начнем, как обычно, с создания переменной с типом СТРУКТУРА
Создание структуры ФИО возможно с помощью конструктора встроенного языка "Новый" и указания типа значения "Структура":
В данном случае в переменной ФИО будет создано значение типа СТРУКТУРА без элементов, т.е. пустая структура. Такой вариант может использоваться для универсальных задач хранения значений, когда заранее не известно, что будем хранить и как идентифицировать.
Для создания значения с определенной структурой хранения данных, можно передать список ключей в момент создания значения типа СТРУКТУРА:
В данном случае мы получаем переменную с определенной структурой хранения значений, без самих значений:
Для уменьшения количества строк алгоритма разработчики добавили возможность при создании указывать не только набор ключей, но и значения, например, для определения начальных значений:
И так, мы разобрались с приемами создания значений типа СТРУКТУРА.
Теперь разберемся на практике с вариантами доступа к элементам структуры:
-
первый способ – как в случае с массивом, воспользуемся указанием ключа через квадратные скобки
Данный способ может использоваться для построения универсальных алгоритмов:
-
второй способ – с учетом новой возможности обращения к элементу значения через ключ, как свойство значения. В данном случае указание ключа осуществляется через точку после имени переменной. Такой способ стал возможен, т.к. ключ структуры является идентификатором элемента в коллекции:
Изменение состава коллекции значений структура связано с двумя задачами:
-
Добавление элементов может осуществляться разными способами
-
первый способ – при создании через параметры, передаваемые в конструктор НОВЫЙ
-
второй способ – в момент использования с помощью метода "вставить" для значения типа СТРУКТУРА с указанием имени ключа и значения
Удаление элементов из коллекции может происходить:
-
выборочное – с указанием определенного элемента с помощью метода удалить и передачи имени ключа, удаляемого элемента:
Как видим, при попытке обращения к элементу по несуществующему ключу (ключ удален), система выдает предупреждение об ошибке.
-
полное – удаление всех элементов коллекции с помощью метода "Очистить":
Для решения некоторых задач, связанных с чтением и анализом всего набора значений, могут потребоваться вспомогательные методы для работы с коллекцией.
Пример №1. Мы не знаем, есть ли у рассматриваемой нами коллекции нужное нам свойство. Необходимо проверить его наличие и, если оно есть получить его значение. Данную задачу можно решить с помощью метода "Свойство":
Пример №2. Необходимо узнать, является ли рассматриваемая нами структура пустой или в ней есть элементы. Для решения данной задачи нам необходимо определить количество элементов коллекции:
-
Список значений
Список значений предназначен для хранения коллекции значений и их пользовательских представлений в интерфейсе.
Представление значений может задаваться тремя вариантами: "Представление", "Пометка" и "Картинка".
Представление – используется для хранения строкового представление значения и имеет тип "Строка"
Пометка – может использоваться, например, для хранения признака использования значения и имеет тип "БУЛЕВО"
Картинка – используется для графического представления значения и имеет тип "Картинка"
На следующей картинке мы видим пример интерфейсной работы со списком значений: