Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Работа с переменными и оператор присваиванияСодержание книги
Поиск на нашем сайте Значения, с которыми мы работали, являлись постоянными величинами (константами):
Рисунок 1.45 При решении задачи обработки данных значения могут определяться как явно в тексте алгоритма, так и запрашиваться у пользователя через соответствующие интерфейсные механизмы или вычисляться различными способами. Для случаев, когда значение не может определяться явно в выражении, вместо значения используется термин, определяющий смысл подставляемого значения, например: "1С:Предприятие " + РедакцияПлатформы В данном примере есть постоянная величина строковое значение "1С:Предприятие " и термин РедакцияПлатформы. Термин, используемый для определения подставляемого значения, называют в программировании переменная. Система 1С:Предприятие 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С:Предприятия являются гетерогенными:
Поддерживаются разные по сложности структуры массивы: · Простые (одномерные, линейные) массивы можно представить в виде таблицы с двумя колонками "индекс элемента значения" и "значение":
Пример просмотра физической структуры простого массива в режиме отладки в системе 1С:Предприятие 8:
Рисунок 1.4 · Сложные массивы (многомерные) могут быть представлены как массивы, значения которых представлены другими массивами, т.е. как массивы массивов
Физическую структуру сложного массива можно увидеть в режиме отладки в системе 1С:Предприятие 8:
Рисунок 1.5 Определение значения переменной как массива в системе 1С:Предприятие 8 осуществляется с помощью конструктора встроенного языка "Новый" с указанием типа "Массив":
Рисунок 1.6 В данном случае будет создан пустой массив, т.е. без элементов. Элементы разными способами могут добавляться позже. Если необходимо определить массив с начальным количеством элементов, можно указать их количество при использовании конструктора. Например, для массива с 5-ю элементами:
Рисунок 1.7 Все массивы данного вида в системе 1С:Предприятие 8 являются динамическими, т.е. с изменяемой размерностью. Для определения фиксированных массивов есть специальный тип "Фиксированный массив" (рассмотрим в конце данной темы). Хранение значения в массиве осуществляется по индексу, представляющему собой целое число (первый элемент набора имеет индекс равный нулю):
Работа с элементом массива осуществляется по индексу:
Рисунок 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.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; просмотров: 343; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.009 с.) |