Работа с переменными и оператор присваивания 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Работа с переменными и оператор присваивания



Значения, с которыми мы работали, являлись постоянными величинами (константами):

Рисунок 1.45

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

"1С:Предприятие " + РедакцияПлатформы

В данном примере есть постоянная величина строковое значение "1С:Предприятие " и термин РедакцияПлатформы. Термин, используемый для определения подставляемого значения, называют в программировании переменная.

Система 1С:Предприятие 8 поддерживает неявное определение переменной, т.е. в момент заполнения ее значением. Для передачи значения в переменную используется оператор присваивания (знак равенства):

Имя переменной Оператор присваивания Значение
РедакцияПлатформы = 8

Информацию об операторе присваивания можно получить в синтакс-помощнике:

Рисунок 1.46

Во встроенном языке 1С:Предприятия, как и в других языках программирования, существуют определенные требования к именам переменных:

Рисунок 1.47

Для лучшего понимания переменных, представим следующую ситуацию: Мы в магазине расплачиваемся за покупку. Подходим к кассиру "Оля" (это переменная) и даем (оператор присваивания) ей деньги (значение переменной). Кассир помещает деньги в кассу (запись данных в оперативную память). Мы к кассе доступа не имеем, с кассой работает кассир.

Рисунок 1.48

Любую переменную необходимо воспринимать как механизм, который обеспечивает хранение в памяти значения и как минимум, позволяет нам получить требуемое значение в нужном для нас месте программы, а максимум, выполнить сложные действия по отношения к данным, за которые он отвечает. Имя переменной – это имя механизма, к которому мы хотим обратиться для работы с данными. Вид механизма определяется типом того значения, которое мы помещаем в оперативную память используя оператор присваивания.

Для получения значения переменной существует два способа:

· Обратиться к механизму по имени, в случаях, когда механизм переменной работает со значением примитивного типа

Рисунок 1.49

· Использовать свойства и методы механизма (данный способ будет рассматриваться при изучении коллекций значений)

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

Рисунок 1.50

Наш алгоритм состоит из двух действий:

1. Создаем переменную РедакцияПлатформы и передаем ей значение "8"

2. Запрашиваем значение у переменной РедакцияПлатформы для подстановки в операцию конкатенации и выводим результат сложения строк на экран

Рисунок 1.51

Выполняемые действия разделяются символом "точка с запятой". Определенная последовательность действий называется алгоритмом.


 

КОЛЛЕКЦИИ ЗНАЧЕНИЙ

При решении различных задач могут возникать алгоритмы, в которых необходимо использовать множество различных данных, например: "Найти максимальное значение из следующего набора чисел: 3,7,12,1,8". При использовании известных нам механизмов переменных и встроенных функций, алгоритм будет следующим:

Рисунок 1.1

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

Рисунок 1.2

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

Рисунок 1.3

Использование массивов

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

Для начала рассмотрим возможности использования массивов в 1С:Предприятие 8:

В системе 1С:Предприятие 8 есть возможность работы как с динамическими массивами (размерность может изменяться в процессе эксплуатации) так и с фиксированными (без возможности изменения размерности в момент использования).

Нет жестких ограничений на использование различных типов значений в рамках одного массива, т.е. массивы 1С:Предприятия являются гетерогенными:

0 "1С:Предприятие"
1 8

Поддерживаются разные по сложности структуры массивы:

· Простые (одномерные, линейные) массивы можно представить в виде таблицы с двумя колонками "индекс элемента значения" и "значение":

Индекс элемента значения Значение
   

Пример просмотра физической структуры простого массива в режиме отладки в системе 1С:Предприятие 8:

Рисунок 1.4

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

Индекс элемента значения Значение
 
Индекс элемента значения Значение
   
 
Индекс элемента значения Значение
   

 

Физическую структуру сложного массива можно увидеть в режиме отладки в системе 1С:Предприятие 8:

Рисунок 1.5

Определение значения переменной как массива в системе 1С:Предприятие 8 осуществляется с помощью конструктора встроенного языка "Новый" с указанием типа "Массив":

Рисунок 1.6

В данном случае будет создан пустой массив, т.е. без элементов. Элементы разными способами могут добавляться позже.

