Имя: Пароль:
1C
1С v8
Отбор поля в табличной части документа по списку значений
, ,
0 ildary
 
06.12.16
10:40
Уважаемые специалисты, подскажите пожалуйста, как правильно сделать следующее: я программно получил документ Заказ, у него есть табличная часть Товары, примерно вот так:

Заказ = ЗаказСсылка.ПолучитьОбъект();
Товары = Заказ.Товары;

Как получить у Товары только те строки, в которых есть товары из списка значений? При этом результат должен быть такой же набор строк, как и сама табличная часть. Как я понял - поле ОтборСтрок предназначено для формы.
1 Cool_Profi
 
06.12.16
10:41
выбрать *
Из Документ.Заказ.Товары
где номенклатура В (&сзНом)
и ссылка = &док
2 Dark_Warrior
 
06.12.16
10:41
Запросом, не?
3 ildary
 
06.12.16
10:42
(2) а запрос вернет структуру, которая потом будет себя вести так же как и сама табличная часть, то есть если я буду в ней менять значения - то и у табличной части документа они изменятся?
4 Cool_Profi
 
06.12.16
10:44
(3) А этого условия не было в начальной постановке )
5 ildary
 
06.12.16
10:45
(4) виноват, неточно сформулировал. В итоге мне нужна та же табличная часть, чтобы ее можно было скормить процедуре работы с табчастью заказа, но не вся, а фильтрованная.
6 aleks_default
 
06.12.16
10:46
НайтиСтроки
7 ildary
 
06.12.16
11:09
(6) спасибо за совет, но НайтиСтроки работает, если в структуре только одно значение, а список значений или массив товаров - не возвращает ничего. Делаю так (как в примерах) - работает

Отбор = Новый Структура;
Отбор.Вставить( "Номенклатура", Товар );
СтрокиТабЧасти = Заказ.Товары.НайтиСтроки( Отбор );

А если сделать

Отбор.Вставить( "Номенклатура", СписокТоваров );

или

А если сделать Отбор.Вставить( "Номенклатура", МассивТоваров );

возвращает пустой массив.
8 Cool_Profi
 
06.12.16
11:10
(7) И не вернёт. НайтиСтроки - работает по точному совпадению.
9 aleks_default
 
06.12.16
11:17
Тогда запросом с временной таблицей куда передавать таб часть объекта
10 ildary
 
06.12.16
11:18
(8) вот поэтому я и обращаюсь - скажите пожалуйста как получить нужные строки табличной части по списку, а не точному совпадению?

(9) А запрос что вернет? Мне потом полученный результат передавать в процедуру, которая ждет строки табличной части.
11 Cool_Profi
 
06.12.16
11:19
(10) цикл по списку, отбор нужных строк с помещением их в массив
12 singlych
 
06.12.16
11:28
(10) в запросе можно номера строк собрать, при обходе выборки получать строку ТЧ по индексу и пихать ее в твою процедуру.