Вход | Регистрация
 

Не отрабатывает условие в запросе

Не отрабатывает условие в запросе
Я
   _Дайвер_
 
05.08.19 - 22:04
Пишу отчет на СКД по выборке данных из регистра сведений, в регистре есть 2 измерения
1-е измерение = тип документ.ссылка (регистратор)
2-е измерение состоит из 8 типов документ.ссылка (финдокумент)

мне нужна выборка "регистраторов" только те в которых не участвует документ СчетНаОплату  

вот условие:

ГДЕ
    регистратор.Основание.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    И регистратор.ФинансовыйДокумент.ПометкаУдаления = ЛОЖЬ
    И ТИПЗНАЧЕНИЯ(финдокумент.ФинансовыйДокумент.Ссылка) <> ТИП(Документ.СчетНаОплатуПокупателю)

В итоге в результат отчета попадает запись где этот тип есть, в самом регистре 2 записи по регистратору для каждого типа, одна из них с типом СчетНаОплату.
Пробовал и группировку и различные, что может быть?
 
 
   Консультант Баранов
 
1 - 05.08.19 - 22:13
НЕ финдокумент.ФинансовыйДокумент.Ссылка ССЫЛКА Документ.СчетНаОплатуПокупателю
   RomanYS
 
2 - 05.08.19 - 22:15
(0)(1) ".Ссылка" - лишнее
   _Дайвер_
 
3 - 05.08.19 - 22:16
(1) Так тоже пробовал, это аналогично моему условию
   RomanYS
 
4 - 05.08.19 - 22:17
(0) Какая-то путаница:
- измерение -  "регистратор". Не нормально так называть измерение.
-  в запросе есть  регистратор.ФинансовыйДокумент и финдокумент.ФинансовыйДокумент. Это же разные сущности?
   _Дайвер_
 
5 - 05.08.19 - 22:22
(4) это заявка, опечатка, во:
ГДЕ
    заявка.Основание.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания 
    И заявка.ФинансовыйДокумент.ПометкаУдаления = ЛОЖЬ 
    И ТИПЗНАЧЕНИЯ(заявка.ФинансовыйДокумент.Ссылка) <> ТИП(Документ.СчетНаОплатуПокупателю) 

Основание - 1 измерение
ФинансовыйДокумент - 2 измерение
   RomanYS
 
6 - 05.08.19 - 22:24
(5) ясности не добавило
Если "ФинансовыйДокумент - 2 измерение", то зачем брать заявка.ФинансовыйДокумент?
И ".Ссылка" убери.
   _Дайвер_
 
7 - 05.08.19 - 22:28
Попробовал через временную таблицу сделать, результат тот же (6) ссылку убрал, для наглядности
   hhhh
 
8 - 05.08.19 - 22:33
(6) походу Заявка - это имя регистра
   hhhh
 
9 - 05.08.19 - 22:34
(7) для наглядности убери Ссылка. Она всё портит.
   _Дайвер_
 
10 - 05.08.19 - 22:35
(6) (8) Именно, все напутал)))
ГДЕ
    ТИПЗНАЧЕНИЯ(РегистрСведений.ФинансовыйДокумент) <> ТИП(Документ.СчетНаОплатуПокупателю)
    И РегистрСведений.ФинансовыйДокумент.ПометкаУдаления = ЛОЖЬ
    И РегистрСведений.Основание.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
   _Дайвер_
 
11 - 05.08.19 - 22:37
(9) Уже убрал
   hhhh
 
12 - 05.08.19 - 22:42
(11) ну похоже у тебя в конечных полях и отборах в СКД нет этого поля ФинансовыйДокумент.
   _Дайвер_
 
13 - 05.08.19 - 22:49
(12) В отборах нет, они мне вроде как и не нужны, я же хочу получить все записи по 1-му измерению где вообще нет записей со 2-м измерением.

т.е. может быть
Заявка 1 - Счет на оплату 0000001
Заявка 1 - Поступление товаров и услуг 0000001
Заявка 2 - Поступление товаров и услуг 0000002

Мне нужна только 2-я заявка
   hhhh
 
14 - 05.08.19 - 22:56
(13) СКД  это такая штука, если у тебя нет поля ФининсовыйДокумент, то оно полностью вычищается из запроса.

То есть твой запрос такой

ГДЕ
    РегистрСведений.Основание.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
   _Дайвер_
 
15 - 05.08.19 - 23:10
(14) Пробовал выводить, в отчет попадают все записи, и по 1-му измерению и по 2-му
   _Дайвер_
 
16 - 05.08.19 - 23:13
С помощью "различные" отчет приобретает нужный вид, но выводятся строки противоречащие условию 
И ТИПЗНАЧЕНИЯ(заявка.ФинансовыйДокумент.Ссылка) <> ТИП(Документ.СчетНаОплатуПокупателю)
   _Дайвер_
 
17 - 05.08.19 - 23:29
Спасибо всем!!!

Переформировал условия, пошел от обратного
в ВТ_ТаблицаЗакрытыхЗаявок, заполнил все строки с заявками в которых есть счет на оплату,
в основном запросе поставил условие где ссылка не в ВТ_ТаблицаЗакрытыхЗаявок, теперь отрабатывает как и хотел
   catena
 
18 - 06.08.19 - 06:50
(17)Если бы задачу объяснял, как в (13), правильный ответ получил бы в первом ответе.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.