Как создать массив (сразу нужного размера) в 1с 8.3, 8.2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
&НаКлиенте Процедура РаботаСМассивом1(Команда) // в массиве сразу 3 элемента Массив = Новый Массив(3); // инициализируем их значениями Массив[0] = 5; Массив[1] = Массив[0] * 2; // 10 Массив[2] = Массив[1] * 2; // 20 // выводим на печать Для Каждого ЭлементМассива из Массив Цикл Сообщить(ЭлементМассива); // 5 10 20 КонецЦикла; КонецПроцедуры |
Как создать пустой массив (с последующим добавлением элементов) в 1с 8.3, 8.2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
&НаКлиенте Процедура РаботаСМассивом2(Команда) // в массиве 0 элементов Массив = Новый Массив; // добавляем последовательно три элемента Массив.Добавить(100); // (100) Массив.Добавить(300); // (100, 300) Массив.Добавить(500); // (100, 300, 500) // выводим на печать Для Каждого ЭлементМассива из Массив Цикл Сообщить(ЭлементМассива); // 100 300 500 КонецЦикла; КонецПроцедуры |
Как обойти все элементы массива по индексу в 1с 8.3, 8.2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
&НаКлиенте Процедура РаботаСМассивом3(Команда) // инициализируем массив: (100, 300, 500) Массив = Новый Массив; Массив.Добавить(100); Массив.Добавить(300); Массив.Добавить(500); // пробегаемся от первого (с индексом 0) до последнего // элемента (с индексом Количество - 1). Для Индекс = 0 По Массив.Количество() - 1 Цикл Сообщить(Массив[Индекс]); КонецЦикла; КонецПроцедуры /// Массив может содержать элементы различных типов: числа, /// строки и т.д. &НаКлиенте Процедура РаботаСМассивом4(Команда) Массив = Новый Массив(4); Массив[0] = "ПОМОГИТЕ"; // ("ПОМОГИТЕ") Массив[1] = "МНЕ"; // ("ПОМОГИТЕ", "МНЕ") Массив[2] = "1C"; // ("ПОМОГИТЕ", "МНЕ", "1C") Массив[3] = Формат(2017, "ЧГ=0"); // ("ПОМОГИТЕ", "МНЕ", "1C", 2017) Для Каждого ЭлементМассива из Массив Цикл Сообщить(ЭлементМассива); // ПОМОГИТЕ МНЕ 1C 2017 КонецЦикла; КонецПроцедуры |
Как передать массив в качестве параметра функции в 1с 8.3, 8.2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
&НаКлиенте Функция Метод5(массивПереданныйПоСсылке) массивПереданныйПоСсылке[0] = 10; Возврат массивПереданныйПоСсылке[0] * 2; КонецФункции &НаКлиенте Процедура РаботаСМассивом5(Команда) // инициализация массива из одного элемента: (13) Массив = Новый Массив(1); Массив[0] = 13; // значение первого элемента до вызова функции Сообщить(Массив[0]); // 13 // массив ВСЕГДА передается в функцию ПО ССЫЛКЕ, значит, // изменяя массив внутри функции, мы меняем его снаружи Сообщить(Метод5(Массив)); // 20 // значение первого элемента после вызова функции изменилось Сообщить(Массив[0]); // 10 КонецПроцедуры |
Как вернуть массив в качестве результата работы функции в 1с 8.3, 8.2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
&НаКлиенте Функция Метод6() // инициализация массива (ПРОХОДИТЕ, ПОЖАЛУЙСТА) массив = Новый Массив(2); массив[0] = "ПРОХОДИТЕ"; массив[1] = "ПОЖАЛУЙСТА"; Возврат массив; КонецФункции &НаКлиенте Процедура РаботаСМассивом6(Команда) // инициализация переменной массивом, который возвращает и формирует // функция Метод6 Массив = Метод6(); // вывод на печать Для Каждого ЭлементМассива из Массив Цикл Сообщить(ЭлементМассива); // ПРОХОДИТЕ ПОЖАЛУЙСТА КонецЦикла; КонецПроцедуры |
Работа с массивом на передачу массива в качестве параметра процедуры в 1с 8.3, 8.2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
&НаКлиенте Процедура Метод7(Массив) Если Массив <> Неопределено И Массив.Количество() > 0 Тогда Сообщить(Массив[0]); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура РаботаСМассивом7(Команда) // инициализация массива: (10, 20) Массив = Новый Массив(2); Массив[0] = 10; Массив[1] = 20; // печать первого элемента, переданного массива Метод7(Массив); // 10 Метод7(Неопределено); // ничего Метод7(Новый Массив); // ничего КонецПроцедуры |
Как получить последний элемент массива в 1с 8.3, 8.2
1 2 3 4 5 6 7 8 9 10 11 12 13 |
&НаКлиенте Процедура РаботаСМассивом8(Команда) // инициализация массива: ("Бабочка", "Конь", "Крокодил", "Рысь") Массив = Новый Массив; Массив.Добавить("Бабочка"); Массив.Добавить("Конь"); Массив.Добавить("Крокодил"); Массив.Добавить("Рысь"); Сообщить(Массив[Массив.Количество() - 1]); // Тигр КонецПроцедуры |
Использование многомерных массивов в 1с 8.3, 8.2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
&НаКлиенте Процедура РаботаСМассивом9(Команда) // ( ( (), () ), ( (), () ), ( (), () ) ) Массив = Новый Массив(3, 2); // ( ( "Билл", "Гейтс" ), ( (), () ), ( (), () ) ) Массив[0][0] = "Билл"; Массив[0][1] = "Гейтс"; // ( ( "Билл", "Гейтс" ), ( "Александр", "Никитин" ), ( (), () ) ) Массив[1][0] = "Александр"; Массив[1][1] = "Никитин"; // ( ( "Билл", "Гейтс" ), ( "Александр", "Никитин" ), // ( "Юлия", "Савичева" ) ) Массив[2][0] = "Юлия"; Массив[2][1] = "Савичева"; // обход всех элементов через конструкцию Для Каждого Для Каждого Строка Из Массив Цикл Для Каждого Элемент Из Строка Цикл Сообщить(Элемент); КонецЦикла; Сообщить(" "); КонецЦикла; Сообщить(" "); // обход всех элементов через индекс Для ИндексСтрока = 0 По Массив.Количество() - 1 Цикл Для ИндексСтолбец = 0 По Массив[ИндексСтрока].Количество() - 1 Цикл Сообщить(Массив[ИндексСтрока][ИндексСтолбец]); КонецЦикла; Сообщить(" "); КонецЦикла; КонецПроцедуры |
Вставка, удаление и очистка массива в 1с 8.3, 8.2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
&НаКлиенте Процедура РаботаСМассивом10(Команда) // инициализация пустого массива Массив = Новый Массив; // вставка трёх элементов; каждый элемент вставляется в начало Массив.Вставить(0, 10); // (10) Массив.Вставить(0, 100); // (100, 10) Массив.Вставить(0, 1000); // (1000, 100, 10) // определение последнего индекса Сообщить(Массив.ВГраница()); // 2 // вывод на печать Для Индекс = 0 по Массив.ВГраница() Цикл Сообщить(Массив[Индекс]); // 1000 100 10 КонецЦикла; // удаление элемента со значением 100 // для этого сначала находим индекс элемента // если не находим возвращаем Неопределено Индекс = Массив.Найти(100); // 1 // и удаляем элемент по найденному индексу Массив.Удалить(Индекс); // (1000, 10) Сообщить(Массив.ВГраница()); // 1 // удаление всех элементов из массива Массив.Очистить(); КонецПроцедуры |
Как из обычного получить фиксированный (неизменяемый) массив в 1с 8.3, 8.2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
&НаКлиенте Процедура РаботаСМассивом11(Команда) Числа = Новый Массив; Числа.Добавить(1); Числа.Добавить(2); Числа.Добавить(3); ФиксированныеЧисла = Новый ФиксированныйМассив(Числа); // Получился константный массив на основе обычного: // нельзя менять значения имеющихся элементов // нельзя добавлять новые элементы // нельзя удалять имеющиеся элементы КонецПроцедуры |