Найти тему

Шаги по удалению строки из табличной части в программе 1С

Оглавление

Удаление строки из табличной части документа – распространенная операция в программировании на платформе 1С. Это может потребоваться при корректировке данных, удалении ошибочных записей или реализации других бизнес-логики.

Основные шаги

  1. Получение ссылки на табличную часть:Определите название табличной части в вашем документе.
    Получите ссылку на эту табличную часть с помощью синтаксиса:


ДокументОбъект.ТабличнаяЧасть

  1. Например, для документа "РеализацияТоваровУслуг" табличная часть с товарами может называться "Товары".
  2. Выбор строки для удаления:По индексу: Если вы знаете точный номер строки, то можете использовать его для удаления.
    По условию: Если нужно удалить строки, удовлетворяющие определенному условию (например, с нулевой ценой), то можно использовать цикл и проверку каждой строки.
  3. Удаление строки:Используйте метод Удалить() табличной части для удаления выбранной строки.

Пример кода

// Получаем ссылку на документ
ДокументОбъект = Документы.РеализацияТоваровУслуг.ПолучитьОбъект();

// Получаем ссылку на табличную часть "Товары"
ТабличнаяЧастьТовары = ДокументОбъект.Товары;

// Удаляем строку с индексом 2
ТабличнаяЧастьТовары.Удалить(2);

// Удаляем все строки, где цена равна нулю
Для Каждого Строка Из ТабличнаяЧастьТовары Цикл
Если Строка.Цена = 0 Тогда
ТабличнаяЧастьТовары.Удалить(Строка);
КонецЕсли;
КонецЦикла;

Важные моменты

  • Индексация строк: При удалении строк индексы остальных строк смещаются. Поэтому, если вы удаляете строки в цикле, то нужно начинать цикл с последней строки и двигаться к первой.
  • Сохранение изменений: После удаления строк не забудьте сохранить изменения в документе.
  • Проверка на пустоту: Перед удалением строки рекомендуется проверить, не является ли табличная часть пустой.
  • Оптимизация кода: При удалении большого количества строк следует оптимизировать код, чтобы избежать лишних обращений к базе данных.

Полный пример удаления всех строк с отрицательной ценой

// Получаем ссылку на документ
ДокументОбъект = Документы.РеализацияТоваровУслуг.ПолучитьОбъект();

// Получаем ссылку на табличную часть "Товары"
ТабличнаяЧастьТовары = ДокументОбъект.Товары;

// Создаем временную переменную для хранения индекса строки
ИндексСтроки = ТабличнаяЧастьТовары.Количество();

// Цикл по табличной части, начиная с последней строки
Пока ИндексСтроки > 0 Цикл
// Уменьшаем индекс на 1
ИндексСтроки = ИндексСтроки - 1;

// Если цена отрицательная, удаляем строку
Если ТабличнаяЧастьТовары[ИндексСтроки].Цена < 0 Тогда
ТабличнаяЧастьТовары.Удалить(ИндексСтроки);
КонецЕсли;
КонецЦикла;

// Сохраняем изменения в документе
ДокументОбъект.Записать();

Этот код позволяет эффективно удалить все строки с отрицательной ценой из табличной части "Товары" документа "РеализацияТоваровУслуг".

Примечание: Конкретный синтаксис и названия объектов могут отличаться в зависимости от вашей конфигурации 1С.