Удаление строки из табличной части документа – распространенная операция в программировании на платформе 1С. Это может потребоваться при корректировке данных, удалении ошибочных записей или реализации других бизнес-логики.
Основные шаги
- Получение ссылки на табличную часть:Определите название табличной части в вашем документе.
Получите ссылку на эту табличную часть с помощью синтаксиса:
ДокументОбъект.ТабличнаяЧасть
- Например, для документа "РеализацияТоваровУслуг" табличная часть с товарами может называться "Товары".
- Выбор строки для удаления:По индексу: Если вы знаете точный номер строки, то можете использовать его для удаления.
По условию: Если нужно удалить строки, удовлетворяющие определенному условию (например, с нулевой ценой), то можно использовать цикл и проверку каждой строки. - Удаление строки:Используйте метод Удалить() табличной части для удаления выбранной строки.
Пример кода
// Получаем ссылку на документ
ДокументОбъект = Документы.РеализацияТоваровУслуг.ПолучитьОбъект();
// Получаем ссылку на табличную часть "Товары"
ТабличнаяЧастьТовары = ДокументОбъект.Товары;
// Удаляем строку с индексом 2
ТабличнаяЧастьТовары.Удалить(2);
// Удаляем все строки, где цена равна нулю
Для Каждого Строка Из ТабличнаяЧастьТовары Цикл
Если Строка.Цена = 0 Тогда
ТабличнаяЧастьТовары.Удалить(Строка);
КонецЕсли;
КонецЦикла;
Важные моменты
- Индексация строк: При удалении строк индексы остальных строк смещаются. Поэтому, если вы удаляете строки в цикле, то нужно начинать цикл с последней строки и двигаться к первой.
- Сохранение изменений: После удаления строк не забудьте сохранить изменения в документе.
- Проверка на пустоту: Перед удалением строки рекомендуется проверить, не является ли табличная часть пустой.
- Оптимизация кода: При удалении большого количества строк следует оптимизировать код, чтобы избежать лишних обращений к базе данных.
Полный пример удаления всех строк с отрицательной ценой
// Получаем ссылку на документ
ДокументОбъект = Документы.РеализацияТоваровУслуг.ПолучитьОбъект();
// Получаем ссылку на табличную часть "Товары"
ТабличнаяЧастьТовары = ДокументОбъект.Товары;
// Создаем временную переменную для хранения индекса строки
ИндексСтроки = ТабличнаяЧастьТовары.Количество();
// Цикл по табличной части, начиная с последней строки
Пока ИндексСтроки > 0 Цикл
// Уменьшаем индекс на 1
ИндексСтроки = ИндексСтроки - 1;
// Если цена отрицательная, удаляем строку
Если ТабличнаяЧастьТовары[ИндексСтроки].Цена < 0 Тогда
ТабличнаяЧастьТовары.Удалить(ИндексСтроки);
КонецЕсли;
КонецЦикла;
// Сохраняем изменения в документе
ДокументОбъект.Записать();
Этот код позволяет эффективно удалить все строки с отрицательной ценой из табличной части "Товары" документа "РеализацияТоваровУслуг".
Примечание: Конкретный синтаксис и названия объектов могут отличаться в зависимости от вашей конфигурации 1С.