Имя: Пароль:
1C
1C 7.7
v7: Запрос с условием по реквизиту с типом дата
,
0 Kardash
 
25.03.14
14:00
Добрый день.
Что то сегодня туплю.
Есть следующий запрос:
    ТекстЗапроса = "";
    Если ПоДатеСтворення = 0 Тогда
        ТекстЗапроса="
        |ПЕРИОД С Дата1 По Дата2;";
    КонецЕсли;
    ТекстЗапроса=ТекстЗапроса+"
        |Док=Документ.GSC_Замовлення.ТекущийДокумент;
        |ДатаСтв = Документ.GSC_Замовлення.ДатаСтворення;
        |Послуга=Документ.GSC_Замовлення.ТМЦ;
        |Контр=Документ.GSC_Замовлення.НазваКонтрагента;
        |НомЛ=Документ.GSC_Замовлення.НомерЛічильника;
        |КтьПос=Документ.GSC_Замовлення.КількістьПослуг;
        |СумаДок=Документ.GSC_Замовлення.ВартістьРобітЗПДВ;";
    Если ПоДатеСтворення = 1 Тогда
        ТекстЗапроса=ТекстЗапроса+"
        |Условие ((ДатаСтв >= Дата1) И (ДатаСтв <= Дата2));";
    КонецЕсли;
    ТекстЗапроса=ТекстЗапроса+"
        |Группировка Док упорядочить по Док.НомерДок;
        |Группировка Послуга;
        |Группировка НомЛ;

Но почему то условие не учитывается и результат запроса пустой. Что не так? И как в 1с 7.7 в запросе правильно ввести условие по реквизиту с типом дата которая должна входить в интервал дат (типа Дата Между Дата1 И Дата2 как в 1с 8)?
1 PuhUfa
 
25.03.14
14:06
(0) Если ПоДатеСтворення = 0 Тогда
2 Kardash
 
25.03.14
14:07
(1) ПоДатеСтворення - это реквизит запроса, а не документа
3 PuhUfa
 
25.03.14
14:09
(2) какой текст запроса ты получишь когда ПоДатеСтворення=1 ?
4 Kardash
 
25.03.14
14:10
(3)
|Док=Документ.GSC_Замовлення.ТекущийДокумент;
        |ДатаСтв = Документ.GSC_Замовлення.ДатаСтворення;
        |Послуга=Документ.GSC_Замовлення.ТМЦ;
        |Контр=Документ.GSC_Замовлення.НазваКонтрагента;
        |НомЛ=Документ.GSC_Замовлення.НомерЛічильника;
        |КтьПос=Документ.GSC_Замовлення.КількістьПослуг;
        |СумаДок=Документ.GSC_Замовлення.ВартістьРобітЗПДВ;
|Условие ((ДатаСтв >= Дата1) И (ДатаСтв <= Дата2));
|Группировка Док упорядочить по Док.НомерДок;
        |Группировка Послуга;
        |Группировка НомЛ;
5 Duke1C
 
25.03.14
14:15
(4) А условия разве не после группировок должны описываться?
6 Kardash
 
25.03.14
14:16
(5) да писал уже и так и этак результат, тот же, не сейчас перепроверю в 100-й раз
7 Kardash
 
25.03.14
14:17
(5) не катет(((
8 Kardash
 
25.03.14
14:28
ап
9 Ivan0v-I-V
 
25.03.14
14:34
при
Если ПоДатеСтворення = 1 Тогда
у тебя в запросе нет периода
10 Kardash
 
25.03.14
14:38
(9) а он должен быть обязательно?
11 Kardash
 
25.03.14
14:40
(9) если так сделать, то заработает?:
Если ПоДатеСтворення = 0 Тогда
        ТекстЗапроса="
        |ПЕРИОД С Дата1 По Дата2;";
    Иначе
        НачДата = Дата(1,1,1);
        КонДата = ТекущаяДата();
        ТекстЗапроса="
        |ПЕРИОД С НачДата По КонДата;";
    КонецЕсли;

но тогда выборка документов будет очень большая, думаю что будет сильно тормозить...
12 пипец
 
25.03.14
14:41
документы запрашиваются либо ФСЕ, либо по датадок , точка
13 Kardash
 
25.03.14
14:42
(9) так работает, но кажется что не слишком оптимизировано..., ну ладно проверю на рабочей базе, там этих документов уже десятки тысяч... спасибо.
(12)ФСЕ???
14 пипец
 
25.03.14
16:04
(13) если период не указан вообще - то обрабатывается вся таблица