ТаблицаЗначений.Удалить

Методы · Delete

Удаляет строку таблицы значений.

Синтаксис

Удалить(<Строка>)
Удалить(<Индекс>)

Примеры платформы

ТаблицаЦен.Удалить(Индекс);
Полное описание, параметры и ограничения

ТаблицаЗначений.Удалить (ValueTable.Delete)

ТаблицаЗначений (ValueTable)

Удалить (Delete)

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

Вариант синтаксиса: Удаление по объекту

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

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

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

<Индекс> (обязательный)
Тип: Число.
Индекс строки, которую необходимо удалить.
Описание:

Удаляет строку таблицы значений.

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

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

Пример:

ТаблицаЦен.Удалить(Индекс);

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

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

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

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

Удалить строки с нулевым количеством без пропусков

После удаления индексы сдвигаются. Обход с конца сохраняет корректность обработки соседних строк.

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

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

Подготовка

  1. Таблица создаётся в памяти сервера.

  2. Две нулевые строки расположены подряд, чтобы обнаружить пропуск при неправильном обходе.

Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("Количество");
Таблица.Добавить().Количество = 0;
Таблица.Добавить().Количество = 0;
Таблица.Добавить().Количество = 5;
Индекс = Таблица.Количество() - 1;
Пока Индекс >= 0 Цикл
    СтрокаТаблицы = Таблица.Получить(Индекс);
    Если СтрокаТаблицы.Количество = 0 Тогда
        Таблица.Удалить(Индекс);
    КонецЕсли;
    Индекс = Индекс - 1;
КонецЦикла;
Сообщить(Таблица.Количество());
Сообщить(Таблица.Итог("Количество"));

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

  1. Начинаем с последнего индекса.

  2. После удаления текущей строки необработанные строки слева сохраняют индексы.

  3. Уменьшаем индекс независимо от удаления.

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

  1. Остаётся одна строка, итог 5.

  2. Уберите все Добавить: пустая таблица должна обработаться без ошибки.

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

Удалены обе нулевые строки, оставлена строка с количеством 5.

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

  1. Не удаляйте строки индексным обходом вперёд без поправки индекса.

  2. Правило нулевого количества здесь учебное; в реальных данных оно может быть другим.

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

Вставить срочный товар и передвинуть строку в начало

Показываем разницу между добавлением в конец, вставкой в заданную позицию и перемещением существующей строки.

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

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

Подготовка

  1. Выполняйте на сервере, данные только в памяти.

  2. Смещение -1 применяется к строке, которая находится в позиции 1.

Товары = Новый ТаблицаЗначений;
Товары.Колонки.Добавить("Название");
Товары.Добавить().Название = "Книга";
Товары.Добавить().Название = "Ручка";
Срочный = Товары.Вставить(1);
Срочный.Название = "Тетрадь";
Товары.Сдвинуть(Срочный, -1);
Для Каждого СтрокаТовара Из Товары Цикл
    Сообщить(СтрокаТовара.Название);
КонецЦикла;
Копия = Товары.Скопировать();
Копия.Получить(0).Название = "Изменено в копии";
Сообщить(Товары.Получить(0).Название);
Копия.Удалить(0);
Сообщить(Копия.Количество());
Копия.Очистить();
Сообщить(Копия.Количество());
Сообщить(Копия.Колонки.Количество());

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

  1. Добавить создаёт книгу и ручку в конце таблицы.

  2. Вставить(1) создаёт новую строку между ними; Сдвинуть перемещает эту строку в начало.

  3. Скопировать создаёт отдельные строки; изменение имени в копии не меняет исходную ячейку.

  4. Удалить удаляет одну строку, Очистить удаляет все строки копии и оставляет её колонки.

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

  1. Порядок вывода: Тетрадь, Книга, Ручка; исходное первое название после редактирования копии — Тетрадь.

  2. После удаления в копии 2 строки, после очистки 0 строк и 1 колонка.

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

Исходная таблица остаётся с тремя товарами; копия очищена.

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

  1. Вставить создаёт новую строку; не используйте его для перемещения уже существующей.

  2. Копирование значения-объекта в ячейке не гарантирует глубокую копию вложенного объекта; здесь ячейки содержат строки.

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

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

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

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

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