Имя: Пароль:
1C
1С v8
НайтиСтроку: Структура отбора
0 Дукат
 
27.10.11
10:53
Доводилось делать НайтиСтроку только по одному условию в отборе. Теперь надо что бы в структуре было не одно значение а несколько.
вот что бы понять:

   СтруктураДляПоиска = Новый Структура();
   СтруктураДляПоиска.Вставить("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.1);
   //СтруктураДляПоиска.Вставить("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.2);
   //СтруктураДляПоиска.Вставить("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.3);
   
   ТабличнаяЧастьДок = Источник.ОсновныеНачисления;
   ОснНачисления = ТабличнаяЧастьДок.НайтиСтроки(СтруктураДляПоиска);
   
   Для каждого Строка Из ОснНачисления Цикл
       Сообщить(Строка);
   КонецЦикла;



то есть: надо что бы ВидРасчета был с "ИЛИ". Загнать туда массив? пробывал: не прокатывает. или так нельзя? что посоветуете?
1 Дукат
 
27.10.11
10:53
с // все работает конечно: так как классика...
2 vmv
 
27.10.11
10:56
запросом с временной таблицей с передачей в условие массива.

штатного средства фильтровать тз по одному и тому же ключу нету
3 vmv
 
27.10.11
10:57
брр - это не тз даже, а тч - тогда можно и в консоли без временных таблиц запрос слепить
4 Дукат
 
27.10.11
10:57
Спасибо!
Запросом то конечно - просто хотел убедиться что нельзя иначе!

Спасибо!
5 ptiz
 
27.10.11
10:59
или так (из типовой)

// Отбирает из переданной таблицы строки по заданным критериям.
//
// Параметры:
//  Источник - ТаблицаЗначений, РезультатЗапроса, ОбластьЯчеекТабличногоДокумента. Таблица-источник.
//  СтруктураКритериев - Структура. Названия отборов и значения, по которым нужно отобрать строки.
//  СтруктураСложныхКритериев - Структура. Если свойство передано, то значение содержит вид сравнения.
//
// Возвращаемое значение:
//  РезультатЗапроса - таблица с нужными строками.
//
Функция ОтобратьСтрокиПоКритериям(Источник, СтруктураКритериев, СтруктураСложныхКритериев = Неопределено) Экспорт

   Перем ВидСравненияСложный;

   Если СтруктураСложныхКритериев = Неопределено Тогда
       СтруктураСложныхКритериев = Новый Структура;
   КонецЕсли;

   ПостроительЗапроса = Новый ПостроительЗапроса;
   ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(Источник);

   Для Каждого Критерий Из СтруктураКритериев Цикл
       НовыйОтбор = ПостроительЗапроса.Отбор.Добавить(Критерий.Ключ);

       СтруктураСложныхКритериев.Свойство(Критерий.Ключ, ВидСравненияСложный);

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

   Возврат ПостроительЗапроса.Результат;

КонецФункции // ОтобратьСтрокиПоКритериям()
6 ptiz
 
27.10.11
11:01
примерчик

ТаблицаТоваров = ОтобратьСтрокиПоКритериям(ТаблицаТоваров, Новый Структура("Товар", СписокТоваров), Структура("Товар", ВидСравнения.НеВСписке)).Выгрузить();