Перейти до контенту

Як працювати з масивами в 1С

У програмі 1С можна створювати масиви і використовувати функції, пов’язані з ними. Завдяки цьому ви зможете впорядкувати елементи і будете звертатися до них за індексом. Щоб працювати з колекціями значень, треба розбиратися в програмуванні. Адже всі дані доведеться вводити вручну – без графічного інтерфейсу, кнопок або діалогових вікон. Наприклад, щоб перетворити в 1С масив в рядок і розділити її на групу подстрок, використовують оператори, які входять в синтаксис утиліти. Для цього потрібно хоча б загальне уявлення про алгоритми.

Як працювати з масивами в 1С

Застосування масивів в 1С допомагає впорядкувати використовувані в роботі елементи.

Про масивах

Це програмний набір елементів. Він служить для:

  • Відбору значень.
  • Сортування. Кожній позиції в масиві присвоюється індекс. Це полегшує пошук. І ви можете послатися на об’єкт, написавши його номер.
  • Об’єднання і збереження записів.
  • Поділу груп, створення подстрок.
  • Масив – сам по собі об’єкт. До нього буде прив’язана змінна. Можна звернутися до окремих його частин або використовувати його цілком в процедурах. Наприклад, можна об’єднати групу значень «Співробітники відділу N» і внести туди імена і прізвища працівників.

Проведемо аналогію. Уявіть книжкову шафу. Книги в ньому розставлені по різним «осередкам». Якщо вести облік, ви будете знати, де знаходиться кожен об’єкт. І без праці його дістанете. Але якщо книги, журнали і газети хаотично розкидані на столі, пошук потрібної речі затягнеться. Хоча це не відображає всі можливості унікальних колекцій.

створення

Робота з масивами 1С починається з їх створення. Потрібно «місце дії» – поле, в якому ви будете вводити код.

  1. Відкрийте «Конфігуратор» ( «Конфігурація»).
  2. Клацніть правою кнопкою миші по пункту «Обробка».
  3. Виберіть «Додати».
  4. З’явиться підменю «Обработка1». Виділіть її. Інформація про нього відобразиться в робочій області.
  5. На вкладці «Основні» введіть «Ім’я». Скажімо, «ТестовийМассів».
  6. Відкрийте розділ «Форми».
  7. Натисніть на значок у вигляді лупи.
  8. Відзначте опцію «Форма обробки».
  9. Клацніть на «Готово».
  10. Відкриється вікно з трьома фреймами. У правому верхньому перейдіть в закладку «Команди».
  11. Іконка в вигляді плюса, щоб додати позицію.
  12. З’явиться пункт «команда1». Виділіть її.
  13. В поле «Ім’я» введіть назву. Наприклад, «ТестовиеЗначенія». Скопіюйте його в «Тема».
  14. У рядку «Дія» натисніть на лупу.
  15. Пункт «Створити на клієнті» і «OK».
  16. Ось і модуль, в якому можна вводити код.

Зразок роботи масиву

Щоб виводити проміжний результат, створіть «кнопку». Навіщо вона потрібна в масиві – ви зрозумієте трохи пізніше.

  1. Перейдіть на вкладку «Форми». Вона внизу.
  2. Клацніть правою кнопкою миші на «Командна панель».
  3. «Додати – Кнопка».
  4. Придумайте їй будь-яку назву. Або можете залишити те, яке видано за замовчуванням.
  5. В поле «Ім’я команди» натисніть на піктограму у вигляді трьох крапок.
  6. Виберіть «ТестовиеЗначенія». Якщо назвали команду по-іншому, там буде інший заголовок.

виклик форми

