Удаление строк из ТЧ

Автор: | 18.01.2022

1С Как удалить строки из табличной части документа

Практически во всех документах которые есть в типовых конфигурациях 1С присутствует табличная часть и порой даже не одна. Поэтому каждый должен уметь обрабатывать её программно, заполнять, добавлять удалять строки, производить пересчет и многое другое. Задачи подобного рода Вам будут встречаться очень часто. Обо все об этом в одной статье рассказать не получиться, поэтому сначала расскажу о том как можно удалить строки из ТЧ документов. Делается это на самом деле достаточно просто, удалить можно не все строки а только необходимые по определенным условиям.

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

На первых этапах с этим будет гораздо проще разобраться на примере простого документа созданного вами лично, так как в нем будет минимум кода. Я для примера так же создам новый документ «Поступление» с табличной частью «Товары». У которой будет несколько реквизитов «Номер», «Наименование», «Количество», «Цена», «НДС» и «Комментарий», кстати последний реквизит добавлен на форму программно, об этом можете прочитать в предыдущей статье.

Давайте будем удалить не все строки а скажем те у которых нет НДС.

Удаление строк из ТЧ

Первым делам создадим новую команду «Удалить строки бех НДС» и разместим её на форме.

1С Как удалить строки из табличной части документ

Теперь в процедуре напишем вот такой код.

    ВсегоСтрок = Объект.Товары.Количество(); // Определяем количество строк в ТЧ
	ИндексСтроки = 0; // Устанавливаем индекс
	Пока ИндексСтроки < ВсегоСтрок Цикл // В цикле обходим ТЧ
		
		ТекущаяСтрока = Объект.Товары[ИндексСтроки]; 
		Если ТекущаяСтрока.НДС = ПредопределенноеЗначение("Перечисление.СтавкаНДС.БезНДС") Тогда // Условие
			Объект.Товары.Удалить(ИндексСтроки); // Если условие выполнено удаляем строку
			ВсегоСтрок = ВсегоСтрок -1; / Уменьшаем индекс строки для того чтобы после удаление не перепрыгнуть строку
		Иначе
			ИндексСтроки = ИндексСтроки +1; // Если условие не выполнено увеличиваем индекс
			
		КонецЕсли
		
	КонецЦикла;	

Постарался весь код описать но если остались вопросы пишите!

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

Сохраняем конфигурацию, открываем документ и нажимаем на кнопку «Удалить строки без НДС».

1С Удаление строк из табличной части документа

Если Вы все сделали правильно то 1 и 5 строка должны удалиться из документа.

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

Условие можно изменить на любое другое, например удалять строки с определенной ценой, количеством и т.д. Главное на начальном этапе понять принцип.

Удаление строк из ТЧ: 1 комментарий

  1. век живи век учись

    Отбор = Структура («НДС», ПредопределенноеЗначение(«Перечисление.СтавкаНДС.БезНДС»));
    МассивСтрокБезНДС = Объект.Товары.НайтиСтроки(Отбор);
    Для Каждого СтрокаМассива из МассивПустыхСтрок Цикл
    Объект.Товары.Удалить(СтрокаМассива);
    КонецЦикла;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *