Массивы в языке 1С 8.3, 8.2 (в примерах)
Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.
2021-02-24T11:15:38+00:00Дата Если Массивы Математика Процедуры Строки Циклы
Диалоги ОписаниеТипов ОперационнаяСистема Приложение Соответствие
СписокЗначений Структура ТаблицаЗначений ФайловаяСистема Формат
ОбщиеОбъекты Запросы ПрикладныеОбъекты УниверсальныеФункции
См. урок для начинающих по массивам в 1С
Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)
Смотреть видео с демонстрацией выполнения кода
/// Как создать массив (сразу нужного размера) в 1с 8.3, 8.2 &НаКлиенте Процедура Пример1(Команда) // в массиве сразу 3 элемента Числа = Новый Массив(3); // инициализируем их значениями Числа[0] = 5; Числа[1] = Числа[0] * 2; // 10 Числа[2] = Числа[1] * 2; // 20 // выводим на печать Для Каждого ЭлементМассива из Числа Цикл Сообщить(ЭлементМассива); // 5 10 20 КонецЦикла; КонецПроцедуры /// Как создать пустой массив (с последующим добавлением /// элементов) в 1с 8.3, 8.2 &НаКлиенте Процедура Пример2(Команда) // в массиве 0 элементов Числа = Новый Массив; // добавляем последовательно три элемента Числа.Добавить(100); // (100) Числа.Добавить(300); // (100, 300) Числа.Добавить(500); // (100, 300, 500) // выводим на печать Для Каждого ЭлементМассива из Числа Цикл Сообщить(ЭлементМассива); // 100 300 500 КонецЦикла; КонецПроцедуры /// Как обойти все элементы массива по индексу в 1с 8.3, 8.2 &НаКлиенте Процедура Пример3(Команда) // инициализируем массив: (100, 300, 500) Числа = Новый Массив; Числа.Добавить(100); Числа.Добавить(300); Числа.Добавить(500); // пробегаемся от первого (с индексом 0) до последнего // элемента (с индексом Количество - 1). Для Индекс = 0 По Числа.Количество() - 1 Цикл Сообщить(Числа[Индекс]); КонецЦикла; КонецПроцедуры /// Массив может содержать элементы различных типов: числа, /// строки и т.д. &НаКлиенте Процедура Пример4(Команда) Значения = Новый Массив(4); Значения[0] = "HELP"; // ("HELP") Значения[1] = "ME"; // ("HELP", "ME") Значения[2] = "1C"; // ("HELP", "ME", "1C") Значения[3] = Формат(2013, "ЧГ=0"); // ("HELP", "ME", "1C", 2013) Для Каждого ЭлементМассива из Значения Цикл Сообщить(ЭлементМассива); // HELP ME 1C 2013 КонецЦикла; КонецПроцедуры /// Как передать массив в качестве параметра функции в 1с 8.3, 8.2 &НаКлиенте Функция Метод5(МассивПереданныйПоСсылке) МассивПереданныйПоСсылке[0] = 10; Возврат МассивПереданныйПоСсылке[0] * 2; КонецФункции &НаКлиенте Процедура Пример5(Команда) // инициализация массива из одного элемента: (13) Числа = Новый Массив(1); Числа[0] = 13; // значение первого элемента до вызова функции Сообщить(Числа[0]); // 13 // массив ВСЕГДА передается в функцию ПО ССЫЛКЕ, значит, // изменяя массив внутри функции, мы меняем его снаружи Сообщить(Метод5(Числа)); // 20 // значение первого элемента после вызова функции изменилось Сообщить(Числа[0]); // 10 КонецПроцедуры /// Как вернуть массив в качестве результата работы функции /// в 1с 8.3, 8.2 &НаКлиенте Функция Метод6() // инициализация массива (СПАСИБО, ВАМ) Слова = Новый Массив(2); Слова[0] = "СПАСИБО"; Слова[1] = "ВАМ"; Возврат Слова; КонецФункции &НаКлиенте Процедура Пример6(Команда) // инициализация переменной массивом, который возвращает и формирует // функция Метод6 Слова = Метод6(); // вывод на печать Для Каждого ЭлементМассива из Слова Цикл Сообщить(ЭлементМассива); // СПАСИБО ВАМ КонецЦикла; КонецПроцедуры /// Ещё пример на передачу массива в качестве параметра процедуры /// в 1с 8.3, 8.2 &НаКлиенте Процедура Метод7(МойМассив) Если МойМассив <> Неопределено И МойМассив.Количество() > 0 Тогда Сообщить(МойМассив[0]); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура Пример7(Команда) // инициализация массива: (10, 20) Числа = Новый Массив(2); Числа[0] = 10; Числа[1] = 20; // печать первого элемента, переданного массива Метод7(Числа); // 10 Метод7(Неопределено); // ничего Метод7(Новый Массив); // ничего КонецПроцедуры /// Как получить последний элемент массива в 1с 8.3, 8.2 &НаКлиенте Процедура Пример8(Команда) // инициализация массива: ("Кошка", "Собака", "Пантера", "Тигр") Слова = Новый Массив; Слова.Добавить("Кошка"); Слова.Добавить("Собака"); Слова.Добавить("Пантера"); Слова.Добавить("Тигр"); Сообщить(Слова[Слова.Количество() - 1]); // Тигр КонецПроцедуры /// Использование многомерных массивов в 1с 8.3, 8.2 &НаКлиенте Процедура Пример9(Команда) // ( ( (), () ), ( (), () ), ( (), () ) ) Слова = Новый Массив(3, 2); // ( ( "Юрий", "Гагарин" ), ( (), () ), ( (), () ) ) Слова[0][0] = "Юрий"; Слова[0][1] = "Гагарин"; // ( ( "Юрий", "Гагарин" ), ( "Герман", "Титов" ), ( (), () ) ) Слова[1][0] = "Герман"; Слова[1][1] = "Титов"; // ( ( "Юрий", "Гагарин" ), ( "Герман", "Титов" ), // ( "Валентина", "Терешкова" ) ) Слова[2][0] = "Валентина"; Слова[2][1] = "Терешкова"; // обход всех элементов через конструкцию Для Каждого Для Каждого Строка Из Слова Цикл Для Каждого Элемент Из Строка Цикл Сообщить(Элемент); КонецЦикла; Сообщить(" "); КонецЦикла; Сообщить(" "); // обход всех элементов через индекс Для ИндексСтрока = 0 По Слова.Количество() - 1 Цикл Для ИндексСтолбец = 0 По Слова[ИндексСтрока].Количество() - 1 Цикл Сообщить(Слова[ИндексСтрока][ИндексСтолбец]); КонецЦикла; Сообщить(" "); КонецЦикла; КонецПроцедуры /// Вставка, удаление и очистка массива в 1с 8.3, 8.2 &НаКлиенте Процедура Пример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 &НаКлиенте Процедура Пример11(Команда) Числа = Новый Массив; Числа.Добавить(1); Числа.Добавить(2); Числа.Добавить(3); ФиксированныеЧисла = Новый ФиксированныйМассив(Числа); // Получился константный массив на основе обычного: // нельзя менять значения имеющихся элементов // нельзя добавлять новые элементы // нельзя удалять имеющиеся элементы КонецПроцедуры /// Скачать и выполнить эти примеры на компьютере |
Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)
Массивы в языке 1С 8.3, 8.2 (в примерах)
Дата Если Массивы Математика Процедуры Строки Циклы
Диалоги ОписаниеТипов ОперационнаяСистема Приложение Соответствие
СписокЗначений Структура ТаблицаЗначений ФайловаяСистема Формат
ОбщиеОбъекты Запросы ПрикладныеОбъекты УниверсальныеФункции