Тепер можна приступати до роботи з колекціями. Але не думайте, що в 1С відразу зможете розкласти рядок в масив. Краще почати з чогось легше. Хоча всі функції – це набір операторів, які треба просто запам’ятати.

  1. Відкрийте закладку «Модуль».
  2. Текст, який йде після двох косих рисок (два слеша – «//») можна видалити. Він виглядає приблизно так «// Вставити вміст обробника». Це пояснення. Їх пишуть програмісти, щоб не заплутатися в коді.
  3. Свій текст пишіть між операторами «Процедура» і «КонецПроцедури».
  4. Тепер створіть набір значень. Придумайте змінну, яка буде умовно його позначати. Припустимо, «ПервийМассів».
  5. Її треба пов’язати з об’єктом. Для цього введіть команду «ПервийМассів = Новий масив ()». Це колекція, в якій може бути необмежена кількість елементів. Якщо у вас фіксований розмір, вкажіть його після команди в дужках «Новий масив (5)». Відповідно, двовимірна колекція буде виглядати «Новий масив (7, 5)». Можна створювати багатовимірні набори.
  6. При введенні можуть з’явитися підказки, які пропонують відповідні оператори.
  7. Слова розрізняються за кольором. У змінних одна забарвлення, у функцій – інша.
  8. Після кожної команди ставте крапку з комою «;». І для зручності починайте з нового абзацу.
  9. З порожнім безліччю нічого зробити не можна. Ні впорядкувати, ні вивести, ні розкласти рядок в масив в 1С. Тому треба вставити в нього елементи.
  10. Введіть «ПервийМассів.Добавіть (значення1);». Потім «ПервийМассів.Добавіть (значення2);» і так далі.
  11. Об’єкти нумеруються з нуля. Тобто змінної «значення1» буде привласнений індекс «0». Можете самі заповнювати колекцію зі «Значеніе0», щоб не переплутати.

Для чого все це? І навіщо та загадкова «кнопка»? Спробуємо запустити простеньку функцію.

  1. Під колекцією напишіть команду «Повідомити (ПервийМассів [0]);” У квадратних дужках вказано індекс елемента. Тобто адреса нашого «Значеніе0».
  2. Відформатуйте модуль. Це перевірка на наявність помилок. У великих блоках можна щось недоробити через неуважність: чи не поставити крапку з комою, що не закрити дужку, неправильно написати змінну. Компілятор на це вкаже.
  3. Натисніть на кнопку у вигляді знака «Плей» (трикутник в колі), щоб запустити написану вами програму.
  4. Натисніть на «Сервіс» і виберіть вашу кнопку.
  5. Натисніть її.
  6. З’явиться напис «Значеніе0». Це і є результат виконання функції.

Показана найпростіша операція, щоб ви зрозуміли, як взагалі працюють масиви. З ними можна створювати складні і багаторівневі програми. Виводити об’єкти, сортувати, видаляти повтори, розбивати на набір подстрок, об’єднувати, розділяти, шукати відомості. Потрібно лише знати оператори.

Тестова форма

функції

Всі доступні функції є в довіднику програми. Перерахуємо кілька, щоб показати принцип.

Як перетворити масив 1С в рядок:

ТестМассів = Новий Масив (4);
ТестМассів [0] = Це;
ТестМассів [1] = Робиться;
ТестМассів [2] = Так;
СтрокаТест = ЗначеніеВСтрокуВнутр (ТестМассів);
Повідомити (СтрокаТест);

Виводите на «Кнопку» і отримуєте фразу. Це може бути частиною великого модуля – в такому випадку оператор «Повідомити» не потрібен.

Щоб в 1С розкласти рядок в масив підрядків, потрібен роздільник. Умовна позначка, після якої текст буде ділитися. Припустимо, є слово «Протокол». І ми поставимо роздільник «О». Введіть команду «ТестМассів = РазложітьСтрокуВМассів (Протокол,« О »);» Вийде окремо «Пр», «Т», «К» і «Л». Роздільник стертий. А слово розділене на кілька подстрок.

Ось як це можна застосувати на практиці. У вас є масив з ПІБ співробітників. І вам потрібно, щоб при виборі позиції автоматично заповнювалися поля «Прізвище», «Ім’я» і «батькові». Для цього ПІБ треба розбити на три складових. Як роздільник використовуйте «пробіл».

Робота масиву Співробітники

Зазвичай для цього використовується складний модуль: цикл з великою кількістю операторів. Циклічні блоки з умовою будуються за принципом «Якщо (умова), тоді (действіе1), інакше (действіе2)». Спочатку програма перевіряє, чи виконується умова. Якщо так, то вона запускає першу функцію. Якщо немає – другу.

Цикл перевірить кожен символ в рядку. Якщо там немає роздільник, він продовжує далі. Якщо там є розділовий знак, який він додає значення в набір подстрок. Там можуть використовуватися і інші оператори: наприклад, «СокрЛП» – скорочення певних знаків праворуч і ліворуч від рядка.

Кожен модуль треба «закінчувати», щоб утиліта припинила виконання процедури. На циклі з «Якщо» цей оператор – «КонецЕсли». На циклі без умов – «КонецЦікла». Кожну функцію треба окремо завершувати.

Пошук і сортування

У колекціях може перебувати величезна кількість даних. Треба навчитися їх шукати і сортувати.

Щоб запустити пошук в масиві в 1С, використовуйте оператор «Знайти». Відшукати потрібне значення можна і візуально. Але якщо там сотні елементів, краще створити додатковий модуль і запустити підпрограму. Покажемо на прикладі простої функції. Але це підійде для будь-яких блоків.

МассівТест = Новий Масив (3);
МассівТест [0] = “Телефон»;
МассівТест [1] = “Ноутбук»;
МассівТест [2] = «Комп’ютер»;
Індекс = МассівТест.Найті ( «Телефон»);
Якщо Індекс <> Не визначено Тоді
Повідомити ( «Пошук завершений» + МассівТест [Індекс]);

І не забудьте поставити «завершальний оператор».

Колекція подана для прикладу. Ми створили набір з трьох значень. І зробили невеличкий цикл. Якщо утиліта не знайде відповідний елемент, вона видасть повідомлення «Не визначено». Якщо знайде, покаже результат.

Сортування масиву 1С просто незамінна при роботі з великим об’ємом даних. У них же треба якось орієнтуватися. Краще розставити їх в певному порядку. Припустимо, є у вас колекція «ВашМассів». Щоб привести її «в порядок»

ТестСпісок = Новий СпісокЗначеній;
ТестСпісок.ЗагрузітьЗначенія (ВашМассів);
ТестСпісок.СортіроватьПоЗначенію (НаправленіеСортіровкі.Возр);
ВашМассів = ТестСпісок.ВигрузітьЗначенія ();

Замість «Вік» можете поставити «спадання». Також результат можна вивантажити в таблицю значень:

ТестоваяТабліца = Новий ТабліцаЗначеній;
ТестоваяТабліца.Колонкі.Добавіть ( «Колонка»);
ТестоваяТабліца.ЗагрузітьКолонку (ВашМассів, «Колонка»);
ТестоваяТабліца.Сортіровать ( «Колонка спад»);
ВашМассів = ТестоваяТабліца.ВигрузітьКолонку ( «Колонка»)

Існують і складні методи сортування: «Бульбашкова», «Швидка», «Шейкер», «Рекурсія». У них багаторівневі і довгі алгоритми.

Таблиці і списки

Інформацію можна переправляти між різними видами колекцій. Щоб перенести в 1С масив в таблицю значень:

МассівТелеф = Новий Масив;
МассівТелеф.Добавіть ( «Смартфон»);
МассівТелеф.Добавіть ( «Планшет»);
МассівТелеф.Добавіть ( «Телефон»);
ТабліцаТест = Новий ТабліцаЗначеній;
ТабліцаТест.Колонкі.Добавіть ( «Мобільники»);
ТабліцаТест.Добавіть ();
ТабліцаТест.Добавіть ();
ТабліцаТест.Добавіть ();
ТабліцаТест.ЗагрузітьКолонку (МассівТелеф, «Мобільники»);
Для Кожного Рядок З ТабліцаТест Цикл
Повідомити (Строка.Мобільнікі);

Не забудьте поставити в кінці оператор завершення циклу.

Приклад сортування масиву

Перетворити в 1С масив в список значень зовсім просто. Достатньо лише вивантажити дані з однієї колекції до іншої.

НовСпісок = Новий СпісокЗначеній ();
НовСпісок.ЗагрузітьЗначенія (ВашМассів);

У програмуванні одну проблему можна вирішити різними способами. І 1С – не виняток. Лінійні алгоритми, цикли, цикли з умовою, цикли з лічильником. Варіантів багато. Щоб орієнтуватися в масиві, потрібні деякі навички роботи в 1С.

Залишити відповідь