Имя: Пароль:
1C
1С v8
Почему не работает запрос?
, ,
0 егаис
 
16.01.15
08:13
|ВЫБРАТЬ
        |    ХозрасчетныйОстатки.Счет                КАК Счет,
        |    ХозрасчетныйОстатки.Субконто1           КАК Субконто1,
        |    ХозрасчетныйОстатки.Субконто2           КАК Субконто2,
        |    ХозрасчетныйОстатки.Субконто3           КАК Субконто3,
        |    ХозрасчетныйОстатки.СуммаОстатокДт      КАК СуммаОстатокДт,
        |    ХозрасчетныйОстатки.КоличествоОстатокДт КАК КоличествоОстатокДт
        |ИЗ
        |    РегистрБухгалтерии.Хозрасчетный.Остатки(
        |        &Период,
        |        Счет В (&СчетаУчетаСпецодежды), // 10.11.1
        |        ,
        |        Организация = &Организация
        |            И (Субконто3 = &ФизЛицо ИЛИ Субконто3 ЕСТЬ NULL)
        |            И Субконто2 ССЫЛКА Документ.ПартияМатериаловВЭксплуатации
        |    ) КАК ХозрасчетныйОстатки
        |ИНДЕКСИРОВАТЬ ПО
        |    Субконто1,
        |    Субконто2,
        |    Субконто3
        |;

Запрос.УстановитьПараметр("ФизЛицо", ДокОбъект.ФизическоеЛицо);

Это часть запроса. Но вопрос в том, что если Физлицо в документе не заполнено, то по идее запрос должен вернуть все записи по всем физлицам. Но не работает почему-то.
1 Я не курил
 
16.01.15
08:14
(0) не должен
2 егаис
 
16.01.15
08:15
в иерархии?
3 Explorer1c
 
16.01.15
08:16
Кстати кто подскажет как указать в запросе условие на активность-пассивность счета? Тк это системное перечисление то хз как его указывать)
4 Andrewww123
 
16.01.15
08:17
(0) И Выбор Когда &ФизЛицо = Значение(Справочник.ФизЛица.ПустаяСсылка) Тогда Истина Иначе Субконто3 = &ФизЛицо Конец
5 Я не курил
 
16.01.15
08:17
(2) Проверять на заполнение физлица, и если не заполнено через СтрЗаменить() убрать условие из запроса можно, как вариант или пойти сложным путём через СКД и {}
6 Я не курил
 
16.01.15
08:18
+(5) или как (4) неплохой вариант
7 mkanaev
 
16.01.15
08:18
И (Субконто3 = &ФизЛицо ИЛИ Субконто3 ЕСТЬ NULL)

null не будет...
Если ПВХ описывает многотиповое субконто то проверка на НЕОПРЕДЕЛЕНО если один тип то на пустое значение типа
8 mkanaev
 
16.01.15
08:19
(3) Значение(ВидСчета.Активный)
Значение(ВидСчета.Пассивный)
9 Explorer1c
 
16.01.15
08:19
(8) О, спасибоо!!!!!
10 Chameleon1980
 
16.01.15
08:21
выбор когда &естьусловие
тогда
условие
иначе
истина
11 егаис
 
16.01.15
08:22
Спасибо большое
12 егаис
 
16.01.15
08:28
эмммм...
{(16, 39)}: Неверные параметры "Справочник.ФизЛица.ПустаяСсылка"
И     ВЫБОР КОГДА &ФизЛицо = Значение(<<?>>Справочник.ФизЛица.ПустаяСсылка) ТОГДА
13 Andrewww123
 
16.01.15
08:29
(5) Вариант с "СтрЗаменить()" должен быть удачнее, потому что избавляет SQL-сервер от одной проверки в принципе..
14 Andrewww123
 
16.01.15
08:29
(12)
Ну справочник-то наверное "ФизическиеЛица" называется?
15 егаис
 
16.01.15
08:31
вот блин, очевидное не заметил.
Спасибо )
16 Chameleon1980
 
16.01.15
08:33
запрос покажи
17 Бертыш
 
16.01.15
08:34
(0) Не хочет он сегодня работать
18 Chameleon1980
 
16.01.15
08:38
всех с прошедшими
19 unregistered
 
16.01.15
08:49
(0) Чтобы запрос вернул остатки по всем физлицам условие должно быть:

&ФизЛицо = Значение(Справочник.ФизЛица.ПустаяСсылка) ИЛИ Субконто3 = &ФизЛицо
20 Chameleon1980
 
16.01.15
09:44
да  блмн


выбор когда &естьусловие
тогда
условие
иначе
истина
21 Chameleon1980
 
16.01.15
09:45
думаем
22 DrZombi
 
гуру
16.01.15
09:56
(0) Ты, родимый... Все же соблюдай последовательность условия. Сперва Пустое, потом Заполненное.

Субконто3 ЕСТЬ NULL ИЛИ Субконто3 = &ФизЛицо

И к тому же, на нулл проверять так:

ЕстьNull(Субконто3 ,Значение(Справочник.ТакойТо.ПустаяССылка)) = Значение(Справочник.ТакойТо.ПустаяССылка)
23 Chameleon1980
 
16.01.15
10:02
выбор когда &естьусловие
тогда
условие
иначе
истина

Запрос.УстановитьПараметр("ЕстьУсловие",Истина)
Запрос.УстановитьПараметр("НужныйПарамтр",ЗначениеНужногоПараметра);
24 Explorer1c
 
16.01.15
10:14
(8) А как Активно- пассивный задать в условиях?) а то там не проходят Значение(ВидСчета.АктивныйПассивный) или Значение(ВидСчета.Активный_Пассивный)
25 Chameleon1980
 
16.01.15
10:19
сп смотрим
26 Explorer1c
 
16.01.15
10:49
(25) Спс надо было написать (ВидСчета.АктивноПассивный)
27 Vladal
 
модератор
16.01.15
11:43
(3), (26) Надо было создать новую тему
Закон Брукера: Даже маленькая практика стоит большой теории.