Имя: Пароль:
1C
1C 7.7
v7: Условие в запросе на реквизит документа (1С77)
,
0 СтепаЦВ
 
16.08.11
18:27
Всем привет!
Есть регистр «РезервыТМЦ», тип разумеется «Отстатки». Есть измерение «ЗаявкаПокупателя» - тип «Документ». В конфигурации есть документ резервирования - «Резерв», шапке которого есть реквизит «ДатаОкончания».
Задача: получить остатки по просроченным резервам!
ДатаОкончания = Регистр.РезервыТМЦ.ЗаявкаПокупателя.Резерв. ДатаОкончания;
Переменная «ДатаОкончания» в запросе почему-то пустая!
1 DrHiHi
 
16.08.11
18:33
телепаты сюда))))
покажи текст запроса
2 СтепаЦВ
 
16.08.11
18:34
СтрПериод = ?(ТекущаяДата() >= ПолучитьДатуТА(), "", "Период с ТекущаяДата() по ТекущаяДата();");
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |" + СтрПериод +
   "
   |Фирма = Регистр.РезервыТМЦ.Фирма;
   |Номенклатура = Регистр.РезервыТМЦ.Номенклатура;
   |Склад = Регистр.РезервыТМЦ.Склад;
   |ДоговорПокупателя = Регистр.РезервыТМЦ.ДоговорПокупателя;
   |ЗаявкаПокупателя = Регистр.РезервыТМЦ.ЗаявкаПокупателя;
   |ДатаОплаты = Регистр.РезервыТМЦ.ЗаявкаПокупателя.ЗаявкаПокупателя.ДатаОплаты;
   |Количество = Регистр.РезервыТМЦ.Количество;
   |Функция КоличествоКонОст = КонОст(Количество);
   |Группировка Фирма;
   |Группировка Склад;
   |Группировка Номенклатура без групп;
   |Группировка ДоговорПокупателя;
   |Группировка ЗаявкаПокупателя;
   |Группировка ДатаОплаты;
   |Условие(ДатаОплаты = ВыбДата);
   |";
3 СтепаЦВ
 
16.08.11
18:34
Ругается на переменную «ДатаОплаты»
4 Jstunner
 
16.08.11
18:36
(3) ЗаявкаПокупателя.ЗаявкаПокупателя?
5 DrHiHi
 
16.08.11
18:36
я в шоке... а что по одному заказу можно только один раз зарезервировать?? а если товара сейчас нету и хотят частично зарезервировать %))
ДатаОкончания = Регистр.РезервыТМЦ.ЗаявкаПокупателя.Резерв. ДатаОкончания;
|ДатаОплаты = Регистр.РезервыТМЦ.ЗаявкаПокупателя.ЗаявкаПокупателя.ДатаОплаты;

что из них правильное??
6 СтепаЦВ
 
16.08.11
18:37
(5) |ДатаОплаты = Регистр.РезервыТМЦ.ЗаявкаПокупателя.ЗаявкаПокупателя.ДатаОплаты;
7 СтепаЦВ
 
16.08.11
18:38
(4) ИмяРегистра.ИмяИзмерения.ТипДокумента.ИмяРеквизита
8 KRV
 
16.08.11
18:39
Случаем не Скуль? Если да, то четыре точки не будет работать - укорачивай запрос
9 СтепаЦВ
 
16.08.11
18:39
(4) Регистр.ИмяРегистра.ИмяИзмерения.ТипДокумента.ИмяРеквизита
10 СтепаЦВ
 
16.08.11
18:39
(8) Да, SQL
11 Voronve
 
16.08.11
18:40
(0) У тебя по регистру "РезервыТМЦ" проходят не только документы "ЗаявкаПокупателя" с полем "ДатаОплаты, но и еще какието (типа снятия резерва), где поле "ДатаОплаты" отсутствует. Поставь условие на вид документа.
12 СтепаЦВ
 
16.08.11
18:42
(11) Я для этого и указываю тип документа, когда определяю переменную
13 KRV
 
16.08.11
18:43
|ДатаОплаты = Регистр.РезервыТМЦ.ЗаявкаПокупателя.ЗаявкаПокупателя.ДатаОплаты;
не взлетит!
14 СтепаЦВ
 
16.08.11
18:44
(13) Что значит «укорачивай запрос»?
15 Voronve
 
16.08.11
18:44
(12) Добавь в запрос
|Док = Регистр.РезервыТМЦ.ТекущийДокумент;
...
|Условие (Док.Вид() = ""ЗаявкаПокупателя"";
16 KRV
 
16.08.11
18:45
(14) В (15) примерно ясно описано
17 KRV
 
16.08.11
18:46
+(16) не ест скуль через столько точек - ДБФ ест :)) Избитая тема...
18 СтепаЦВ
 
16.08.11
18:52
Спасибо всем!
Особенно:
KRV
и
Voronve
19 Ёпрст
 
16.08.11
18:58
(0) Измерение ЗаявкаПокупателя - типа <Документ> без вида ?

если да, то в условие запихай так:
//|ДатаОплаты = Регистр.РезервыТМЦ.ЗаявкаПокупателя.ЗаявкаПокупателя.ДатаОплаты;
//|Условие(ДатаОплаты = ВыбДата);
|Условие(ЗаявкаПокупателя.ЗаявкаПокупателя.ДатаОплаты = ВыбДата);

немного тормознее будет, но будет фильтровать.
20 Ёпрст
 
16.08.11
18:59
Ну и не слушай (15) - при функции КонОст это полный бред.
21 KRV
 
16.08.11
19:05
(20) Работает? Не трожЬ !! :)))
Закон Брукера: Даже маленькая практика стоит большой теории.