Как удалить строку в программе 1с

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

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

Удалить все из табличной части

Начу с самого простого, бывают случаи когда нужно полностью очистить табличную часть документ. Для этого необходимо использовать команду Очистить()

ОбъектДокумент = СсылкаДокумент.ПолучитьОбъект(); // Получаем документ ОбъектДокумент.Товары.Очистить(); // Очищаем табличную часть товары ОбъектДокумент.Записать(); // Записываем изменения

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

В этом примере удалим из документа ввода остатков все взаимоотношения с партнерами меньше 1 рубля.

Запрос = Новый Запрос(«ВЫБРАТЬ | ВводОстатковРасчетыСПартнерами.Ссылка КАК Ссылка, | ВводОстатковРасчетыСПартнерами.ОбъектРасчетов КАК ОбъектРасчетов |ИЗ | Документ.ВводОстатков.РасчетыСПартнерами КАК ВводОстатковРасчетыСПартнерами |ГДЕ | ВводОстатковРасчетыСПартнерами.СуммаУпр < 1»); Выборка = Запрос.Выполнить().Выбрать(); // выбераем все строки во всех вводе остатков с суммой меньше 1 рубля Пока Выборка.Следующий() Цикл Д = Выборка.Ссылка.ПолучитьОбъект(); // Получаем документ ввода остатков СДП = Новый Структура(«ОбъектРасчетов»,Выборка.ОбъектРасчетов); ТабЧастьДок = Д.РасчетыСПартнерами; МассивСтрокДляУдаления = ТабЧастьДок.НайтиСтроки(СДП); // Находим нужную строку по объекту расчетов Для каждого Строка Из МассивСтрокДляУдаления Цикл ТабЧастьДок.Удалить(Строка); // удаляем все строки меньше 1 рубля КонецЦикла; Д.Записать(); КонецЦикла;

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

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

Читайте также:
Планета знаний характеристика программы

1С. КАК УДАЛИТЬ СТРОКУ ТАБЛИЧНОЙ ЧАСТИ ПО УСЛОВИЮ


// Укажем условия отбора: Нужно оставить только строки где Вид = ТелефонМобильныйФизическиеЛица ПараметрыОтбора = Новый Структура(«Вид», Справочники.ВидыКонтактнойИнформации.ТелефонМобильныйФизическиеЛица); //Теперь выгружаем табличную часть в таблицу значений ТЗисходн = КонтактнаяИнформация.Выгрузить(); //Скопируем ТЗ с заданным отбором в новую ТЗ ТЗнов = ТЗисходн.Скопировать(ПараметрыОтбора); //Очистим табличную часть КонтактнаяИнформация.Очистить(); //Загружем в табличную часть новую таблицу значений КонтактнаяИнформация.Загрузить(ТЗнов);

Как не надо удалять записи из табличной части

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

Для Каждого СтрокаТЧ ИЗ ТабличнаяЧастьОбъекта Цикл Если УсловиеУдаленияВыполнено = Истина Тогда ТабличнаяЧастьОбъекта.Удалить(СтрокаТЧ); КонецЕсли; КонецЦикла;

Перебирает табличную часть, по ходу проверяя условия удаления и сразу удаляет если условие выполняется, но в этом примере не учтено что при удалении строки изменится индекс у строкиТЧ и часть строк будет пропущена.

Алгоритм удаления строки из табличной части

Материала по программированию на языке 1с и про табличные части на ИТС:

  • Больше примеров про программирование 1с — тут.
  • Больше про табличные части в практическом пособии разработчика — тут.

Источник: bv-dev.ru

Как программно удалить строки из табличной части по условию

В статье рассмотрено несколько основных алгоритмов удаления строк из табличной части по условию. Каждый из вариантов по своему хорош, вам нужно подобрать для себя наиболее подходящий. Оглавление (нажмите, чтобы раскрыть) Первый вариант удаления строк по условию Второй вариант удаления строк […]

Другое в 1С

  • 1С: Массивы и коллекции. Массивы
  • Как передать структуру в параметр. Конвертация данных
  • Менеджер заданий не активен. Как исправить
  • Как пропорционально распределить сумму
  • Как программно отключить регистрацию объектов в планах обмена при записи объекта

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

В статье рассмотрено несколько основных алгоритмов удаления строк из табличной части по условию. Каждый из вариантов по своему хорош, вам нужно подобрать для себя наиболее подходящий.

  • Первый вариант удаления строк по условию
  • Второй вариант удаления строк по условию
  • Третий вариант удаления строк по условию
Читайте также:
Дизайнер компьютерных программ это

Первый вариант удаления строк по условию

КоличествоСтрок = Объект.Товары.Количество(); Индекс = 0; Пока Индекс КоличествоСтрок Цикл ТекущаяСтрока = Объект.

Товары(Индекс); //Задаем условие удаления Если ТекущаяСтрока.СтавкаНДС = ПредопределенноеЗначение(«Перечисление.СтавкиНДС.БезНДС») Тогда Объект.

Товары.Удалить(Индекс); КоличествоСтрок = КоличествоСтрок — 1; Иначе Индекс = Индекс + 1; КонецЕсли; КонецЦикла;

Второй вариант удаления строк по условию

КоличествоСтрок = Объект.Товары.

Количество(); Для Счетчик = 0 По КоличествоСтрок — 1 Цикл ТекущаяСтрока = Объект.Товары[КоличествоСтрок — Счетчик — 1]; Если ТекущаяСтрока.

СтавкаНДС = ПредопределенноеЗначение(«Перечисление.СтавкиНДС.БезНДС») Тогда Объект.Товары.

Удалить(ТекущаяСтрока); КонецЕсли; КонецЦикла;

Третий вариант удаления строк по условию

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

Источник: codely.ru

1С:Предприятие 7.7

ТабЗнач.Очистить(); //очистить таблицу значений и удалить колонки
ТабЗнач.УдалитьСтроки(); //удаляет все строки (колонки сохраняются)
ТабЗнач.УдалитьСтроку(); //удаляет текущую строку
ТабЗнач.УдалитьСтроку(3); //удаляет 3-ю строку

ТабЗнач.УдалитьКолонку(“Оклад”); //удаляет колонку Оклад
ТабЗнач.УдалитьКолонку(2); //удаляет 2-ю колонку

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru