Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование на платформе 1С Предприятие. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
71
Разработчик имеет возможность самостоятельно создать только экземпляр какого-то объекта, для своих утилитарных це­лей. Делается это при помощи конструктора. Какой у того или иного объекта конструктор, можно посмотреть в синтакс­помощнике в одноименном каталоге.
Как правило, большинство общих объектов создается при помощи конструктора Новый. Например, так создаётся Таблич­ныйДокумент.
У общих объектов, так же как и у объектов метаданных, могут быть свойства, методы и события. Но в отличие от объек­тов метаданных мы не можем, как разработчики, самостоятельно
72
конструировать те или иные свойства и методы, а можем опери­ровать только тем, что предоставила платформа 1С. О том, какие свойства, методы и события имеются у того или иного общего объекта можно посмотреть в том же Синтакс-помощнике.
Не у всех общих объектов есть и методы, и свойства, и со­бытия. У некоторых объектов может не быть событий, а у неко­торых свойств. Обратиться к свойствам и методам можно через оператор «.».
5.4. Универсальные коллекции значений
Универсальные коллекции значений – это, так же как и об­щие объекты, объекты встроенного языка программирования, которыми может оперировать разработчик. Но в отличие от об­щих объектов они предназначены для хранения наборов данных, причем эти наборы данных хранятся в оперативной памяти ком­пьютера во время запущенного сеанса. Таким образом, когда пользователь прекратит работу с сеансом 1С, то и вся информа­ция этих наборов данных будет уничтожена.
Все универсальные коллекции описаны в Синтакс­помощнике в разделе «Универсальные коллекции значении». Это массив, структура, соответствие, список значений, таблица значений и т.д.
Как правило, все универсальные коллекции значений соз­даются при помощи конструктора Новый.
73
Массивы. Массив в языке программирования 1С – это кол- лекция элементов, следующих друг за другом, которые могут быть доступны с помощью индекса массива. Элементы могут быть любого типа, в том числе и типа Массив. У каждого элемен­та в массиве есть уникальный номер, который называ­ют Индексом. Посредством Индекса можно получить доступ к данному элементу.
Все элементы в массиве упорядочены, т.е. первый элемент имеет индекс, равный нулю, второй – одному, и так далее. Соз­дать массив можно при помощи конструктора Новый.
Новый Массив (<КоличествоЭлементов1>…
…<КоличествоЭлементовN>)
КоличествоЭлементов - необязательный параметр. Он мо­жет быть один - тогда мы будем иметь одномерный массив, а также их может быть несколько - тогда мы имеем многомерный массив.
74
Работать с массивами можно как в режим тонкого, так и в режим толстого клиента.
Когда создается непустой массив (одномерный или много­мерный), его элементы уже будут существовать, но с не запол­ненными значениями. Если посмотреть на данный массив в от­ладчике, то увидите напротив каждого элемента тип Неопределено.
Обращаться к элементу массива можно посредством индекса. Делается это с помощью оператора «квадратные скобки».
75
Как видите, элементы массива могут иметь разные типы (в том числе ссылочные).
При помощи индекса и квадратных скобок можно как за­дать какой-то элемент массива, так и прочитать этот элемент.
Индекс внутри скобок не должен превышать общего коли­чества элементов минус один (т.к. индекс начинается с нуля). Если мы напишем такой код,
то при его выполнении возникнет ошибка «Индекс находится за границами массива», т.к. он может обращаться только до 4 ин­декса, поскольку нумерация индексов начинается с нуля.
Перебор элементов массива. Перебрать все элементы мас- сива можно двумя способами. Первый способ – с помощью так называемого «китайского кода», когда присваиваем каждому элементу массива нужное значение. Иногда это бывает необходимо.
76
Но чаще необходимо прочитать каждый элемент массива в цикле. Для этого в теле цикла нужно обойти индексы от первого до по­следнего. Сделать это можно при помощи цикла Для…Цикл.
Или с помощью цикла Для каждого … Цикл, где в перемен­ной ЭлМассив для каждой итерации содержится соответствую­щее значение элемента массива.
Количество элементов массива. Узнать количество элементов массива можно двумя способами (рис. 103). С помощью метода Количество() и метода ВГраница(). Метод Количество() возвращает количество элементов массива (т.е. то число, что задается в скобках конструктора массива), а метод ВГраница() самый максимальный индекс элемента массива или граница массива. В этом случае перебор элементов массива в цикле возможен двумя способами. Второй способ считается более правильным.
77
Добавление элементов массива. Добавить элемент массива можно с помощью методов Добавить() и Вставить(). Первый метод добавляет элемент в конец массива, а второй вставляет элемент в нужный индекс массива.
В этом коде мы создали пустой массив, потом добавили элемент (он же первый), потом вставили на нулевой индекс элемент, а потом добавили. Должен получиться следующий результат.
78
Многомерный массив. В языке программирования 1С назы- вается массив, элементами которого являются массивы. Если од­номерный массив создавался посредством конструктора с одним параметром, то в многомерном массиве может быть два и больше параметров:
МассивМн1 = Массив(3,2,5);
В этом примере мы создали массив, у которого будет три элемента, каждый из которых будет массивом, содержащим по два массива, в каждом из которых будет пять элементов. Например, создадим двумерный массив:
А вывод в окно сообщений следующим образом:
Объект Структура. Структура в языке программирования платформы 1С 8.3 (8.2) – это коллекция некоторых значений в связке с ключом. Эта связка ключа со значением называется КлючИЗначение. Ключ структуры уникален в рамках данной структуры. Причем к значениям структуры можно обращаться как к свойствам объекта, используя название ключа.
79
Объект Структура создается с помощью конструктора Новый.
Структура1 = Новый Структура;
Со структурами можно работать в серверном и клиентском контексте, причем в клиентском контексте с ними можно рабо­тать как под толстым клиентом, так и под тонким клиентом. В значения Структуры можно записать переменные любого типа, но использование типов в этом случае очень сильно зависит от контекста и от вида клиента: мы не можем в клиентском контек­сте задать значение, тип которого работает только в серверном контексте (например, ДокументОбъект.<>). Для того чтобы соз­дать новые элементы данного объекта нужно воспользоваться методом Вставить. Вот его синтаксис:
Вставить(<Ключ>,<Значение>);
Параметр Ключ имеет тип значения Строка. Он может иметь любое название, какое захочет разработчик. Пара­метр Значение может иметь любой тип.
Связка Ключ и значение уникальна, поэтому если написать для одной структуры два метода Вставить с одинаковыми клю­чами и разными значениями то все равно в структуре будет одна связка Ключ и значение, причем значение возьмется с последнего метода. Не всегда обязательно использовать метод Вставить, что­бы добавить пару КлючИЗначение в структуру, иногда это можно сделать в конструкторе. Тогда конструктор будет иметь следую­щий вид:
Структура1 = Новый Структура(Ключ, Значение);
80
Рассмотрим пример:
В процессе работы можно давать ключам любые названия, только тип ключа должен быть Строка. В структуру можно записывать не только примитивные типы, но также любые другие объекты «1С:Предприятия», вплоть до других структур. Причем значения типов разных ключей структуры могут быть разными.
Если посмотреть в отладке конфигуратора на нашу струк­туру, то увидим, что она представляет собой некоторый список, где напротив каждого ключа есть то значение, которое мы привя­зали к данному ключу с помощью метода Вставить. Этот ключ является свойством структуры как объекта, и мы можем обра­щаться к нему.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]