Имя: Пароль:
1C
1С v8
Запрос
, ,
0 SH_tan
 
25.04.14
12:09
Добрый день всем, есть табличная часть документа и проверка на вхождение номенклатуры в группу, табличная часть Товары не записана это новый документ Процедура перед записью. Хочу это сделать в виде Запроса если это возможно чтобы он отбирал по всей таблице документа только те поз-ции которые входят в группу  помогите плиз. Заранее спасибо!

Приблизительно так, но это не правильно - долго будет если строк будет много....


Для Каждого СтрТ Из Товары Цикл
                    Если СОКРЛП(СтрТ.Номенклатура.Родитель.Код)         = "1111" Тогда
                        //проверим кратность коробок
                    ИначеЕсли СОКРЛП(СтрТ.Номенклатура.Родитель.Код) = "2222" Тогда
                        //проверим кратность коробок
                    ИначеЕсли СОКРЛП(СтрТ.Номенклатура.Родитель.Код) = "3333" Тогда
                        //проверим кратность коробок
                    ИначеЕсли СОКРЛП(СтрТ.Номенклатура.Родитель.Код) = "4444" Тогда
                        //проверим кратность коробок
                    КонецЕсли;  
    КонецЦикла;
1 VikingKosmo
 
25.04.14
12:10
Если нужен запрос именно к ТЧ документа, то выгрузи ТЧ в ТЗ, а ТЗ уже передай в запрос параметром.
2 SH_tan
 
25.04.14
12:11
(1) а как в запросе параметром подскажи...
3 SH_tan
 
25.04.14
12:11
(1) с запросами тяжко
4 Wobland
 
25.04.14
12:13
расстрелять. потом воскресить и заставить сформулировать цель, из которой произошла эта вакханалия с родителями
5 Ёпрст
 
25.04.14
12:13
Выбрать
    Вася,Федя
Поместить табличка
ИЗ $ТЗ как ТЗ
;
Выбрать * ИЗ табличка
6 SH_tan
 
25.04.14
13:59
(1)(5) сделал так и он дает ошибку
ТЗ = Новый ТаблицаЗначений;
    ТЗ = Товары.Выгрузить();
    ЗапросПоТоварам = Новый Запрос();
    
    ЗапросПоТоварам.Текст =
    "ВЫБРАТЬ *
     |ИЗ
     |    ТЗ";
    Результат = ЗапросПоТоварам.Выполнить();
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        А = 1;
    КонецЦикла;


Таблица не найдена "ТЗ"
7 SH_tan
 
25.04.14
14:00
Таблица не найдена "ТЗ"
<<?>>ТЗ
8 SH_tan
 
25.04.14
14:03
по мойму разобрался
9 Wobland
 
25.04.14
14:04
(8) перепроверь
10 SH_tan
 
25.04.14
14:55
что делаю не правильно
ТЗ = Новый ТаблицаЗначений;
    ТЗ = Товары.Выгрузить();
    МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    ЗапросТЗ = Новый Запрос;
    ЗапросТЗ.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
    ЗапросТЗ.УстановитьПараметр("ТЗ" , ТЗ);
    ЗапросТЗ.Текст = "ВЫБРАТЬ *
    |ПОМЕСТИТЬ ИтоговаяТаблица
    |ИЗ
    |&ТЗ КАК ТЗ";
    ЗапросИтог = Новый Запрос;
    ЗапросИтог.Текст =
    "Выбрать *
    |ИЗ
    |ИтоговаяТаблица";
    Результат = ЗапросИтог.Выполнить();
    РезультатЗапроса=Результат.Выбрать();
    Пока РезультатЗапроса.Следующий()  Цикл
        а = 1;
    КонецЦикла;
11 VikingKosmo
 
25.04.14
14:57
(10) Не надо тут ни каких МВТ, делай временную таблицу:
"ВЫБРАТЬ *
|ПОМЕСТИТЬ ИтоговаяТаблица
|ИЗ
|&ТЗ КАК ТЗ
|;
|Выбрать *
|ИЗ
|ИтоговаяТаблица";
12 Ёпрст
 
25.04.14
14:59
(10) создаешь новый объект типа Запрос, который ничего не знает, что есть ИтоговаяТаблица.
13 Wobland
 
25.04.14
15:00
а выбрать звезда из тз взлетает?
14 Ёпрст
 
25.04.14
15:03
(13) да, только конструктор не переваривает
15 Ёпрст
 
25.04.14
15:04
ему колоночки подавай.. :)
16 Wobland
 
25.04.14
15:05
(15) у меня один падаван был в восторге от того, что ему больше не нужно было описывать типы всех полей ТЗ в конструкторе
17 SH_tan
 
25.04.14
15:06
вот так сделал СПАСИБО всем!!!

    ТЗ = Новый ТаблицаЗначений;
    ТЗ = Товары.Выгрузить();
    ЗапросИтог = Новый Запрос;
    ЗапросИтог.УстановитьПараметр("ТЗ",ТЗ);

    ЗапросИтог.Текст =
      "ВЫБРАТЬ *
    |ПОМЕСТИТЬ ИтоговаяТаблица
    |ИЗ
    |&ТЗ КАК ТЗ
    |;
    |Выбрать *
    |ИЗ
    |ИтоговаяТаблица";
    Результат = ЗапросИтог.Выполнить();
    РезультатЗапроса=Результат.Выбрать();
    Пока РезультатЗапроса.Следующий()  Цикл
        а = 1;
    КонецЦикла;
18 Wobland
 
25.04.14
15:08
обидно будет, если кто-то незаметно элемент мышкой переткнёт в другую группу, правда?
19 SH_tan
 
25.04.14
15:26
(18) согласен
20 SH_tan
 
25.04.14
15:27
а вот еще один вопрос как выбрать только те у которых родитель к примеру "1111"
РезультатЗапроса.Номенклатура.Родитель.Код
21 VikingKosmo
 
25.04.14
15:28
условие написать в запросе
22 Wobland
 
25.04.14
15:28
где родитель к примеру &этот