-
м. Львів, Україна
-
(044) 222-73-76
-
info@spilka-it.com.ua
Масиви на платформі Підприємство 8.3
Зміст:
Масив (тип значення 1С:Підприємство Масив) –це найпростіша універсальна колекція значень в інформаційній системі 1С:Підприємство, де елементи впорядковані за індексом (нумерація починається з 0). Тип значення елементів може бути будь-який, включаючи тип значення Масив. Доступ до елементів масиву здійснюється через індекс, за номером якого можна отримати доступ до значення елемента на платформі 1С:Підприємство 8.3.
1. Опис зі синтакс-помічника
Доступність синтакс-помічника: Тонкий клієнт 1С:Підприємство, веб-клієнт, мобільний клієнт, сервер, товстий клієнт, зовнішнє з’єднання, мобільний додаток (клієнт), мобільний додаток (сервер). Можливий обмін з сервером. Серіалізується. Даний об’єкт може бути серіалізований в/з XDTO. Тип XDTO, відповідає даному об’єкту, визначається у просторі імен {http://v8.1c.ru/8.1/data/core}. Ім’я типу XDTO: Array.
2. Як сформувати новий Масив
Щоб сформувати новий Масив, потрібно привласнити змінній типу значення «Масив». Кожен Елемент в такому Масиві 1С:Підприємство, отримує тип значення «Невизначено». В параметрах створення можна вказати, який Масив хочете створити.
Для порожньго Масиву:
Мій Новий Масив = Новий Масив();
Для створення одновимірного Масиву (одна колонка):
Мій Новий Масив = Новий Масив (Число Елементів);
Для створення N-вимірного Масиву, де кожен Елемент також Масив:
Мій Новий Масив = Новий Масив (Елементів Першого Рівня, Елементів Другого Рівня, …, Елементів N-рівня);
У цьому випадку кожен Елемент першого рівня буде мати тип значення Масив, всередині якого кожен Елемент другого рівня буде також типом значення Масив і так далі, де на N-рівні Елементи будуть з типом значення «Невизначено». Отже, кількість Елементів у такому Масиві буде дорівнювати: Елементів Першого Рівня * Елементів Другого Рівня* … * Елементів N-рівня
3. Способи заповнення Масиву
Існує кілька способів заповнення Масиву.
Метод «Додати».
Додає Елемент в кінець Масиву:
МійНовийМасив.Додати(«Рядок») Поле типу Рядок
МійНовийМасив.Додати(42) Поле типу Число
МійНовийМасив.Додати(‘20190315123501’) Поле типу Дата склад Дата і час
МійНовийМасив.Додати(‘20190315’) Поле типу Дата склад Дата
Також будь-якому Елементу може бути присвоєний тип значення «Масив». Наприклад:
МійНовийМасив.Додати(Новий Масив) Поле типу Масив
Метод «Вставити».
Слід відрізняти його від Методу «Додати». Останній додає Елемент в кінець Масиву, а перший присвоює нове значення Елементу:
МійНовийМасив.Вставити(НомерІндекса,НовеЗначеннеЕлемента)
Метод «Кількість».
За допомогою методу можливе отримання кількості Елементів у Масиві. Слід звернути увагу, що Кількість буде завжди на одиницю більше останнього значення Індексу:
МійНовийМасив.Кількість()
Метод «Знайти». Дозволяє знайти унікальний Елемент в Масиві, якщо такий елемент не буде знайдений, то повертає значення «Невизначено»:
МійНовийМасив.Знайти(«Слово»)
МійНовийМасив.Знайти(42)
МійНовийМасив.Знайти(’20190315’)
Метод «Очистити».
Дозволяє видалити усі Елементи Масиву, роблячи його порожнім:
МійНовийМасив.Очистити()
Метод «Отримати».
Дозволяє отримати значення Елемента за його Індексом:
МійНовийМасив.Отримати(ІндексЕлемента)
Метод «Видалити».
Дозволяє видалити Елемент з Масиву за Індексом:
МійНовийМасив.Видалити(ІндексЕлемента, що видаляється)
Метод «Встановити».
Дозволяє встановити нове значення Елемента за Індексом, коли використання оператора []
(наприклад, МійНовийМасив[ІндексЕлемента]) неможливо.
МійНовийМасив.Встановити(ІндексЕлемента,що Заміняють,НовеЗначенняЕлемента)
Метод «ВКордон».
Дозволяє отримати найбільший Індекс в Масиві. Якщо Масив пустий, то повертає-1:
МійНовийМасив.ВКордон
4. Обхід Елементів Колекції
Для даної Колекції значень доступний обхід Елементів Колекції за допомогою оператора «Для кожного». При обході в Циклах обираються значення Елементів Масиву в порядку зростання Індексу:
Для кожного Елемент З МасивЦикл
<Опис подій / обчислень>
КінецьЦиклу;
Наприклад, за необхідності замінити Елементи на інші значення:
НовеЧисловеЗначення = 5;
Для кожного ЕлементЗМійНовийМасивЦикл
Елемент = НовеЧисловеЗначення;
НовеЧисловеЗначення = (НовеЧисловеЗначення + 7) / 2;
КінецьЦиклу;
При цьому можливий також обхід Масиву за іншим порядком, використовуючи оператор «Для». Слід враховувати, що у такому випадку необхідно вказувати межу Масиву. Інакше після закінчення обходу циклу буде викликана помилка «Індекс знаходиться за межами Масиву»:
Для Ітератор = 0ПоМійНовийМасив.ВКордон()Цикл
<Опис подій / обчислень>
КінецьЦиклу;
Наприклад, при необхідності вибрати з Масиву всі значення типу Число і перенести їх до нового Масиву:
МасивДляЧисел = Новий Масив();
Для Ітератор = 0ПоМійНовийМасив.ВКордон()Цикл
ЗначенняЕлемента = МійНовийМасив[Ітератор];
Якщо Значення Елемента = Тип («Число») Тоді
МасивДляЧисел.Додати(ЗначенняЕлемента);
МійНовийМасив.Видалити(Ітератор);
КінецьЯкщо;
КінецьЦиклу;
При виконанні обходу багатовимірних Масивів виконуються ті ж конструкції, тільки з урахуванням вимірності Масивів. Так, наприклад, для тривимірного Масиву обхід його елементів буде виглядати наступним чином:
Для Ітератор1 = 0ПоМасив.ВКордон()Цикл
Повідомити (Масив[Ітератор1]);
Для Ітератор2 = 0ПоМасив[Ітератор1].ВКордон()Цикл
Повідомити (Масив[Ітератор1][Ітератор2]);
Для Ітератор3 = 0ПоМасив[Ітератор1][Ітератор2].ВКордон()Цикл
Повідомити (Масив[Ітератор1] [Ітератор2][Ітератор3]);
КінецьЦиклу;
КінецьЦиклу;
КінецьЦиклу;
Фахівець компанії Іван Каплін.

