Имя: Пароль:
1C
1С v8
Отбор в таблице значений ?
0 Aleks73
 
10.10.11
18:14
Хочу отобрать в ТЗ по колонке с типом значений справочникссылка, но не по значению, а по по массиву значений.
СП по структуре, в команде НайтиСтроки - не порадовал.
Цикл по массиву. боюсь, будет тормозить.

Можно ли как-то без цикла из тз отобрать строки, удовлетворяющие всему массиву, желательно одной-двумя командами ? Как ?
1 unregistered
 
10.10.11
18:15
Или цикл, или запрос.
2 Aleks73
 
10.10.11
18:16
(1) Неужели всё так безнадёжно ?
3 unregistered
 
10.10.11
18:18
(2) Тебе этого мало?...
4 Aleks73
 
10.10.11
18:18
(3) Лень долго бить клаву
5 Живой Ископаемый
 
10.10.11
18:20
откуда взялась ТЗ?
6 unregistered
 
10.10.11
18:20
(4) Открой для себя конструктор запросов.
7 simol
 
10.10.11
18:20
(4)Ты в (0) больше написал, чем запрос делать
8 shuhard
 
10.10.11
18:20
(0) загрузи в запрос
9 Aleks73
 
10.10.11
18:22
(8) я не в СКД пишу отчет
10 Euguln
 
10.10.11
18:22
(9) вот ни разу не оправдание
11 Живой Ископаемый
 
10.10.11
18:23
2(9) э... ну и что?
12 Aleks73
 
10.10.11
18:25
(10,11) Не понимаю предложения, если отчет - обычный.
я пишу                            запрос = новый запрос ;


   потом                    

   запрос.

как-то не выскакивает команды типа запрос.наборданных или что-то вроде
13 Steel_Wheel
 
10.10.11
18:25
(0) Используй вид сравнения "В списке". Список сгенерируешь сам
14 Живой Ископаемый
 
10.10.11
18:27
2(13) не прокатит.
2(12) помещать да, нужно руками...
15 shuhard
 
10.10.11
18:27
(12)[как-то не выскакивает команды]
Ооооооооооо

а если ручками написать ГДЕ нечто В (&Список) и результат выгрузить в ТЗ ?
16 Aleks73
 
10.10.11
18:27
(13) это тз, а не отбор в форме выбора
17 Живой Ископаемый
 
10.10.11
18:28
2(16) расскажи как она нарисовалась? По почте пришла с пометкой РидОнили?
18 Reset
 
10.10.11
18:28

   потом                    

   запрос.  <----- ЗДЕСЬ делай отбор по твоему массиву
19 Euguln
 
10.10.11
18:29
(12) хочешь особого изврата, используй ИсточникДанных у построителя отчета.
20 shuhard
 
10.10.11
18:29
(16) что тебе мешает засунуть ТЗ через параметр в запрос, пакетный ясен пень, и во втором запросе пакета использовать ГДЕ
21 Aleks73
 
10.10.11
18:30
(15) у меня уже есть тз. одно формируется долго, на пред-предыдущем этапе, запускать формирование снова. даже с отбором - муторно.
(16) сложный запрос, по сформированному - заполнение пустых колонок из экселя
22 shuhard
 
10.10.11
18:31
(21) ты не понял
см (20)
в запрос надо поместить итоговую ТЗ
23 Aleks73
 
10.10.11
18:32
(19) построитель не люблю, всегда обходился без него, кинь кусок кода , полюбопытствую
(20) с пакетным вообще не работал, отстал от жизни, ретроград понимаешь, кинь кусок кода, пожалуйста.
24 Aleks73
 
10.10.11
18:33
(22) см. (23)
25 Живой Ископаемый
 
10.10.11
18:35
http://chistov.spb.ru/publ/5-1-0-13

Построителю запроса можно скормить и ТЗ, но но ему на ТЗ нужно наложить отбор предварительно, а отбор возможен только по равенству, поэтому правильныйй вариант - пакетный запрос
26 Aleks73
 
10.10.11
18:38
(25) Спасибо, Живой Ископаемый, буду изучать
27 Живой Ископаемый
 
10.10.11
18:39
мне то за что...
28 shuhard
 
10.10.11
18:39
(23) как то так:
ТЗ должна быть типизирована

