Имя: Пароль:
1C
1С v8
ДокументОснование в запросе
0 ogion83
 
31.07.13
13:39
Помогите в запросе задать условие: "АктВыгрузки" не имеет документа основания "ПСА".
ВЫБРАТЬ
    Сырье.Регистратор.Контрагент,
    Сырье.Регистратор,
    Сырье.МПЗ,
    Сырье.Количество
ИЗ
    РегистрНакопления.Сырье КАК Сырье
ГДЕ
    Сырье.Регистратор ССЫЛКА Документ.АктВыгрузки
1 Maxus43
 
31.07.13
13:39
в АктВыгрузки есть этот реквизит?
2 ale-sarin
 
31.07.13
13:40
НЕ Сырье.Регистратор.ДокументОснование ССЫЛКА Документ.ПСА
как-то так
3 Maxus43
 
31.07.13
13:41
ГДЕ
    Сырье.Регистратор ССЫЛКА Документ.АктВыгрузки
И Выразить(Сырье.Регистратор Как Документ.АктВыгрузки).Реквизит = Значение(Документ.ПСА.пустаяссылка)
4 ogion83
 
31.07.13
13:45
(1)Нет
5 Maxus43
 
31.07.13
13:46
(4) а как определяешь?
6 ogion83
 
31.07.13
13:47
(2) не прокатило
7 ogion83
 
31.07.13
13:48
через запрос
8 ogion83
 
31.07.13
13:51
(уточню)Акт является основанием для ПСА
9 ale-sarin
 
31.07.13
13:52
(4)(8) Ввод на основании сам по себе не регистрирует связь между документами.
В типовых обычно используется реквизит "ДокументОснование".
10 ale-sarin
 
31.07.13
13:53
(8) Ух ты. А в (0) наоборот.
В ПСА есть реквизит с типом Акт?
11 Maxus43
 
31.07.13
13:53
связь может быть в критериях отбора, но они зело тормозные.
(8) мы догадаться должны как ты связь выявляешь? от этого и зависит какой запрос будет
12 ogion83
 
31.07.13
13:54
(10) в ПСА есть реквизит "ДокументОснование" (Акт)
13 ale-sarin
 
31.07.13
13:55
(12) Т.е. нужно выбрать Акты, на основании которых не сделан ПСА, так?
14 ogion83
 
31.07.13
13:55
(10) Ага попутал
15 ogion83
 
31.07.13
13:56
(13) Да
16 Maxus43
 
31.07.13
13:58
ВЫБРАТЬ
    АктВыгрузки.Ссылка
ИЗ
    Документ.ЗаказПокупателя КАК АктВыгрузки
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеУслуг КАК ПСА
        ПО АктВыгрузки.Ссылка = ПСА.ДокументОснование
ГДЕ
    ПСА.Ссылка ЕСТЬ NULL

тока доки свои используй
17 ogion83
 
31.07.13
14:21
Благодарствую, вот так вышло:
ВЫБРАТЬ
    Сырье.Регистратор.Контрагент,
    Сырье.Регистратор,
    Сырье.МПЗ,
    Сырье.Количество
ИЗ
    РегистрНакопления.Сырье КАК Сырье
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПСАЮр КАК ПСАЮр
        ПО Сырье.Регистратор = ПСАЮр.ДокументОснование
ГДЕ
    Сырье.Регистратор ССЫЛКА Документ.АктВыгрузки
        И ПСАЮр.Ссылка Есть NULL
18 Serginio1
 
31.07.13
14:35
Что типа такого
| ТИПЗНАЧЕНИЯ(Сырье.Регистратор.ДокументОснование) = &Тип";
    
Запрос.УстановитьПараметр("Тип",Тип("NULL"));
19 Maxus43
 
31.07.13
14:39
(18) есть тайный смысл такого изврата с параметрами?
Ну и в регистраторе нет Документоснования, это к слову
20 Serginio1
 
31.07.13
15:30
(19)
ВЫБРАТЬ
    Сырье.Регистратор.Контрагент,
    Сырье.Регистратор,
    Сырье.МПЗ,
    Сырье.Количество
ИЗ
    РегистрНакопления.Сырье КАК Сырье
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПСАЮр КАК ПСАЮр
        ПО Сырье.Регистратор = ПСАЮр.Ссылка
ГДЕ

    ТИПЗНАЧЕНИЯ(ПСАЮр.ДокументОснование) = &Тип
21 Serginio1
 
31.07.13
15:37
(19) Тайный смысл в том что документ основание это составной тип и в БД хранится ввиде 2 полей как тип и ссылка. Обращение ТИПЗНАЧЕНИЯ(ПСАЮр.ДокументОснование)=&Тип
это условие по полю тип. Если значение не выбрано то в этом поле Тип("NULL")
22 Serginio1
 
31.07.13
15:59
Прошу прощения
ВЫБРАТЬ
    Сырье.Регистратор.Контрагент,
    Сырье.Регистратор,
    Сырье.МПЗ,
    Сырье.Количество
ИЗ
    РегистрНакопления.Сырье КАК Сырье
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АктВыгрузки КАК АктВыгрузки
        ПО Сырье.Регистратор = АктВыгрузки.Ссылка
ГДЕ

    ТИПЗНАЧЕНИЯ(АктВыгрузки.ДокументОснование) <> (Тип(Документ.ПСАЮр)