Удаляет все значения из массива.
Синтаксис
Очистить()Примеры платформы
МассивСтрок.Очистить();Полное описание, параметры и ограничения
Массив.Очистить (Array.Clear)
Массив (Array)
Очистить (Clear)
Доступен, начиная с версии 8.0.
Синтаксис:
Очистить()
Описание:
Удаляет все значения из массива.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Пример:
МассивСтрок.Очистить();
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Удалить товар из массива, только если он найден
Проверяется именно Неопределено, а не заполненность индекса: нулевой индекс означает найденный первый элемент.
Где и как запускать
Фрагмент внутри учебной процедуры; массив существует только в памяти.
Подготовка
Поместите код в тело учебной команды или процедуры.
Не требуется создавать справочник товаров: используются обычные строки.
Товары = Новый Массив;
Товары.Добавить("Книга");
Товары.Добавить("Тетрадь");
Индекс = Товары.Найти("Книга");
Если Индекс <> Неопределено Тогда
Товары.Удалить(Индекс);
КонецЕсли;
Сообщить(Товары.Количество());
Сообщить(Товары[0]);
Товары.Очистить();
Сообщить(Товары.Количество());Разбор по шагам
Создаём массив из двух товаров.
Найти возвращает индекс 0 для книги. Ноль здесь является правильным результатом.
При наличии индекса удаляем элемент; оставшаяся тетрадь получает индекс 0.
Выводим количество и оставшееся значение, затем очищаем массив целиком.
После Очистить сам объект массива остаётся доступен, но элементов в нём нет.
Как проверить результат
Ожидаемые сообщения: 1, Тетрадь, 0.
Ищите Ручка вместо Книга: удаление не выполняется, до очистки остаются два товара.
Поставьте точку останова на Если и проверьте значение индекса при успешном поиске первого элемента.
Ожидаемый результат
Отсутствующий товар не вызывает удаления по ошибочному индексу. Очистка удаляет элементы только учебного массива.
На что обратить внимание
Не применяйте ЗначениеЗаполнено к результату Найти: для числа 0 получится Ложь.
После удаления индексы последующих элементов сдвигаются. При удалении в цикле заранее выберите безопасный порядок обхода.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Выделить и снять выделение меток по идентификаторам
Получаем идентификаторы конкретных Книга и Ручка. Меняем только выделение, не значения, порядок или количество меток.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
Создайте отдельную учебную внешнюю обработку с пустой управляемой основной формой. Каждую задачу запускайте в своей копии формы.
Не добавляйте вручную реквизит ЗначениеПримера, поле ПолеПримера и команду УчебноеДействие: их создаст код.
В свойствах формы → События свяжите ПриСозданииНаСервере с одноимённой процедурой. Вставьте весь модуль, включая клиентские и серверные процедуры.
Сохраните учебную EPF и откройте через Файл → Открыть в тонком или толстом клиенте Windows. Рабочие данные не читаются и не записываются.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Новые = Новый Массив;
ТипРеквизита = Новый ОписаниеТипов("СписокЗначений");
Новые.Добавить(Новый РеквизитФормы("ЗначениеПримера", ТипРеквизита));
ЭтаФорма.ИзменитьРеквизиты(Новые);
ЭтаФорма.ЗначениеПримера = Новый СписокЗначений;
Поле = Элементы.Добавить("ПолеПримера", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеВвода;
Поле.ПутьКДанным = "ЗначениеПримера";
Поле.Заголовок = "Выделение учебных меток";
ЭтаФорма.ЗначениеПримера.Добавить("book", "Книга");
ЭтаФорма.ЗначениеПримера.Добавить("pen", "Ручка");
Поле.РасширенноеРедактированиеМножественныхЗначений = Истина;
Поле.РазрешитьДублированиеМножественныхЗначений = Ложь;
Поле.РазрешитьВводПустыхМножественныхЗначений = Ложь;
Поле.ГиперссылкаМножественныхЗначений = Ложь;
Поле.КнопкаОткрытия = Истина;
Поле.Ширина = 60;
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить выделение";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Если ЗначениеПримера.Количество() <> 2 Тогда
Сообщить("Для проверки исходных двух меток переоткройте свою форму");
Возврат;
КонецЕсли;
Книга = ЗначениеПримера.НайтиПоЗначению("book");
Ручка = ЗначениеПримера.НайтиПоЗначению("pen");
Если Книга = Неопределено Или Ручка = Неопределено Тогда
ВызватьИсключение "Не найдены две собственные метки book и pen";
КонецЕсли;
Поле = Элементы.ПолеПримера;
ИдентификаторКниги = Книга.ПолучитьИдентификатор();
ИдентификаторРучки = Ручка.ПолучитьИдентификатор();
Идентификаторы = Новый Массив;
Идентификаторы.Добавить(ИдентификаторКниги);
Поле.УстановитьВыделенныеМножественныеЗначения(Идентификаторы);
Выделенные = Поле.ПолучитьВыделенныеМножественныеЗначения();
Сообщить(Выделенные.Количество() = 1 И Выделенные.Найти(ИдентификаторКниги) <> Неопределено);
Идентификаторы.Очистить();
Идентификаторы.Добавить(ИдентификаторРучки);
Поле.УстановитьВыделенныеМножественныеЗначения(Идентификаторы);
Выделенные = Поле.ПолучитьВыделенныеМножественныеЗначения();
Сообщить(Выделенные.Количество() = 1 И Выделенные.Найти(ИдентификаторРучки) <> Неопределено);
Идентификаторы.Очистить();
Поле.УстановитьВыделенныеМножественныеЗначения(Идентификаторы);
Сообщить(Поле.ПолучитьВыделенныеМножественныеЗначения().Количество() = 0);
Сообщить(ЗначениеПримера.Количество() = 2);
Сообщить(Книга.Значение = "book" И Ручка.Значение = "pen");
КонецПроцедуры
Разбор по шагам
Находим элементы по значению и проверяем результат до получения идентификаторов.
ПолучитьИдентификатор возвращает идентификатор элемента, не индекс 0 или 1.
УстановитьВыделенныеМножественныеЗначения получает массив числовых идентификаторов.
ПолучитьВыделенныеМножественныеЗначения проверяется через Найти: порядок возвращённого массива не предполагается.
Пустой массив снимает выделение. Исходные значения и количество остаются прежними.
Как проверить результат
Пять сообщений Истина.
После команды ни одна метка не выделена, обе по-прежнему присутствуют.
Ожидаемый результат
Безопасно проверены установка, чтение и сброс выделения множественных значений.
На что обратить внимание
Методы выделения доступны Windows/веб-клиенту; не переносите клиентский обработчик в мобильный клиент без проверки доступности.
После удаления элемента его старый идентификатор нельзя использовать как идентификатор нового элемента.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.