Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программирование на платформе 1С Предприятие. Учебное пособие
.pdf
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С:Предприятия», вплоть до других структур. Причем значения
типов разных ключей структуры могут быть разными.
Если посмотреть в отладке конфигуратора на нашу структуру, то увидим, что она представляет собой некоторый список,
где напротив каждого ключа есть то значение, которое мы привязали к данному ключу с помощью метода Вставить. Этот ключ
является свойством структуры как объекта, и мы можем обращаться к нему.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