"ВЫБРАТЬ
                                |    Inna.Товар
                                |ПОМЕСТИТЬ ВТТовары
                                |ИЗ
                                |    &Inna КАК Inna
                                |;
                                |
                                |////////////////////////////////////////////////////////////////////////////////
                                |ВЫБРАТЬ
                                |    ВТТовары.Товар
                                |ИЗ
                                |    ВТТовары КАК ВТТовары
                                |ГДЕ
                                |    ВТТовары.Товар В (&МассивТовар)"
29 Reset
 
10.10.11
18:41
:) или так (вроде лучше, если массив для отбора большой)

Выбрать ТЗ.Ссылка Поместить Исходная ИЗ &ТЗПараметрОбщая КАК ТЗ;
Выбрать    ТЗФ.Ссылка Поместить Фильтр ИЗ &ТЗПараметрФильтр КАК ТЗФ;
Выбрать Исходная.Ссылка
ИЗ Исходная КАК Исходная
ГДЕ Исходная.Ссылка В (ВЫБРАТЬ ТЗФ.Ссылка ИЗ ТЗФ)
30 Aleks73
 
10.10.11
18:43
(29) во...интересно!
31 Reset
 
10.10.11
18:44
Но: Если таблица маленькая, то можно циклом обойтись; если большая, то гонять туда сюда ее тем более нехорошо и фильтровать надо на этапе формирования (первичном)
32 Euguln
 
10.10.11
18:44
(25) никто и не спорит, я же написал "хочешь особого изврата"
33 Aleks73
 
10.10.11
18:45
(29) это как обычный запрос описывается ? установить параметр...выполнить.выгрузить или есть нестадартные команды ?
34 Aleks73
 
10.10.11
18:46
(31) около 30.000 строк
35 shuhard
 
10.10.11
18:47
(33) обычный,
в параметр засунь ТЗ и массив ссылок для отбора
36 Aleks73
 
10.10.11
18:48
(35) Ок, спасибо,  shuhard !
37 Живой Ископаемый
 
10.10.11
18:49
2(33) по ссылке из (25) со слов "Не помню уже с какого релиза в запросах стало можно использовать временные таблицы"
38 shuhard
 
10.10.11
18:49
(36) и главное
ТЗ типизированная
39 Aleks73
 
10.10.11
18:50
(38) не помню, что за зверь...
40 Живой Ископаемый
 
10.10.11
18:52
колонки в смысле
41 Aleks73
 
10.10.11
18:52
(38) Типизированная = это :

//Колонки должны быть типизированы
ТЗ.Колонки.Добавить("А", Новый ОписаниеТипов("Строка"));
ТЗ.Колонки.Добавить("Б", Новый ОписаниеТипов("Строка"));


а-а-а..и как же я из запроса с 30.000 строк в неё перелью по одной строке?
42 shuhard
 
10.10.11
18:54
(41) у тебя ссылка на элемент справочника получена запросом или иным образом ?
43 Reset
 
10.10.11
18:54
(39) Колонка должна иметь явно установленный тип

поправил опечатки

Выбрать ТЗ.Ссылка Поместить Исходная ИЗ &ТЗПараметрОбщая КАК ТЗ;
Выбрать ТЗФ.Ссылка Поместить Фильтр ИЗ &ТЗПараметрФильтр КАК ТЗФ;
Выбрать Исходная.Ссылка
ГДЕ Исходная.Ссылка В (ВЫБРАТЬ Фильтр.Ссылка из Фильтр)


На самом деле это то же самое что и в (28), только массив выгружается в отдельный подзапрос - при большом массиве так быстрее
44 zladenuw
 
10.10.11
18:55
(41) открой конструктор запроса, там есть создать временную таблицу, ты там задаешь типы для своих колонок
45 Reset
 
10.10.11
18:55
(41) тогда она уже типизована видимо
46 Aleks73
 
10.10.11
18:55
(42) запросом.
47 shuhard
 
10.10.11
18:56
(46) тогда она типизированная

кончай трепаться
пиши запрос
всем давно пора домой
48 Reset
 
10.10.11
18:56
(46)
тогда (45)
49 Reset
 
10.10.11
18:56
(47) всем давно пора домой
+100500
50 Aleks73
 
10.10.11
18:56
(47) + 100.
Всем - спасибо !