Имя: Пароль:
1C
1С v8
Условный выбор в запросе СКД
0 Pyryrym
 
16.12.20
13:29
У меня есть отчет на скд, куда передается параметр "Читатель". Нужно, если он типа Справочник.Читатели, в запросе установить в запросе условие ВыдачаИПриемКнигОстатки.Выдача.Читатель = &Читатель, если другого типа, то не применять никакого условия.

ВЫБРАТЬ
    ВыдачаИПриемКнигОстатки.Книга КАК Книга,
    ВыдачаИПриемКнигОстатки.СерийныйНомер КАК СерийныйНомер,
    ВыдачаИПриемКнигОстатки.Книга.Владелец КАК Автор,
    ВыдачаИПриемКнигОстатки.Книга.Наименование КАК Название,
    ВыдачаИПриемКнигОстатки.Книга.ГодИздания КАК ГодИздания,
    1 КАК Количество,
    ВЫБОР
    КОГДА ТИПЗНЧ(&Читатель) = Тип(СправочникСсылка.Читатели) ТОГДА (Выбрать ВыдачаИПриемКнигОстатки.Выдача.Читатель ГДЕ ВыдачаИПриемКнигОстатки.Выдача.Читатель = &Читатель)// условие
    ИНАЧЕ (Выбрать ВыдачаИПриемКнигОстатки.Выдача.Читатель)
        КОНЕЦ КАК Читатель,
    ВыдачаКнигКниги.ДатаВозвратаПланируемая КАК ДатаВозвратаПланируемая
ИЗ
    РегистрНакопления.ВыдачаИПриемКниг.Остатки КАК ВыдачаИПриемКнигОстатки
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВыдачаКниг.Книги КАК ВыдачаКнигКниги
        ПО ВыдачаИПриемКнигОстатки.Книга = ВыдачаКнигКниги.Книга
            И ВыдачаИПриемКнигОстатки.СерийныйНомер = ВыдачаКнигКниги.СерийныйНомер
ГДЕ
    ВыдачаИПриемКнигОстатки.КоличествоОстаток > 0
    И ВыдачаИПриемКнигОстатки.Выдача.Читатель = &Читатель


Однако выдает ошибку
1 ДенисЧ
 
16.12.20
13:31
Самое главное в задавании вопроса - никогда никому не рассказывать про текст ошибки.
Тогда тебе сразу ответят...
2 vicof
 
16.12.20
13:32
Да у него кривой текст запроса.
ВЫБОР
    КОГДА ТИПЗНЧ(&Читатель) = Тип(СправочникСсылка.Читатели) ТОГДА (Выбрать ВыдачаИПриемКнигОстатки.Выдача.Читатель ГДЕ ВыдачаИПриемКнигОстатки.Выдача.Читатель = &Читатель)// условие
    ИНАЧЕ (Выбрать ВыдачаИПриемКнигОстатки.Выдача.Читатель)
        КОНЕЦ КАК Читатель,
3 Pyryrym
 
16.12.20
13:33
Синтаксическая ошибка "Выбрать"
КОГДА ТИПЗНЧ(&Читатель) = Тип(СправочникСсылка.Читатели) ТОГДА (<<?>>Выбрать ВыдачаИПриемКнигОстатки.Выдача.Читатель ГДЕ ВыдачаИПриемКнигОстатки.Выдача.Читатель = &Читатель)// условие
4 ДенисЧ
 
16.12.20
13:34
Мдя...

Я забыл... Мне надо было подготовиться ко встрече со звездой... И слова подобрать.
А так - у меня нет слов.
5 vicof
 
16.12.20
13:36
Условия накладываются в секции ГДЕ.
И ВЫБОР КОГДА  ТИПЗНЧ(&Читатель) = Тип(СправочникСсылка.Читатели) ТОГДА
ВыдачаИПриемКнигОстатки.Выдача.Читатель = &Читатель
ИНАЧЕ ИСТИНА КОНЕЦ
6 Sayan_mi
 
16.12.20
13:45
Интересно а "Выбрать" от куда - условие есть а источник? Да и что выбрать тоже не указано.
7 Kassern
 
16.12.20
13:48
(5) Можно так же воспользоваться построителем запроса и там добавить отбор, если параметр нужного типа. Так же можно с помощью вставки текста в запрос при условии.
8 Pyryrym
 
16.12.20
14:32
(5) Спасибо большое