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

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

  • автор:

1С 8.3 Удалить строки табличной части документа/справочника — Программист 1С Минск. Автоматизация бизнеса.

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

Данные > Примеры кода 1С > 1С 8.3 Документы

ПРИМЕРЫ КОДА 1С

Перейти в основной раздел:

Удалить строки (по условию) в табличной части в 1С 8.3:

&НаСервере
Процедура УдалитьСтрокиВТЧпоУсловию ()

ОтгрузкаСсылка = Документы . ОтгрузкаТоваров . НайтиПоНомеру ( «МРБ-000123» , ‘20200430’ );
МассивСтрокУдалить = Новый Массив ;

// Вариант 1
Для Каждого Строка Из ОтгрузкаСсылка . Номенклатура Цикл
Если НЕ ЗначениеЗаполнено ( Строка . Номенклатура ) Тогда
МассивСтрокУдалить . Добавить ( Строка );
КонецЕсли;
КонецЦикла;

Для Каждого ЭлементМассив Из МассивСтрокУдалить Цикл
Объект . Номенклатура . Удалить ( ЭлементМассив ); //удаляем нужную строку
КонецЦикла;

// Вариант 2
//КоличествоСтрок = ОтгрузкаСсылка.Номенклатура.Количество()-1;
//ИндексСтроки = КоличествоСтрок;
//Для А = 0 по КоличествоСтрок Цикл
// Строка = ОтгрузкаСсылка.Номенклатура.Получить(ИндексСтроки);
// Если НЕ ЗначениеЗаполнено(Строка.Номенклатура) Тогда
// ОтгрузкаСсылка.Номенклатура.Удалить(Строка);
// КонецЕсли;
// ИндексСтроки = ИндексСтроки — 1;
//КонецЦикла;

Удалить строки (с отбором) в табличной части в 1С 8.3:

&НаСервере
Процедура УдалитьСтрокиВТЧпоОтбору ()

ОтгрузкаСсылка = Документы . ОтгрузкаТоваров . НайтиПоНомеру ( «МРБ-000123» , ‘20200430’ );
ОтгрузкаТоваров = ОтгрузкаСсылка . ПолучитьОбъект ();
СтруктураДляПоиска = Новый Структура ( «Количество» , 0 );

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

Удалить строки через Таблицу Значений (с отбором) в табличной части в 1С 8.3:

&НаСервере
Процедура УдалитьСтрокиВТЧпоОтборуЧерезТЗ ()

ОтгрузкаСсылка = Документы . ОтгрузкаТоваров . НайтиПоНомеру ( «МРБ-000123» , ‘20200430’ );

// Укажем условия отбора: Нужно оставить только строки где СубконтоКт1 = РБПНаПФР
ПараметрыОтбора = Новый Структура ( «СубконтоКт1» , Справочники . РасходыБудущихПериодов . РБПНаПФР );

//Теперь выгружаем табличную часть в таблицу значений
ТЗисходн = ОтгрузкаСсылка . Номенклатура . Выгрузить ();

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

//Очистим табличную часть
ОтгрузкаСсылка . Номенклатура . Очистить ();

//Загружем в табличную часть новую таблицу значений
ОтгрузкаСсылка . Номенклатура . Загрузить ( ТЗ );

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

Распечатать

Распечатать

Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить — сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1С 7.x : Как получить курсы валют с сайта НБУ http://www.bank.gov.ua/ за любую дату ? 6
Функция ПолучитьТаблицуКурсовНБУ(ДатаКурса, Ежедневно = 1) // если в качестве второго параметра указать число отличное от 1 — получем валюты, которые котируются на ежемесячной основе Перем Reader, Url, Точки, HtmlTab, Строк, Р, НомСтроки, НомЯче 1С 8.x : Как убрать лидирующие нули в номере Документа (вариант2) 0
Скопировать строку с номером, с лидирующими нулями, в числовом поле (с форматом без групп, без группировки), и вернуть(скопировать) обратно в строковом поле с номером. Возвращает без нулей. Посмотреть все результаты поиска похожих

Еще в этой же категории

Документ «Операция» — Как программно создать и заполнить? 50
В бухгалтерских подсистемах типовых конфигураций есть всем известный документ «Операция». Бухгалтерам не приходится долго объяснять, как им пользоваться. Все по-бухгалтерски просто и лаконично: счет дебета, счет кредита, субконто, количество, сумма и Как удалить движения документа программно? 37
Потребовалось в УТ быстро удалить все движения по банку, дело вроде легкое — отменить проведение всех поступлений и списаний безналичных денежных средств, но не тут то было. При попытке отмены проведения выполнялись проверки на условия оплаты по Как проверить какого Типа Документ? 27
Если ТипЗнч(ОбрДокументСсылка) = Тип(» ДокументСсылка.РеализацияТоваров» ) Тогда // Строки кода, выполняемые при истинности условия. КонецЕсли; Отмена создания документа в Обработке Заполнения 22
В процедуре ОбработкаЗаполнения установка СтандартнаяОбработка = Ложь не приводит к отмене создания документа. В Интернете нашел только советы передавать параметр в форму и при открытии формы его анализировать, что в принципе правильно, но как-то неу Последовательность выполнения процедур записи, проведения, отмены проведения Документов в УП. 20
Идея была взята с Последовательность записи/проведения в обычных формах (некоторые части теста скопированы и подкорректированы *12 ). Для чего может пригодиться знание последовательности, в которой отрабатывают предопределенные процедуры модуля д Посмотреть все в категории Документы

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

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

Решить проблему можно с помощью такого кода:

КолВо = Бонусы . Количество ( ) — 1 ; // Получаем количество строк в табличной части минус один
ИндексСтрок и = КолВо ; //Первый индекс строки
Для Счетчик = 0 по КолВо Цикл //Перебираем строки табличной части
Запись = Бонусы . Получить ( ИндексСтроки ) ; //Получаем первую строку
Если Запись . СуммаУТ=Запись . СуммаРозница тогда //Проверяем на заданное условие
Бонусы . Удалить ( Запись ) ; //Удаляем
ИндексСтрок и = ИндексСтрок и — 1 ; //Получаем индекс следующей записи
КонецЦикла;

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

А если вы хотите научиться без обращения к программистам справляться с большинством задач — приглашаю Вас на мой курс Аналитик 1С

Похожие записи:
    Обработка табличной части 1с 8.2. Скачать пример.Для того, чтобы произвести какие то действия со строками табличной.Внешняя Счет-фактура для УТ 10.3 с 1.07.2021 (редакция 534)С 1.07.2021 все предприятия обязаны применять новую форму счет-фактуры по.Вывести сообщение пользователю с привязкой к конкретной строке табличной части.В том случае, когда производится проверка в табличной части с.Где в 1С акт сверки и как его сделать в Бухгалтерии 3.0 и 2.0Содержание статьи: Делаем акт сверки в 1С Бухгалтерия 3.0 Делаем.
От Программист 1С

Просмотреть все записи от Программист 1С по этой ссылке.

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

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

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

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

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

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

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

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