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


1С:Предприятие :: 1С:Предприятие 8 общая

Нужна помощь с запросом

Нужна помощь с запросом
Я
   katerinaUniv
 
31.01.18 - 12:58
Добрый день, конфигурация 1С:Финансист. Есть необходимость сформировать отчет, в котором будут все документы Заявка на расход ДС, и к ним добавить информацию о статусе согласования (регистр сведений СтатусыДокументов) и об оплате (регистр накопления План-факт движения ДДС, тип - обороты).
Почему-то выводит только оплаченные заявки (то есть те документы, по которым в обоих регистрах есть записи). Не могу понять, в чем причина. Помогите пожалуйста.

ВЫБРАТЬ
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка КАК Заявка,
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.Номер КАК Номер,
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.Дата КАК Дата,
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.Аналитика1 КАК Проект,
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.ЦФО КАК ЦФО,
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.СтатьяОборотов КАК СтатьяОборотов,
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.Контрагент КАК Контрагент,
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.ДоговорКонтрагента КАК Договор,
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.СчетНаОплату КАК СчетНаОплату,
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.НазначениеПлатежа КАК НазначениеПлатежа,
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.ВалютаДокумента КАК Валюта,
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.СуммаДокумента КАК СуммаЗаявки,
    удсСтатусыДокументов.Статус КАК Статус,
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.КурсВзаиморасчетов КАК Курс,
    ЕСТЬNULL(-удсПланФактПоступлениеСписаниеДСОбороты.СуммаДокументаОборот, 0) КАК СуммаОплаты,
    ЕСТЬNULL(удсПланФактПоступлениеСписаниеДСОбороты.Период, "") КАК ДатаОплаты,
    ЕСТЬNULL(удсПланФактПоступлениеСписаниеДСОбороты.Регистратор, "") КАК ДокументОплаты,
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.ИдентификаторПлатежа КАК ИдентификаторПлатежа,
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.СчетКонтрагента КАК СчетКонтрагента,
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.Проведен КАК Проведен,
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.СтатьяОборотов.Код КАК КодСтатьи
ИЗ
    Документ.удсЗаявкаНаРасходДС.РасшифровкаПлатежа КАК удсЗаявкаНаРасходДСРасшифровкаПлатежа
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.удсПланФактПоступлениеСписаниеДС.Обороты(&НачалоПериода, &ОкончаниеПериода, Запись, ) КАК удсПланФактПоступлениеСписаниеДСОбороты
        ПО (удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка = удсПланФактПоступлениеСписаниеДСОбороты.ДокументПлана)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.удсСтатусыДокументов КАК удсСтатусыДокументов
        ПО (удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка = удсСтатусыДокументов.Документ)
ГДЕ
    удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.ПометкаУдаления = ЛОЖЬ
    И ТИПЗНАЧЕНИЯ(удсПланФактПоступлениеСписаниеДСОбороты.Регистратор) = ТИП(Документ.удсСписаниеСРасчетногоСчета)
    И удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.Дата МЕЖДУ &ДатаС И &ДатаПо
    И ВЫБОР
            КОГДА &ЦФО <> ЗНАЧЕНИЕ(Справочник.удсЦФО.ПустаяСсылка)
                ТОГДА удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.ЦФО = &ЦФО
            ИНАЧЕ ИСТИНА
        КОНЕЦ
    И ВЫБОР
            КОГДА &Аналитика1 <> ЗНАЧЕНИЕ(Справочник.вэПроекты.ПустаяСсылка)
                ТОГДА удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.Аналитика1 = &Аналитика1
            ИНАЧЕ ИСТИНА
        КОНЕЦ
    И ВЫБОР
            КОГДА &Контрагент <> ЗНАЧЕНИЕ(Справочник.удсКонтрагенты.ПустаяСсылка)
                ТОГДА удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.Контрагент = &Контрагент
            ИНАЧЕ ИСТИНА
        КОНЕЦ
    И ВЫБОР
            КОГДА &ДоговорКонтрагента <> ЗНАЧЕНИЕ(Справочник.удсДоговорыКонтрагентов.ПустаяСсылка)
                ТОГДА удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.ДоговорКонтрагента = &ДоговорКонтрагента
            ИНАЧЕ ИСТИНА
        КОНЕЦ
    И ВЫБОР
            КОГДА &СтатьяОборотов <> ЗНАЧЕНИЕ(Справочник.удсСтатьиОборотовПоБюджету.ПустаяСсылка)
                ТОГДА удсЗаявкаНаРасходДСРасшифровкаПлатежа.СтатьяОборотов = &СтатьяОборотов
            ИНАЧЕ ИСТИНА
        КОНЕЦ
    И ВЫБОР
            КОГДА &Статус <> ЗНАЧЕНИЕ(Перечисление.удсСтатусыДокументов.ПустаяСсылка)
                ТОГДА удсСтатусыДокументов.Статус = &Статус
            ИНАЧЕ ИСТИНА
        КОНЕЦ
 
 
   dezss
 
