У програмі 1С можна створювати масиви і використовувати функції, пов’язані з ними. Завдяки цьому ви зможете впорядкувати елементи і будете звертатися до них за індексом. Щоб працювати з колекціями значень, треба розбиратися в програмуванні. Адже всі дані доведеться вводити вручну – без графічного інтерфейсу, кнопок або діалогових вікон. Наприклад, щоб перетворити в 1С масив в рядок і розділити її на групу подстрок, використовують оператори, які входять в синтаксис утиліти. Для цього потрібно хоча б загальне уявлення про алгоритми.
Застосування масивів в 1С допомагає впорядкувати використовувані в роботі елементи.
Про масивах
Це програмний набір елементів. Він служить для:
- Відбору значень.
- Сортування. Кожній позиції в масиві присвоюється індекс. Це полегшує пошук. І ви можете послатися на об’єкт, написавши його номер.
- Об’єднання і збереження записів.
- Поділу груп, створення подстрок.
- Масив – сам по собі об’єкт. До нього буде прив’язана змінна. Можна звернутися до окремих його частин або використовувати його цілком в процедурах. Наприклад, можна об’єднати групу значень «Співробітники відділу N» і внести туди імена і прізвища працівників.
Проведемо аналогію. Уявіть книжкову шафу. Книги в ньому розставлені по різним «осередкам». Якщо вести облік, ви будете знати, де знаходиться кожен об’єкт. І без праці його дістанете. Але якщо книги, журнали і газети хаотично розкидані на столі, пошук потрібної речі затягнеться. Хоча це не відображає всі можливості унікальних колекцій.
створення
Робота з масивами 1С починається з їх створення. Потрібно «місце дії» – поле, в якому ви будете вводити код.
- Відкрийте «Конфігуратор» ( «Конфігурація»).
- Клацніть правою кнопкою миші по пункту «Обробка».
- Виберіть «Додати».
- З’явиться підменю «Обработка1». Виділіть її. Інформація про нього відобразиться в робочій області.
- На вкладці «Основні» введіть «Ім’я». Скажімо, «ТестовийМассів».
- Відкрийте розділ «Форми».
- Натисніть на значок у вигляді лупи.
- Відзначте опцію «Форма обробки».
- Клацніть на «Готово».
- Відкриється вікно з трьома фреймами. У правому верхньому перейдіть в закладку «Команди».
- Іконка в вигляді плюса, щоб додати позицію.
- З’явиться пункт «команда1». Виділіть її.
- В поле «Ім’я» введіть назву. Наприклад, «ТестовиеЗначенія». Скопіюйте його в «Тема».
- У рядку «Дія» натисніть на лупу.
- Пункт «Створити на клієнті» і «OK».
- Ось і модуль, в якому можна вводити код.
Щоб виводити проміжний результат, створіть «кнопку». Навіщо вона потрібна в масиві – ви зрозумієте трохи пізніше.
- Перейдіть на вкладку «Форми». Вона внизу.
- Клацніть правою кнопкою миші на «Командна панель».
- «Додати – Кнопка».
- Придумайте їй будь-яку назву. Або можете залишити те, яке видано за замовчуванням.
- В поле «Ім’я команди» натисніть на піктограму у вигляді трьох крапок.
- Виберіть «ТестовиеЗначенія». Якщо назвали команду по-іншому, там буде інший заголовок.
Тепер можна приступати до роботи з колекціями. Але не думайте, що в 1С відразу зможете розкласти рядок в масив. Краще почати з чогось легше. Хоча всі функції – це набір операторів, які треба просто запам’ятати.
- Відкрийте закладку «Модуль».
- Текст, який йде після двох косих рисок (два слеша – «//») можна видалити. Він виглядає приблизно так «// Вставити вміст обробника». Це пояснення. Їх пишуть програмісти, щоб не заплутатися в коді.
- Свій текст пишіть між операторами «Процедура» і «КонецПроцедури».
- Тепер створіть набір значень. Придумайте змінну, яка буде умовно його позначати. Припустимо, «ПервийМассів».
- Її треба пов’язати з об’єктом. Для цього введіть команду «ПервийМассів = Новий масив ()». Це колекція, в якій може бути необмежена кількість елементів. Якщо у вас фіксований розмір, вкажіть його після команди в дужках «Новий масив (5)». Відповідно, двовимірна колекція буде виглядати «Новий масив (7, 5)». Можна створювати багатовимірні набори.
- При введенні можуть з’явитися підказки, які пропонують відповідні оператори.
- Слова розрізняються за кольором. У змінних одна забарвлення, у функцій – інша.
- Після кожної команди ставте крапку з комою «;». І для зручності починайте з нового абзацу.
- З порожнім безліччю нічого зробити не можна. Ні впорядкувати, ні вивести, ні розкласти рядок в масив в 1С. Тому треба вставити в нього елементи.
- Введіть «ПервийМассів.Добавіть (значення1);». Потім «ПервийМассів.Добавіть (значення2);» і так далі.
- Об’єкти нумеруються з нуля. Тобто змінної «значення1» буде привласнений індекс «0». Можете самі заповнювати колекцію зі «Значеніе0», щоб не переплутати.
Для чого все це? І навіщо та загадкова «кнопка»? Спробуємо запустити простеньку функцію.
- Під колекцією напишіть команду «Повідомити (ПервийМассів [0]);” У квадратних дужках вказано індекс елемента. Тобто адреса нашого «Значеніе0».
- Відформатуйте модуль. Це перевірка на наявність помилок. У великих блоках можна щось недоробити через неуважність: чи не поставити крапку з комою, що не закрити дужку, неправильно написати змінну. Компілятор на це вкаже.
- Натисніть на кнопку у вигляді знака «Плей» (трикутник в колі), щоб запустити написану вами програму.
- Натисніть на «Сервіс» і виберіть вашу кнопку.
- Натисніть її.
- З’явиться напис «Значеніе0». Це і є результат виконання функції.
Показана найпростіша операція, щоб ви зрозуміли, як взагалі працюють масиви. З ними можна створювати складні і багаторівневі програми. Виводити об’єкти, сортувати, видаляти повтори, розбивати на набір подстрок, об’єднувати, розділяти, шукати відомості. Потрібно лише знати оператори.
функції
Всі доступні функції є в довіднику програми. Перерахуємо кілька, щоб показати принцип.
Як перетворити масив 1С в рядок:
ТестМассів = Новий Масив (4);
ТестМассів [0] = Це;
ТестМассів [1] = Робиться;
ТестМассів [2] = Так;
СтрокаТест = ЗначеніеВСтрокуВнутр (ТестМассів);
Повідомити (СтрокаТест);
Виводите на «Кнопку» і отримуєте фразу. Це може бути частиною великого модуля – в такому випадку оператор «Повідомити» не потрібен.
Щоб в 1С розкласти рядок в масив підрядків, потрібен роздільник. Умовна позначка, після якої текст буде ділитися. Припустимо, є слово «Протокол». І ми поставимо роздільник «О». Введіть команду «ТестМассів = РазложітьСтрокуВМассів (Протокол,« О »);» Вийде окремо «Пр», «Т», «К» і «Л». Роздільник стертий. А слово розділене на кілька подстрок.
Ось як це можна застосувати на практиці. У вас є масив з ПІБ співробітників. І вам потрібно, щоб при виборі позиції автоматично заповнювалися поля «Прізвище», «Ім’я» і «батькові». Для цього ПІБ треба розбити на три складових. Як роздільник використовуйте «пробіл».
Зазвичай для цього використовується складний модуль: цикл з великою кількістю операторів. Циклічні блоки з умовою будуються за принципом «Якщо (умова), тоді (действіе1), інакше (действіе2)». Спочатку програма перевіряє, чи виконується умова. Якщо так, то вона запускає першу функцію. Якщо немає – другу.
Цикл перевірить кожен символ в рядку. Якщо там немає роздільник, він продовжує далі. Якщо там є розділовий знак, який він додає значення в набір подстрок. Там можуть використовуватися і інші оператори: наприклад, «СокрЛП» – скорочення певних знаків праворуч і ліворуч від рядка.
Кожен модуль треба «закінчувати», щоб утиліта припинила виконання процедури. На циклі з «Якщо» цей оператор – «КонецЕсли». На циклі без умов – «КонецЦікла». Кожну функцію треба окремо завершувати.
Пошук і сортування
У колекціях може перебувати величезна кількість даних. Треба навчитися їх шукати і сортувати.
Щоб запустити пошук в масиві в 1С, використовуйте оператор «Знайти». Відшукати потрібне значення можна і візуально. Але якщо там сотні елементів, краще створити додатковий модуль і запустити підпрограму. Покажемо на прикладі простої функції. Але це підійде для будь-яких блоків.
МассівТест = Новий Масив (3);
МассівТест [0] = “Телефон»;
МассівТест [1] = “Ноутбук»;
МассівТест [2] = «Комп’ютер»;
Індекс = МассівТест.Найті ( «Телефон»);
Якщо Індекс <> Не визначено Тоді
Повідомити ( «Пошук завершений» + МассівТест [Індекс]);
І не забудьте поставити «завершальний оператор».
Колекція подана для прикладу. Ми створили набір з трьох значень. І зробили невеличкий цикл. Якщо утиліта не знайде відповідний елемент, вона видасть повідомлення «Не визначено». Якщо знайде, покаже результат.
Сортування масиву 1С просто незамінна при роботі з великим об’ємом даних. У них же треба якось орієнтуватися. Краще розставити їх в певному порядку. Припустимо, є у вас колекція «ВашМассів». Щоб привести її «в порядок»
ТестСпісок = Новий СпісокЗначеній;
ТестСпісок.ЗагрузітьЗначенія (ВашМассів);
ТестСпісок.СортіроватьПоЗначенію (НаправленіеСортіровкі.Возр);
ВашМассів = ТестСпісок.ВигрузітьЗначенія ();
Замість «Вік» можете поставити «спадання». Також результат можна вивантажити в таблицю значень:
ТестоваяТабліца = Новий ТабліцаЗначеній;
ТестоваяТабліца.Колонкі.Добавіть ( «Колонка»);
ТестоваяТабліца.ЗагрузітьКолонку (ВашМассів, «Колонка»);
ТестоваяТабліца.Сортіровать ( «Колонка спад»);
ВашМассів = ТестоваяТабліца.ВигрузітьКолонку ( «Колонка»)
Існують і складні методи сортування: «Бульбашкова», «Швидка», «Шейкер», «Рекурсія». У них багаторівневі і довгі алгоритми.
Таблиці і списки
Інформацію можна переправляти між різними видами колекцій. Щоб перенести в 1С масив в таблицю значень:
МассівТелеф = Новий Масив;
МассівТелеф.Добавіть ( «Смартфон»);
МассівТелеф.Добавіть ( «Планшет»);
МассівТелеф.Добавіть ( «Телефон»);
ТабліцаТест = Новий ТабліцаЗначеній;
ТабліцаТест.Колонкі.Добавіть ( «Мобільники»);
ТабліцаТест.Добавіть ();
ТабліцаТест.Добавіть ();
ТабліцаТест.Добавіть ();
ТабліцаТест.ЗагрузітьКолонку (МассівТелеф, «Мобільники»);
Для Кожного Рядок З ТабліцаТест Цикл
Повідомити (Строка.Мобільнікі);
Не забудьте поставити в кінці оператор завершення циклу.
Перетворити в 1С масив в список значень зовсім просто. Достатньо лише вивантажити дані з однієї колекції до іншої.
НовСпісок = Новий СпісокЗначеній ();
НовСпісок.ЗагрузітьЗначенія (ВашМассів);
У програмуванні одну проблему можна вирішити різними способами. І 1С – не виняток. Лінійні алгоритми, цикли, цикли з умовою, цикли з лічильником. Варіантів багато. Щоб орієнтуватися в масиві, потрібні деякі навички роботи в 1С.