Имя: Пароль:
1C
1С v8
Запрос. Добавление условия.
0 Полька
 
26.03.14
08:44
В регистре СрокиИсполненияЗаказов 6 записей. В РегистрНакопления.ЗаказыПокупателей.Обороты 3 записи, соответствующие условию.
Делаю запрос. Все нормально.
Запрос.Текст="ВЫБРАТЬ
      |    СрокиИсполненияЗаказов.ЗаказПокупателя,    
      |    СрокиИсполненияЗаказов.Номенклатура,
      |    СрокиИсполненияЗаказов.Количество КАК КоличествоВЗаказе,
      |    ЗаказыПокупателейОбороты.КоличествоРасход КАК КоличествоОтгружено,
      |ИЗ
      |    РегистрСведений.СрокиИсполненияЗаказов КАК СрокиИсполненияЗаказов
      |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей.Обороты(, , Авто, ) КАК ЗаказыПокупателейОбороты
      |        ПО СрокиИсполненияЗаказов.ЗаказПокупателя = ЗаказыПокупателейОбороты.ЗаказПокупателя
      |            И СрокиИсполненияЗаказов.Номенклатура = ЗаказыПокупателейОбороты.Номенклатура
      |ГДЕ
      |    СрокиИсполненияЗаказов.ЗаказПокупателя.Дата МЕЖДУ &Дата1 И &Дата2
Но как только добавляю еще одно условие
|    И ТИПЗНАЧЕНИЯ(ЗаказыПокупателейОбороты.Регистратор) = ТИП(Документ.РеализацияТоваровУслуг)
в отбор попадает только 3 записи
1 shuhard
 
26.03.14
08:46
(0) перемести условие в :
- виртуальную таблицу
- подзапрос
- временную таблицу
- условие связи

но только не накладывай на результат
2 France
 
26.03.14
08:46
А догадаться, что регистратором может быть и другой документ невероятно сложно
3 Полька
 
26.03.14
08:48
(1) такой вариант у меня уже есть. там у меня 4 запроса. я учусь :)). хотела попробовать все в один запихнуть.
вот в условие связи попробовать.
4 Полька
 
26.03.14
08:49
(1) вернее так- работающий вариант из 4х запросов есть, хочу в один все попробовать.
(2) машина должна догадываться, что мне только эти доки отобрать?
5 France
 
26.03.14
09:04
(4) скорее Полька. Для левой таблицы значение регистратора каким будет?
6 shuhard
 
26.03.14
09:05
(4) [хочу в один все попробовать. ]
перемести условие в :

- виртуальную таблицу
- условие связи
7 Полька
 
26.03.14
09:10
Получилось. В условие связи добавила
8 ivanovnm
 
26.03.14
09:10
(0) Если остальные 3 записи не соответствуют условию, то для них ЗаказыПокупателейОбороты.Регистратор = NULL, далее ТИПЗНАЧЕНИЯ(NULL) = NULL, NULL приведенный в булево дает ЛОЖЬ

Вариант только один, привести условие к чему-то вроде

ПО ЗаказыПокупателейОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
9 Полька
 
26.03.14
09:13
Тогда вопрос задам так.
Что первее? Получается, что сначала связь, потом отборка по условиям?
10 ivanovnm
 
26.03.14
09:19
(9) да
11 ivanovnm
 
26.03.14
09:19
(9) а может и одновременно, при связывании проверяется условие