ИндексыКоллекции.Удалить

Методы · Delete

Удаляет индекс из коллекции.

Синтаксис

Удалить(<Индекс>)
Удалить(<Индекс>)
Полное описание, параметры и ограничения

ИндексыКоллекции.Удалить (CollectionIndexes.Delete)

ИндексыКоллекции (CollectionIndexes)

Удалить (Delete)

Доступен, начиная с версии 8.1.

Вариант синтаксиса: По объекту

Синтаксис:
Удалить(<Индекс>)
Параметры:

<Индекс> (обязательный)
Тип: ИндексКоллекции.
Удаляемый индекс (объект) коллекции.
Вариант синтаксиса: По индексу

Синтаксис:
Удалить(<Индекс>)
Параметры:

<Индекс> (обязательный)
Тип: Число.
Порядковый индекс объекта в коллекции.
Описание:

Удаляет индекс из коллекции.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.1.

Методическая информация

Практические примеры

Добавить индекс для повторного отбора товаров по коду

Индекс ускоряет некоторые операции поиска в таблице значений, но не создаёт новых строк и не заменяет проверку результата.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Серверный контекст. Таблица маленькая специально для проверки результата, а не измерения производительности.

  2. Не путайте индекс поиска ИндексКоллекции и числовую позицию строки.

Товары = Новый ТаблицаЗначений;
Товары.Колонки.Добавить("Код");
Товары.Колонки.Добавить("Количество");
Для Номер = 1 По 3 Цикл
    СтрокаТовара = Товары.Добавить();
    СтрокаТовара.Код = ?(Номер < 3, "A-01", "B-02");
    СтрокаТовара.Количество = Номер;
КонецЦикла;
ИндексКода = Товары.Индексы.Добавить("Код");
Для Каждого ИмяКолонки Из ИндексКода Цикл
    Сообщить("Колонка индекса: " + ИмяКолонки);
КонецЦикла;
Сообщить(Товары.Индексы.Количество());
Найденные = Товары.НайтиСтроки(Новый Структура("Код", "A-01"));
Сообщить(Найденные.Количество());
Товары.Индексы.Удалить(ИндексКода);
Сообщить(Товары.Индексы.Количество());
Повторно = Товары.НайтиСтроки(Новый Структура("Код", "A-01"));
Сообщить(Повторно.Количество());
Товары.Индексы.Добавить("Код,Количество");
Товары.Индексы.Очистить();
Сообщить(Товары.Количество());

Разбор по шагам

  1. Создаём два товара с кодом A-01 и один с кодом B-02.

  2. Добавить возвращает индекс; обход индекса даёт имена входящих в него колонок.

  3. Ищем все совпадения по структуре отбора и повторяем поиск после удаления индекса.

  4. Очистить удаляет все индексы, но сохраняет строки таблицы.

Как проверить результат

  1. С индексом и без него найдено по 2 строки; состав индекса — Код.

  2. После Удалить число индексов равно 0; после Очистить число строк остаётся 3.

Ожидаемый результат

Результат отбора не меняется при удалении индекса.

На что обратить внимание

  1. Индекс занимает память и требует поддержки при изменении таблицы: не добавляйте индекс на каждую колонку автоматически.

  2. Для оценки ускорения используйте отдельные большие учебные данные и замер времени; три строки этого не показывают.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.