Отбор по типу "Не равно"

1. irinka1986 17.04.12 23:58 Сейчас в теме
Подскажите, как отобрать из Таблицы значений строки , где Строка.Наименование НЕ РАВНО Значению.
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Lyns_owner 355 18.04.12 00:02 Сейчас в теме
Известных мне методов кроме как "Найти" и "НайтиСтроки" нет. А они не решают поставленную задачу. Как вариант - копированием таблицы и удалением из нее строк.

Есть вариант изящнее: передать таблицу в запрос, а в запросе уже сделать какое угодно условие)
+
3. Spi1y 18.04.12 00:51 Сейчас в теме
Первый вариант - как уже упомянули, запросом.
Второй:

НенужныеСтроки = ТЗ.НайтиСтроки(Новый Структура("Наименование", "Ненужное наименование"));
Для Каждого СтрокаТЗ Из ТЗ Цикл
  Если НенужныеСтроки.Найти(СтрокаТЗ) <> Неопределено Тогда
    Продолжить;
  КонецЕсли;

  // Обрабатываем строки
КонецЦикла;

Только если так. Варианты улучшение производительности на больших объемах: индексирование ТЗ или переход на использование запроса :)
+
4. Spi1y 18.04.12 01:00 Сейчас в теме
Ну или еще как вариант, правда слегка более "накрученный":

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

НужныеСтроки = ТЗ.НайтиСтроки(Новый Структура("ЭтоНенужнаяСтрока", Ложь));


Вариант имеет смысл при условии, что ненужных строк значительно меньше чем остальных. И опять же, при больших объемах, не забывай про индексацию.
+
5. Temniy 19 18.04.12 20:29 Сейчас в теме
Передать таблицу значений в запрос
+
6. Авдеич 08.06.18 09:38 Сейчас в теме
А вот еще один:

Построитель = Новый ПостроительЗапроса;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТаблицаДанных); //Твоя ТЗ
СтрокаОтбора = Построитель.Отбор.Добавить("СпособОтраженияЗарплатыВБухучете"); // в Колонке
СтрокаОтбора.ВидСравнения = ВидСравнения.НеРавно;
СтрокаОтбора.Значение = Справочники.СпособыОтраженияЗарплатыВБухУчете.НайтиПоНаименованию("К распределению"); // значение по которому делать отбор
СтрокаОтбора.Использование = Истина;
Построитель.Выполнить();
ТаблицаДанныхНеРаспределять = Построитель.Результат.Выгрузить(); // вуаля
pserin@1cbit.ru; KoC_one; link_l; user1447578; user1407676; allexius; JK_KHV; idiked; ixijixi; stragner2; rinik88; sergio199; user1058210; independ; user730930; +15
7. kraynev-navi 648 20.01.22 16:10 Сейчас в теме
(6) в случае ошибки в строке добавления отбора "Недопустимое значение параметра (параметр номер '1')" необходимо при создании колонки указывать тип через ОписаниеТипов.
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот