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

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

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

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

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

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

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