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

1С:Предприятие ::

Метки:

Проверить на существование подчиненного документа

Я
   asder117
 
12.08.17 - 10:28
Доброго времени суток. Есть конфигурация на базе БП 2.0. В данной конфигурации есть документы "регистрация договоров аренды" их много. у каждого в структуре есть акты приема и возврата помещений сделанных на основании договоров.Также есть документ расторжение договора.
Мне надо отобрать все документы у которых нет введенного на основании документа расторжения.
Как вариант выбрать все действующие договора. потом перебирать все доки расторжения на вхождении договора как основание расторжения. и если не входит выводить в таблицу.
Задача возникла из-за того что в базе есть договора со статусом зарегистрированные и у них есть док расторжения. мне их надо отловить. Спасибо заранее
 
 
   Новиков
 
1 - 12.08.17 - 11:24
Сделай Левое Соединение по полю связи документа "регистрация" и "расторжения" и наложи отбор на какое-то поле из расторжения на NULL. И получить свой результат.
   asder117
 
2 - 12.08.17 - 12:06
(1) спасибо. это я делал. но похоже не до конца. а про " наложи отбор на какое-то поле из расторжения на NULL" можно по-подробнее
   Новиков
 
3 - 12.08.17 - 12:28
ВЫБРАТЬ
    ДокументОтец.Ссылка
ИЗ
    Документ.РеализацияТоваровУслуг КАК ДокументОтец
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетКомиссионера КАК ДокументСын
        ПО ДокументОтец.Ссылка = ДокументСын.ДокументОснование
ГДЕ
    ДокументСын.ДокументОснование ЕСТЬ NULL

ДокументСын вводится на основании ДокументОтец, при этом ссылка на отца пишется в документоснование сына.

Подставь свои названия документов и поле связи ("ДокументОснование") и получишь что нужно.
   asder117
 
4 - 12.08.17 - 20:32
(3) уже сам дошел..спасибо
   rudnitskij
 
5 - 12.08.17 - 21:56
еще вот так можно:
"
ВЫБРАТЬ
    ЗаключениеДоговора.Ссылка,
    ВложенныйЗапрос.Расторжение
ИЗ
    Документ.ЗаключениеДоговора КАК ЗаключениеДоговора
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            РасторжениеДоговора.Ссылка КАК Расторжение,
            РасторжениеДоговора.Заключение КАК Основание
        ИЗ
            Документ.РасторжениеДоговора КАК РасторжениеДоговора) КАК ВложенныйЗапрос
        ПО ЗаключениеДоговора.Ссылка = ВложенныйЗапрос.Основание
ГДЕ
    НЕ ВложенныйЗапрос.Расторжение ССЫЛКА Документ.РасторжениеДоговора
"
   rudnitskij
 
6 - 12.08.17 - 21:56
(5) выберет все заключения договоров, по которым нет расторжения
   asder117
 
7 - 12.08.17 - 22:02
(6) спасибо попробуем
   asder117
 
8 - 12.08.17 - 22:57
(6) сделал ВЫБРАТЬ
    ЗаключениеДоговора.Ссылка,
    ВложенныйЗапрос.Расторжение
ИЗ
    Документ.бит_РегистрацияДоговоровАренды КАК ЗаключениеДоговора
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            РасторжениеДоговора.Ссылка КАК Расторжение,
            РасторжениеДоговора.Основание КАК Основание
        ИЗ
            Документ.бит_РасторжениеДоговора КАК РасторжениеДоговора) КАК ВложенныйЗапрос
        ПО ЗаключениеДоговора.Ссылка = ВложенныйЗапрос.Основание
ГДЕ
    НЕ ВложенныйЗапрос.Расторжение ССЫЛКА Документ.бит_РасторжениеДоговора

ответ пуст
   Serg_1960
 
9 - 12.08.17 - 23:34
Болванка

ВЫБРАТЬ Док.Ссылка ИЗ Документ.бит_РегистрацияДоговоровАренды КАК Док
ГДЕ Док.Ссылка НЕ В
(ВЫБРАТЬ Осн.Основание ИЗ Документ.РасторжениеДоговора КАК Осн)
   asder117
 
10 - 13.08.17 - 09:11
(9) спасибо посмотрю. (3) заработало как надо
 
 
   rudnitskij
 
11 - 13.08.17 - 11:26
(8) если в последнем условии убрать НЕ - вам выведет все договоры? и заключенные, и расторгнутые?
   asder117
 
12 - 14.08.17 - 11:28
(11) У меня вообще пустой выдает. я вроде решил по (3) пока.
   asder117
 
13 - 14.08.17 - 11:29
(11) да выводит все договора
   rudnitskij
 
14 - 14.08.17 - 13:36
(13) значит там надо не по ссылке было ориентироваться, а по ее заполненности, например
ГДЕ 
    НЕ ВложенныйЗапрос.Расторжение = &ПараметрПустойДок
...и присвоить параметру значение Документы.Расторжение.ПустаяСсылка()
   1dvd
 
15 - 14.08.17 - 14:00
(14) Руки оборвать

ГДЕ
    НЕ ВложенныйЗапрос.Расторжение = Значение(Документ.Расторжение.ПустаяСсылка)
   asder117
 
16 - 14.08.17 - 15:26
(14) (15) и в том и в этом вываливает все договора

ВЫБРАТЬ
    ЗаключениеДоговора.Ссылка,
    ВложенныйЗапрос.Расторжение
ИЗ
    Документ.бит_РегистрацияДоговоровАренды КАК ЗаключениеДоговора
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            РасторжениеДоговора.Ссылка КАК Расторжение,
            РасторжениеДоговора.Основание КАК Основание
        ИЗ
            Документ.бит_РасторжениеДоговора КАК РасторжениеДоговора) КАК ВложенныйЗапрос
        ПО ЗаключениеДоговора.Ссылка = ВложенныйЗапрос.Основание
ГДЕ
    НЕ ВложенныйЗапрос.Расторжение = Значение(Документ.бит_РасторжениеДоговора.ПустаяСсылка)


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