Если необходимо определить массив с начальным количеством элементов, можно указать их количество при использовании конструктора. Например, для массива с 5-ю элементами:

Рисунок 1.7

Все массивы данного вида в системе 1С:Предприятие 8 являются динамическими, т.е. с изменяемой размерностью. Для определения фиксированных массивов есть специальный тип "Фиксированный массив" (рассмотрим в конце данной темы).

Хранение значения в массиве осуществляется по индексу, представляющему собой целое число (первый элемент набора имеет индекс равный нулю):

0 Иванов
1 Петров

Работа с элементом массива осуществляется по индексу:

Рисунок 1.8

Для работы с данными массива необходимо использовать методы, которые представлены в Синтакс-помощнике:

Рисунок 1.9

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

<ИмяПеременной>. <ИмяМетода>

Точка между именем переменной и именем метода определяет, что указанный метод применяется к значению, хранящемуся в данной переменной.

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

Рисунок 1.10

Для поиска элемента массива по значению можно воспользоваться методом найти, возвращающем (в нашем примере) индекс элемента массива:

Рисунок 1.11

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

записью и чтением значений, как через оператор [], так и методами Установить и Получить:

Рисунок 1.12

добавление элемента значения в конец набора с расширением размерности массива:

Рисунок 1.13

вставкой элемента значения по определенному индексу с расширением размерности массива:

Рисунок 1.14

· Очистка массива может осуществляться:

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

Рисунок 1.15

полностью - все элементы удаляются с уменьшением размерности массива до нуля (получаем пустой массив):

Рисунок 1.16

Если требуется ограничить возможности по изменению размерности массива, можно создать фиксированый массив (на основании динамического массива, как копию):

Рисунок 1.17

Использование структуры

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

или

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

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

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

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

Рисунок 1.18

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

Рисунок 1.19

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

Рисунок 1.20

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

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

Рисунок 1.21

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

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

Рисунок 1.22

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

Рисунок 1.23

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

Рисунок 1.24

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

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

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

Рисунок 1.25

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

Рисунок 1.26

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

Рисунок 1.27

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

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

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

Рисунок 1.28

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

Рисунок 1.29

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

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

Рисунок 1.30

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

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

Рисунок 1.31

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

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

Рисунок 1.32

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

Рисунок 1.33

Использование соответствий

Соответствие используется в тех случаях, когда невозможно использование простого ключа для идентификации элемента в коллекции, например:

Ключ элемента значения Значение
Главный офис Лесная 1
Дополнительный офис Лесная 1

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

Рисунок 1.34

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

Рисунок 1.35

При просмотре списка доступных методов для работы с соответствием в синтакс-помощнике, мы можем увидеть, что теперь нет возможности обращения к элементу коллекции через ключ, как свойство коллекции:

Рисунок 1.36

Ключ элемента в соответствии может быть не только строковым:

Рисунок 1.37

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

Для ограничения возможностей изменения состава коллекции, в системе 1С:Предприятие 8 существует специализированный тип "ФиксированноеСоответствие":

Рисунок 1.38

А теперь на практике рассмотрим задачи, связанные с использованием универсальной коллекции значений СООТВЕТСТВИЕ, и традиционно начнем с создания значения.

Как в предыдущих занятиях, коллекция СООТВЕТСТВИЕ создается с помощью конструктора встроенного языка "Новый" и указанием типа коллекции "СООТВЕТСТВИЕ":

Рисунок 1.39

Определение начальных элементов в момент создания коллекции невозможно. Для данной задачи необходимо воспользоваться специальным методом "Вставить".

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

Рисунок 1.40

Можно определить элементы коллекции с ключом и значением:

Рисунок 1.41

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

Способ 1. Воспользоваться обращением к элементу по аналогии использования в массивах и структурах через квадратные скобки:

Рисунок 1.42

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

Способ 2. Воспользоваться методом "Вставить" для существующего ключа:

Рисунок 1.43

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

Рисунок 1.44

Но, можно использовать для чтения значения коллекции и метод "Получить":

Рисунок 1.45

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

Выборочное удаление по ключу:

Рисунок 1.46

Полная очистка соответствия:

Рисунок 1.47

 

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



Поделиться:


Последнее изменение этой страницы: 2021-02-07; просмотров: 242; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.200.211 (0.079 с.)