Все об 1С8 - просто и доступно

Добавить в Избранное  Сделать Стартовой  Написать письмо

Главная Статьи Вопрос-ответ Экспресс-справочник Гостевая книга
Статьи по 1С

Массивы 1С и примеры работы с массивами данных

Что такое массив? Те, кто знают, пропускают определение и пояснение. Остальные читают, чтобы понять суть работы с массивом. Допустим, нужно использовать какую-то переменную. Объявляем ее и используем. Если нужно использовать две или три переменных того же типа, то поступаем также. Но если требуется использовать много однотипных переменных? Скажем, десять или сотню? Не будем же мы объявлять сотню переменных и присваивать каждой их них значения? Вот для этого и используется структура данных, которая называется массив.
Если верить Википедии, то массив - это структура данных, хранящая набор значений (элементов массива), идентифицируемых по индексу или набору индексов, принимающих целые (или приводимые к целым) значения из некоторого заданного непрерывного диапазона. Одномерный массив можно рассматривать как реализацию абстрактного типа данных — вектор. Размерность массива — это количество индексов, необходимое для однозначной адресации элемента в рамках массива. По количеству используемых индексов массивы делятся на одномерные, двумерные, трёхмерные и т.д.

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

Массив можно создавать, в массив можно добавлять элемент, удалять элемент, вставлять элемент в определенное место. Массив можно сортировать.

Создание массива:
ПримерМассив = Новый Массив;
Добавление элементов в массив:
ПримерМассив.Добавить(100);
ПримерМассив.Добавить(200);
ПримерМассив.Добавить(300);
Элементы добавляются в конец массива.

Найти элемент массива можно по значению. Функция возвращает его индекс:
ПримерМассив.Найти(200);// Возвращает индекс первого элемента,  значение которого 200
Если элемент не найден, то функция возвращает Неопределено.

Получить значение известного элемента массива можно по индексу:
ПримерМассив.Получить(1);// Возвращает значение второго элемента массива - значение 200
Вставить элемент массива можно после определенного элемента:
ПримерМассив.Вставить(2, 500);
Изменить известный элемент массива можно по индексу:
ПримерМассив.Установить(1, 1000);// Присвоение второму элементу массива значения 1000
Удалить элемент массива можно по индексу:
ПримерМассив.Удалить(0);// Удаляется первый элемент массива
Удаление всех элементов массива(очистка):
ПримерМассив.Очистить();// Очистка массива
Количество элементов массива узнается функцией Количество() или ВГраница(), а элементы массива можно перебирать в цикле "Для каждого":
	КоличествоЭлементовМассива = ПримерМассив.Количество();
	
	Для Каждого ТекЭлемент Из ПримерМассив Цикл
		Сообщить(ТекЭлемент);
	КонецЦикла;
В завершение приводится один из вариантов сортировки - "пузырьковый". Но вообще способ помещения массива в список значений и последующая его сортировка работает шустрее.
	КоличествоЭлементовМассива = ПримерМассив.Количество();
	
	Для СчА = 1 По КоличествоЭлементовМассива - 1 Цикл
		Для СчБ = 0 По КоличествоЭлементовМассива - 2 Цикл
			Если ПримерМассив[СчБ] > ПримерМассив[СчБ + 1] Тогда
				Д = ПримерМассив[СчБ];
				ПримерМассив[СчБ] = ПримерМассив[СчБ + 1];
				ПримерМассив[СчБ + 1] = Д;
			КонецЕсли;	
		КонецЦикла;	
	КонецЦикла;

Обработку с примерами работы с массивами можно скачать тут. Если что забыл - не взыщите.