Имя: Пароль:
1C
1С v8
Вопрос по ТЗ.НайтиСтроки()
0 kisskiss
 
25.12.12
10:56
1. запросом к таблице значений 100% (2)
2. перебором в цикле 0% (0)
3. несколько раз НайтиСтроки 0% (0)
Всего мнений: 2

Как с помощью конструкции НайтиСтроки в таблице значений найти все строки, у которых в колонке "ФизЛицо" будет или Петров, или Иванов, или Сидоров?
1 Утконос
 
25.12.12
10:57
Соответствие тебе в помощь
2 ZanderZ
 
25.12.12
10:58
никак, только отдельно 3-и раза искать или запросом
3 Нуф-Нуф
 
25.12.12
10:58
запрос
4 regniws
 
25.12.12
10:59
(1) ндээ...

(0) тз в вт запроса.
5 pessok
 
25.12.12
10:59
(0) в твоем случае (3)
6 ДенисЧ
 
25.12.12
10:59
запрос лучше всего
7 GANR
 
25.12.12
10:59
Отбор = Новый Структура;
Отбор.Вставить("ФизЛицо", Петров);
СтрокиПетров = ТЗ.НайтиСтроки(Отбор);
Отбор.Вставить("ФизЛицо", Иванов);
СтрокиИванов = ТЗ.НайтиСтроки(Отбор);
Отбор.Вставить("ФизЛицо", Сидоров);
СтрокиСидоров = ТЗ.НайтиСтроки(Отбор);
8 Ursus maritimus
 
25.12.12
10:59
Запрос уже предлагали?
9 kisskiss
 
25.12.12
10:59
(2) а можно поподробнее, желательно кодик написать ... для наглядности...
10 GANR
 
25.12.12
11:00
(0) НайтиСтроки по прнципу ИЛИ не отбирает
11 Serginio1
 
25.12.12
11:00
12 YHVVH
 
25.12.12
11:02
(1) чаго?
13 Cube
 
25.12.12
11:03
14 ptiz
 
25.12.12
11:03
(0) Построитель тебе в помощь.
15 kisskiss
 
25.12.12
11:08
Ога, понятно
В итоге получено несколько групп советов:
1) (8) запросом к таблице значений
2) (11) перебором в цикле
3) (7) несколько раз НайтиСтроки
Думаю подойдет :) Спасибо!
16 Reset
 
25.12.12
11:10
Отобранные=ТЗ.СкопироватьКолонки();
Для каждого ПроверяемаяСтрока из ТЗ цикл
 Если ПроверяемаяСтрока.ФизЛицо=Иванов
   или ПроверяемаяСтрока.ФизЛицо=Сидоров
   или ПроверяемаяСтрока.ФизЛицо=Петров тогда
ЗаполнитьЗначенияСвойств(Отобранные.Добавить(),ПроверяемаяСтрока);
 КонецЕсли;
КонецЦикла;
17 Нуф-Нуф
 
25.12.12
11:11
юзай запрос. будь мужиком, блеать!
18 МихаилМ
 
25.12.12
11:13
скд
19 Нуф-Нуф
 
25.12.12
11:14
кстати. на фотке тема сисек не раскрыта
20 wowik
 
25.12.12
11:16
(19) +1
21 kisskiss
 
25.12.12
11:21
22 Cube
 
25.12.12
11:23
(21) О, так вставляй её в профиль!) Помощь на мисте будет ещё оперативнее)
23 wowik
 
25.12.12
11:30
еще email желательно оставить и город проживания. ну так, на всякий...
24 cw014
 
25.12.12
11:31
ИМХО

запросом к таблице значений
25 Serginio1
 
25.12.12
11:50
Новаятз=СкопироватьПоУсловию(Тз,"Стр.НужнаяКолонка<0");
11


  Evrepid


8 - 07.12.12 - 19:07


Почему только запросом?
Перебор все еще имеет большие силы для этого... :)
10


  Serginio1


9 - 07.12.12 - 19:30


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

Рез=НайтиПоУсловию(тз,"стр.ФизЛицо=""Иванов""
   или стр.ФизЛицо=""Сидоров""
   или стр.ФизЛицо=""Петров""");

или
Список=ОбщегоНазначение.РазложитьСтрокуВМассивПодстрок("Иванов,Сидоров,Петров");

Рез=НайтиПоУсловию(тз,"Список.Найти(стр.ФизЛицо)<>Неопределено");
26 Serginio1
 
25.12.12
11:51
Для последнего
Рез=НайтиПоУсловию(тз,"Список.Найти(стр.ФизЛицо)<>Неопределено",Список);
27 Serginio1
 
25.12.12
11:52
Нужно добавить выбор использование функции с перебором с передачей в нее условий с данными
28 Serginio1
 
25.12.12
12:25
Можно еще извратиться. Создать в модуле (обработки,документа итд) ЭтаФорма Функцию

И передать
Фрм=ВнешниеОбработки.Создать(ПутьКОбработке);
НайтиПоУсловию(Тз,"Список.ФункцияВМодуле(стр)",фрм);
29 GANR
 
25.12.12
12:25
но это противоречит изначальному условию
>с помощью конструкции НайтиСтроки

запросом к таблице значений
30 Serginio1
 
25.12.12
12:26
(29) И тубудешь в запросе устанавливать флаг нужной записи?
31 GANR
 
25.12.12
12:31
(30) А вообще нужно уточнить задачу.