1 - 31.01.18 - 13:00
перенеси условия из ГДЕ в соединения.
ты этими условиями левое сделал внутренним
   dezss
 
2 - 31.01.18 - 13:00
(1) сделал -> сделала
   dezss
 
3 - 31.01.18 - 13:02
Если хочется конкретики, то вот это условия:
удсЗаявкаНаРасходДСРасшифровкаПлатежа.Ссылка.ПометкаУдаления = ЛОЖЬ
не может быть выполнено, если удсЗаявкаНаРасходДСРасшифровкаПлатежа.ссылка = null
   katerinaUniv
 
4 - 31.01.18 - 13:05
(1) немного не понимаю
   katerinaUniv
 
5 - 31.01.18 - 13:06
(3) это запрос по документам (условие), так что null не может быть по определению
   Михаил Козлов
 
6 - 31.01.18 - 13:09
"И ТИПЗНАЧЕНИЯ(удсПланФактПоступлениеСписаниеДСОбороты.Регистратор) = ТИП(Документ.удсСписаниеСРасчетногоСчета)".
Попробуйте (пока) закомментарить это условие
А лучше - закомментарить все в ГДЕ.
   hhhh
 
7 - 31.01.18 - 13:11
(5) ТИПЗНАЧЕНИЯ(удсПланФактПоступлениеСписаниеДСОбороты.Регистратор) = ТИП(Документ.удсСписаниеСРасчетногоСчета)

какое значение у вас получится этого выражения, если неоплаченная заявка? Подумайте.
   1Сергей
 
8 - 31.01.18 - 13:12
(5) null может быть в регистре. А условием ты отсеила все null-ы. А следовательно и документы без записей в регистре
   katerinaUniv
 
9 - 31.01.18 - 13:14
(7) записей тогда нет, удовлетворяющих отбору
   katerinaUniv
 
10 - 31.01.18 - 13:14
(7) тип значения - условие убрала, а все равно записей нет
 
 Рекламное место пустует
   Михаил Козлов
 
11 - 31.01.18 - 13:28
(10) Попробуйте условие ГДЕ убрать.
   katerinaUniv
 
12 - 31.01.18 - 13:29
все-таки из-за условия
   dezss
 
13 - 31.01.18 - 13:30
(5) тьфу, туплю...названия все такие длинные...но там и другие условия есть, которые накладываются на то, что справа от ЛЕВОЕ
   katerinaUniv
 
14 - 31.01.18 - 13:30
как тогда исправить?
   katerinaUniv
 
15 - 31.01.18 - 13:30
И ТИПЗНАЧЕНИЯ(удсПланФактПоступлениеСписаниеДСОбороты.Регистратор) = ТИП(Документ.удсСписаниеСРасчетногоСчета)
   katerinaUniv
 
16 - 31.01.18 - 13:31
мне нужно ограничить записи из регистра накопления по типу регистратора - взять только те, что по списанию с расчетного счета выполнены. как лучше сделать это без потери записей?
   katerinaUniv
 
17 - 31.01.18 - 13:33
как правильно это сделать?
   Михаил Козлов
 
18 - 31.01.18 - 13:34
(15) Можно во вложенном запросе наложить условие.
Либо соединить по:
И (удсПланФактПоступлениеСписаниеДСОбороты.Регистратор ЕСТЬ NULL ИЛИ ТИПЗНАЧЕНИЯ(удсПланФактПоступлениеСписаниеДСОбороты.Регистратор) = ТИП(Документ.удсСписаниеСРасчетногоСчета))
   dezss
 
19 - 31.01.18 - 13:34
вот эти 2 условия тебе мешают....перенеси их в соединения

ТИПЗНАЧЕНИЯ(удсПланФактПоступлениеСписаниеДСОбороты.Регистратор) = ТИП(Документ.удсСписаниеСРасчетногоСчета)

ВЫБОР
    КОГДА &Статус <> ЗНАЧЕНИЕ(Перечисление.удсСтатусыДокументов.ПустаяСсылка)
        ТОГДА удсСтатусыДокументов.Статус = &Статус
    ИНАЧЕ ИСТИНА
КОНЕЦ
   dezss
 
20 - 31.01.18 - 13:35
(18) есть нулл не обязательно
   katerinaUniv
 
21 - 31.01.18 - 13:52
(18) Спасибо большое! Не знала, что так можно.


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