Имя: Пароль:
1C
1С v8
Как в Табличном Поле удалить строки с незаполненным значением?
0 Boudybuilder
 
23.03.12
12:27
Сделал так


Для Каждого ТС Из СписокНоменклатуры Цикл
       Если ТС.Номенклатура.Пустая() Тогда
           СписокНоменклатуры.Удалить(ТС);
       КонецЕсли;
       КонецЦикла;


Но оно одну удаляет тока.
1 Нуф-Нуф
 
23.03.12
12:28
нужные строки суй в массив, а после выборки удаляй строки из массива
2 Staffa
 
23.03.12
12:29
(0)
1. НайтиСтроки()
2. Обойти массив результат и удалить их
3 Boudybuilder
 
23.03.12
12:30
(1) Пример можешь написать?
Пожалуйста.
4 lxs
 
23.03.12
12:31
Массив = ТС.НайтиСтроки(Новый Структура("Номенклатура", Справочники.Номенлатура.ПустаяСсылка()));
Для каждого ЭлементМассива Из Массив Цикл
   ТС.Удалить(ЭлементМассива);
КонецЦикла;



Учись, студент©
5 Boudybuilder
 
23.03.12
12:33
Пасибо огромное!
Я то и делаю что учусь.
6 Boudybuilder
 
23.03.12
12:48
Массив = СписокНоменклатуры.НайтиСтроки(Новый Структура("Номенклатура" , Справочники.Номенклатура.ПустаяСсылка()));
   Для Каждого ЭлементМассива ИЗ Массив Цикл
       СписокНоменклатуры.Удалить(ЭлементМассива);
       КонецЦикла;
   


Вот , работает!
Еще раз пасиб.

А как сделать так чтоб удаляло только заполненные? Тоесть наоборот?
7 ptrtss
 
23.03.12
12:55
ВГраница = СписокНоменклатуры.Количество() - 1;
Для Индекс = 0 по ВГраница Цикл
   ТС = СписокНоменклатуры[ВГраница - Индекс];
   Если ЗначениеЗаполнено(ТС.Номенклатура) Тогда
       СписокНоменклатуры.Удалить(ТС);
   КонецЕсли;
КонецЦикла;
8 Boudybuilder
 
23.03.12
13:10
(7)
А также но массивом как?
9 Boudybuilder
 
23.03.12
13:11
Как в (6)
10 ptrtss
 
23.03.12
13:11
Тут массива не надо. Если обход идет в обратном порядке, можно и при обходе удалять
11 ptrtss
 
23.03.12
13:12
А оптом найти строчки с заполненной номенклатурой не выйдет
12 ShoGUN
 
23.03.12
13:12
(9) Никак. Отбор через структуру только на равенство, а "только заполненные" - это не одно значаение, а много разных и равенством не описывается.
13 DexterMorgan
 
23.03.12
13:13
(9) Все зависит от типа поля по какому ищешь: Новый Структура("Номенклатура", Справочники.Номенклатура.ПустаяСсылка())
14 DexterMorgan
 
23.03.12
13:14
+ Неопределено
15 Reset
 
23.03.12
13:18
(6)
>>>А как сделать так чтоб удаляло только заполненные? Тоесть наоборот?

Если СписокНоменклатуры это ТабличнаяЧасть

СписокНоменклатуры.Загрузить(СписокНоменклатуры.Выгрузить(Новый Структура("Номенклатура", Справочники.Номенклатура.ПустаяСсылка())))

Если СписокНоменклатуры это ТаблицаЗначений

СписокНоменклатуры=СписокНоменклатуры.Скопировать(Новый Структура("Номенклатура", Справочники.Номенклатура.ПустаяСсылка()))
Закон Брукера: Даже маленькая практика стоит большой теории.