Работа с массивом в 1С 8.3 на примерах
Объекты типа массив в 1С 8.3 представляют собой совокупность упорядоченных значений любого типа, в том числе и типа «массив», что в свою очередь позволяет организовывать многомерные массивы. Идентификация значений осуществляется по индексам, нумерация которых начинается с «0».
Содержание
- 1 Создание массива
- 2 Добавление элементов в массив
- 3 Получение значения элемента по индексу
- 4 Поиск в массиве 1С
- 5 Присвоение значений элементам массива
- 6 Как узнать количество элементов массива (размер массива)
- 7 Перебор массива 1С
- 8 Перебор всех элементов двумерного массива
- 9 Удаление элементов из массива
- 10 Как разложить строку в массив
- 11 Пример преобразования массива в список значений
- 12 Пример преобразования массива в таблицу значений
- 13 Сортировка массива 1С разными способами
- 14 Как свернуть массив в 1С
Создание массива
Синтаксис:
Новый Массив(<КоличествоЭлементов1>,…,<КоличествоЭлементовN>)
Примеры:
//Одномерный массив ПустойМассив = Новый Массив();//Пустой массив Массив2 = Новый Массив(2);//массив из двух элементов //Двумерный массив в 1С 8.3 ДвумерныйМассив = Новый Массив(2,3);//Каждый из двух элементов // двумерного массива является массивом // из трёх элементов //Фиксированный (неизменный) массив ФиксМассив = Новый ФиксированныйМассив(Массив2);
Добавление элементов в массив
Примеры:
Массив = Новый Массив();//Создадим массив для примера //Метод Добавить().Добавляет элемент в конец массива Массив.Добавить("знач1");//Добавили элемент с типом строка Массив.Добавить();//Добавили пустой элемент в массив
Результат:
//Метод Вставить().Вставляет значение в массив по индексу. Массив.Вставить(0);//Вставили пустой элемент в начало массива. Тем самым //произошла переиндексация всего массива. Элемент с индексом //[0] стал [1], [1] стал [2]
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Результат:
Массив.Вставить(5,"знач6");//Вставили элемент со значением "знач6" по индексу [5]. //По недостающим индексам [3] и [4], произошло добавление //пустых элементов
Результат:
Получение значения элемента по индексу
Массив.Получить(5);//В скобках указываем индекс (число) желаемого элемента ДвумерныйМассив.Получить(0).Получить(0);
Поиск в массиве 1С
Массив.Найти("знач6");//В скобках указываем значение искомого элемента
Присвоение значений элементам массива
Примеры:
Массив.Установить(0,10);//Присвоили ранее созданному элементу с // индексом [0] значение "10", тип число Массив[2] = "знач3";//Присвоили ранее созданному элементу с индексом [2] //значение "знач3", тип строка ДвумерныйМассив[0][0] = "ЗНАЧ";//Присвоили ранее созданному элементу //с индексом [0][0] значение "ЗНАЧ", тип строка
Как узнать количество элементов массива (размер массива)
Массив.ВГраница();//Получаем наибольший индекс элемента массива (число) Массив.Количество();//Получаем количество элементов в массиве (число)
Перебор массива 1С
Примеры:
//По индексу Для Индекс = 0 по Массив.ВГраница() Цикл Сообщить(Индекс); КонецЦикла; //По элементам Для Каждого Элемент Из Массив Цикл Сообщить(Элемент); КонецЦикла;
Перебор всех элементов двумерного массива
Примеры:
//По индексу Для ИндексСтр = 0 По ДвумерныйМассив.ВГраница() Цикл Для ИндексСтолбец = 0 По ДвумерныйМассив[ИндексСтр].ВГраница() Цикл Сообщить(ДвумерныйМассив[ИндексСтр][ИндексСтолбец]); КонецЦикла; КонецЦикла; //По элементам Для Каждого Строка Из ДвумерныйМассив Цикл Для Каждого Элемент Из Строка Цикл Сообщить(Элемент); КонецЦикла; КонецЦикла;
Удаление элементов из массива
Примеры:
//Удаление элемента из массива по индексу Массив.Удалить(3);//В скобках указываем индекс (число) удаляемого элемента //Удаление всех элементов из массива Массив.Очистить();
Как разложить строку в массив
&НаКлиенте Процедура СтрокуВ_Массив(Команда) МассивСтрок = Новый Массив; Строка = "Строку в массив"; МассивСтрок = СтрРазделить(Строка, " "); КонецПроцедуры
Результат:
Пример преобразования массива в список значений
&НаКлиенте Процедура МассивВ_СписокЗначений(Команда) Массив = Новый Массив(); Массив.Добавить("знач1"); Массив.Добавить("знач2"); Массив.Добавить("знач3"); СЗ = Новый СписокЗначений;//Создаём список значений СЗ.ЗагрузитьЗначения(Массив);//Загрузка значений элементов массива в СЗ КонецПроцедуры
Результат:
Пример преобразования массива в таблицу значений
&НаКлиенте Процедура МассивВ_ТЗ(Команда) Массив = Новый Массив(); Массив.Добавить(1); Массив.Добавить(2); Массив.Добавить(3); МассивВ_ТЗ_Сервер (Массив); КонецПроцедуры &НаСервере Процедура МассивВ_ТЗ_Сервер (Массив) ТЗ = Новый ТаблицаЗначений;//Создаём таблицу значений ТЗ.Колонки.Добавить("НаборЧисел"); //Добавляем строки в ТЗ Для Индекс = 0 по Массив.ВГраница() Цикл НовСтрока = ТЗ.Добавить(); КонецЦикла; ТЗ.ЗагрузитьКолонку(Массив,"НаборЧисел");//преобразуем в таблицу значений ТЗизМассива = ТЗ;//результат КонецПроцедуры
Результат:
Сортировка массива 1С разными способами
Примеры:
//Через список значений &НаКлиенте Процедура СортироватьМассивЧерезСЗ(Команда) Массив = Новый Массив(); Массив.Добавить("знач1"); Массив.Добавить("знач2"); Массив.Добавить("знач3"); СЗ = Новый СписокЗначений;//Создаём список значений СЗ.ЗагрузитьЗначения(Массив);//Загрузка значений элементов массива в СЗ СЗ.СортироватьПоЗначению(НаправлениеСортировки.Убыв);//Сортируем по убыванию СЗ.СортироватьПоЗначению(НаправлениеСортировки.Возр);//Сортируем по возрастанию Массив = СЗ.ВыгрузитьЗначения();//В массив КонецПроцедуры //Через таблицу значений &НаКлиенте Процедура СортироватьМассивЧерезТЗ(Команда) Массив = Новый Массив(); Массив.Добавить(1); Массив.Добавить(2); Массив.Добавить(3); ОтсортированныйМассив = СортироватьМассивЧерезТЗ_Сервер(Массив); КонецПроцедуры &НаСервере Функция СортироватьМассивЧерезТЗ_Сервер(Массив) ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("НаборЧисел"); //Добавляем строки в ТЗ Для Индекс = 0 по Массив.ВГраница() Цикл НовСтрока = ТЗ.Добавить(); КонецЦикла; ТЗ.ЗагрузитьКолонку(Массив,"НаборЧисел");//Преобразуем в таблицу значений ТЗ.Сортировать("НаборЧисел Убыв");//Сортируем по убыванию ТЗ.Сортировать("НаборЧисел Возр");//Сортируем по возрастанию Массив = ТЗ.ВыгрузитьКолонку("НаборЧисел");//В массив Возврат Массив; КонецФункции
Как свернуть массив в 1С
Пример:
&НаКлиенте Процедура СвернутьМассив(Команда) Массив = Новый Массив(); Массив.Добавить("Яблоко"); Массив.Добавить("Яблоко"); Массив.Добавить("Банан"); Соответствие = Новый Соответствие; Для каждого Элемент Из Массив Цикл Соответствие.Вставить(Элемент); КонецЦикла; Массив.Очистить(); Для каждого КлючИЗначение Из Соответствие Цикл Массив.Добавить(КлючИЗначение.Ключ); КонецЦикла; КонецПроцедуры
Результат:
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
СПРОСИТЕ в комментариях!
Елена:
Ребята, СПАСИБО вам за обучение!