|
Нужна помощь с запросом | ☑ | ||
---|---|---|---|---|
0
katerinaUniv
31.01.18
✎
12:58
|
Добрый день, конфигурация 1С:Финансист. Есть необходимость сформировать отчет, в котором будут все документы Заявка на расход ДС, и к ним добавить информацию о статусе согласования (регистр сведений СтатусыДокументов) и об оплате (регистр накопления План-факт движения ДДС, тип - обороты).
Почему-то выводит только оплаченные заявки (то есть те документы, по которым в обоих регистрах есть записи). Не могу понять, в чем причина. Помогите пожалуйста. ВЫБРАТЬ удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка КАК Заявка, удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.Номер КАК Номер, удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.Дата КАК Дата, удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.Аналитика1 КАК Проект, удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.ЦФО КАК ЦФО, удсЗаявкаНаРасходДСРасшифровкаПлатежа.СтатьяОборотов КАК СтатьяОборотов, удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.Контрагент КАК Контрагент, удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.ДоговорКонтрагента КАК Договор, удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.СчетНаОплату КАК СчетНаОплату, удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.НазначениеПлатежа КАК НазначениеПлатежа, удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.ВалютаДокумента КАК Валюта, удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.СуммаДокумента КАК СуммаЗаявки, удсСтатусыДокументов.Статус КАК Статус, удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.КурсВзаиморасчетов КАК Курс, ЕСТЬNULL(-удсПланФактПоступлениеСписаниеДСОбороты.СуммаДокументаОборот, 0) КАК СуммаОплаты, ЕСТЬNULL(удсПланФактПоступлениеСписаниеДСОбороты.Период, "") КАК ДатаОплаты, ЕСТЬNULL(удсПланФактПоступлениеСписаниеДСОбороты.Регистратор, "") КАК ДокументОплаты, удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.ИдентификаторПлатежа КАК ИдентификаторПлатежа, удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.СчетКонтрагента КАК СчетКонтрагента, удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.Проведен КАК Проведен, удсЗаявкаНаРасходДСРасшифровкаПлатежа.СтатьяОборотов.Код КАК КодСтатьи ИЗ Документ.удсЗаявкаНаРасходДС.РасшифровкаПлатежа КАК удсЗаявкаНаРасходДСРасшифровкаПлатежа ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.удсПланФактПоступлениеСписаниеДС.Обороты(&НачалоПериода, &ОкончаниеПериода, Запись, ) КАК удсПланФактПоступлениеСписаниеДСОбороты ПО (удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка = удсПланФактПоступлениеСписаниеДСОбороты.ДокументПлана) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.удсСтатусыДокументов КАК удсСтатусыДокументов ПО (удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка = удсСтатусыДокументов.Документ) ГДЕ удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.ПометкаУдаления = ЛОЖЬ И ТИПЗНАЧЕНИЯ(удсПланФактПоступлениеСписаниеДСОбороты.Регистратор) = ТИП(Документ.удсСписаниеСРасчетногоСчета) И удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.Дата МЕЖДУ &ДатаС И &ДатаПо И ВЫБОР КОГДА &ЦФО <> ЗНАЧЕНИЕ(Справочник.удсЦФО.ПустаяСсылка) ТОГДА удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.ЦФО = &ЦФО ИНАЧЕ ИСТИНА КОНЕЦ И ВЫБОР КОГДА &Аналитика1 <> ЗНАЧЕНИЕ(Справочник.вэПроекты.ПустаяСсылка) ТОГДА удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.Аналитика1 = &Аналитика1 ИНАЧЕ ИСТИНА КОНЕЦ И ВЫБОР КОГДА &Контрагент <> ЗНАЧЕНИЕ(Справочник.удсКонтрагенты.ПустаяСсылка) ТОГДА удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.Контрагент = &Контрагент ИНАЧЕ ИСТИНА КОНЕЦ И ВЫБОР КОГДА &ДоговорКонтрагента <> ЗНАЧЕНИЕ(Справочник.удсДоговорыКонтрагентов.ПустаяСсылка) ТОГДА удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.ДоговорКонтрагента = &ДоговорКонтрагента ИНАЧЕ ИСТИНА КОНЕЦ И ВЫБОР КОГДА &СтатьяОборотов <> ЗНАЧЕНИЕ(Справочник.удсСтатьиОборотовПоБюджету.ПустаяСсылка) ТОГДА удсЗаявкаНаРасходДСРасшифровкаПлатежа.СтатьяОборотов = &СтатьяОборотов ИНАЧЕ ИСТИНА КОНЕЦ И ВЫБОР КОГДА &Статус <> ЗНАЧЕНИЕ(Перечисление.удсСтатусыДокументов.ПустаяСсылка) ТОГДА удсСтатусыДокументов.Статус = &Статус ИНАЧЕ ИСТИНА КОНЕЦ |
|||
1
dezss
31.01.18
✎
13:00
|
перенеси условия из ГДЕ в соединения.
ты этими условиями левое сделал внутренним |
|||
2
dezss
31.01.18
✎
13:00
|
(1) сделал -> сделала
|
|||
3
dezss
31.01.18
✎
13:02
|
Если хочется конкретики, то вот это условия:
удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.ПометкаУдаления = ЛОЖЬ не может быть выполнено, если удсЗаявкаНаРасходДСРасшифровкаПлатежа.ссылка = null |
|||
4
katerinaUniv
31.01.18
✎
13:05
|
(1) немного не понимаю
|
|||
5
katerinaUniv
31.01.18
✎
13:06
|
(3) это запрос по документам (условие), так что null не может быть по определению
|
|||
6
Михаил Козлов
31.01.18
✎
13:09
|
"И ТИПЗНАЧЕНИЯ(удсПланФактПоступлениеСписаниеДСОбороты.Регистратор) = ТИП(Документ.удсСписаниеСРасчетногоСчета)".
Попробуйте (пока) закомментарить это условие А лучше - закомментарить все в ГДЕ. |
|||
7
hhhh
31.01.18
✎
13:11
|
(5) ТИПЗНАЧЕНИЯ(удсПланФактПоступлениеСписаниеДСОбороты.Регистратор) = ТИП(Документ.удсСписаниеСРасчетногоСчета)
какое значение у вас получится этого выражения, если неоплаченная заявка? Подумайте. |
|||
8
1Сергей
31.01.18
✎
13:12
|
(5) null может быть в регистре. А условием ты отсеила все null-ы. А следовательно и документы без записей в регистре
|
|||
9
katerinaUniv
31.01.18
✎
13:14
|
(7) записей тогда нет, удовлетворяющих отбору
|
|||
10
katerinaUniv
31.01.18
✎
13:14
|
(7) тип значения - условие убрала, а все равно записей нет
|
|||
11
Михаил Козлов
31.01.18
✎
13:28
|
(10) Попробуйте условие ГДЕ убрать.
|
|||
12
katerinaUniv
31.01.18
✎
13:29
|
все-таки из-за условия
|
|||
13
dezss
31.01.18
✎
13:30
|
(5) тьфу, туплю...названия все такие длинные...но там и другие условия есть, которые накладываются на то, что справа от ЛЕВОЕ
|
|||
14
katerinaUniv
31.01.18
✎
13:30
|
как тогда исправить?
|
|||
15
katerinaUniv
31.01.18
✎
13:30
|
И ТИПЗНАЧЕНИЯ(удсПланФактПоступлениеСписаниеДСОбороты.Регистратор) = ТИП(Документ.удсСписаниеСРасчетногоСчета)
|
|||
16
katerinaUniv
31.01.18
✎
13:31
|
мне нужно ограничить записи из регистра накопления по типу регистратора - взять только те, что по списанию с расчетного счета выполнены. как лучше сделать это без потери записей?
|
|||
17
katerinaUniv
31.01.18
✎
13:33
|
как правильно это сделать?
|
|||
18
Михаил Козлов
31.01.18
✎
13:34
|
(15) Можно во вложенном запросе наложить условие.
Либо соединить по: И (удсПланФактПоступлениеСписаниеДСОбороты.Регистратор ЕСТЬ NULL ИЛИ ТИПЗНАЧЕНИЯ(удсПланФактПоступлениеСписаниеДСОбороты.Регистратор) = ТИП(Документ.удсСписаниеСРасчетногоСчета)) |
|||
19
dezss
31.01.18
✎
13:34
|
вот эти 2 условия тебе мешают....перенеси их в соединения
ТИПЗНАЧЕНИЯ(удсПланФактПоступлениеСписаниеДСОбороты.Регистратор) = ТИП(Документ.удсСписаниеСРасчетногоСчета) ВЫБОР КОГДА &Статус <> ЗНАЧЕНИЕ(Перечисление.удсСтатусыДокументов.ПустаяСсылка) ТОГДА удсСтатусыДокументов.Статус = &Статус ИНАЧЕ ИСТИНА КОНЕЦ |
|||
20
dezss
31.01.18
✎
13:35
|
(18) есть нулл не обязательно
|
|||
21
katerinaUniv
31.01.18
✎
13:52
|
(18) Спасибо большое! Не знала, что так можно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |