• м. Львів, Україна
  • (044) 222-73-76
  • info@spilka-it.com.ua

Статті

Масиви на платформі Підприємство 8.3

Зміст:

1. Опис зі синтакс-помічника

2. Як сформувати новий Масив

3. Способи заповнення Масиву

4. Обхід Елементів Колекції

 

Масив (тип значення 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]);

КінецьЦиклу;

КінецьЦиклу;

КінецьЦиклу;

 

Фахівець компанії  Іван Каплін.

ПРО НАС
Українська Спілка Автоматизаторів Бізнесу. Програми На Базі Підприємство 8, BAS.