Люди! Ну помогите, пожалуйста. Мучаюсь уже две недели.
В запросе есть строка:

| Выбор Когда проживание.КатегорияНомера.КолвоМест ЕСТЬ NULL Тогда 0 Иначе 1 КОНЕЦ КАК КолвоМест,

По идее, я должна получить 0 или 1.
Но в отчёт выдаётся само значение ресурса КолвоМест. Почему? Не могу понять.
Скрин результата прикладываю
---
Не то. Нужно сгруппировать по всем полям, кроме КолвоМест.
Что-то типа такого должно быть:
"ВЫБРАТЬ
| НомернойФонд.Ссылка КАК Номер,
| НомернойФонд.Корпус КАК Корпус,
| НомернойФонд.Этаж КАК Этаж,
| НАЧАЛОПЕРИОДА(ВТ_ДатыПериода.Дата, МЕСЯЦ) КАК Месяц,
| ВТ_ДатыПериода.Дата КАК Дата,
| Проживание.Период КАК ПериодС,
| проживание.ПериодОкончания КАК ПериодПо,
| Максимум(Выбор Когда проживание.КатегорияНомера.КолвоМест ЕСТЬ NULL Тогда 0 Иначе 1 КОНЕЦ) КАК КолвоМест,
| Проживание.Регистратор КАК Регистратор
|ИЗ
| Справочник.НомернойФонд КАК НомернойФонд
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ДатыПериода КАК ВТ_ДатыПериода
| ПО (ИСТИНА)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Проживание КАК Проживание
| ПО (Проживание.ПериодНачала <= ВТ_ДатыПериода.Дата)
| И (Месяц(Проживание.ПериодНачала) = Месяц(ВТ_ДатыПериода.Дата))
| И Проживание.ПериодОкончания >= ВТ_ДатыПериода.Дата
| И НомернойФонд.Ссылка = Проживание.Номер
|ГДЕ
| ВТ_ДатыПериода.Дата МЕЖДУ &ПериодНачало И &ПериодОкончание
|СГРУППИРОВАТЬ ПО
| НомернойФонд.Ссылка,
| НомернойФонд.Корпус,
| НомернойФонд.Этаж,
| НАЧАЛОПЕРИОДА(ВТ_ДатыПериода.Дата, МЕСЯЦ),
| ВТ_ДатыПериода.Дата,
| Проживание.Период,
| проживание.ПериодОкончания,
| Проживание.Регистратор"
---
похоже, дело не в приведенной строке, а где-то еще.
---
А где ещё?
ВООБЩЕ больше ничего нет. Нет вычисляемых полей. Есть только подсчёт итога (во вложении)
Вот весь текст запроса:
ТекстЗапроса = ТекстЗапроса +
 "ВЫБРАТЬ
 | НомернойФонд.Ссылка КАК Номер,
 | НомернойФонд.Корпус КАК Корпус,
 | НомернойФонд.Этаж КАК Этаж,
 | НАЧАЛОПЕРИОДА(ВТ_ДатыПериода.Дата, МЕСЯЦ) КАК Месяц,
 | ВТ_ДатыПериода.Дата КАК Дата,
 | Проживание.Период КАК ПериодС,
 | проживание.ПериодОкончания КАК ПериодПо,
 | Выбор Когда проживание.КатегорияНомера.КолвоМест ЕСТЬ NULL Тогда 0 Иначе 1 КОНЕЦ КАК КолвоМест,
 | Проживание.Регистратор КАК Регистратор
 |ИЗ
 | Справочник.НомернойФонд КАК НомернойФонд
 | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ДатыПериода КАК ВТ_ДатыПериода
 | ПО (ИСТИНА)
 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Проживание КАК Проживание
 | ПО (Проживание.ПериодНачала <= ВТ_ДатыПериода.Дата)
 | И (Месяц(Проживание.ПериодНачала) = Месяц(ВТ_ДатыПериода.Дата))
 | И Проживание.ПериодОкончания >= ВТ_ДатыПериода.Дата

 | И НомернойФонд.Ссылка = Проживание.Номер
 |ГДЕ
 | ВТ_ДатыПериода.Дата МЕЖДУ &ПериодНачало И &ПериодОкончание"
---
Потому что другого выражения нет.
---
Какого другого?
Я в запросе получаю КолвоМест по условию, а потом вывожу его в отчёт
---
Никакого. Скрин смотрите свой. Мы тут не про запрос, а про выражение в СКД.
---
в отчет выводите сумму количества мест. Видимо, у вас запрос получает несколько строк, которые потом группируются (может быть, тут проблема).
И не знаю, какая структура отчета. Скорее всего для группировки по дням(?) нужно свое выражение Максимум(КолвоМест).
---
Мне надо в отчет вывести единицы, если номер занят, и ноль если пустой. На каждую дату месяца.
В РегистреНакопления Проживание есть записи на те дни, когда кто-то живёт. Т.е. есть запись, если номер занят, и нет записи если номер свободен. Причём, если в номере проживают два человека, то будет две записи на одну дату. Может мне надо как-то "свернуть" данные в запросе?
Получается он учитывает две записи...
---
Свернуть записи в запросе кажется лучше. В Группировке для суммированного поля можно выюрать функцию Максимум.
Ну или в Ресурсах добавить то же поле "КолвоМест", но с выражением Максимум(КолвоМест) и в "Рассчитывать по" выбрать поле группировки, соответствующее дням.
---
Попыталась в начале запроса написать ВЫБРАТЬ РАЗЛИЧНЫЕ, но...
Если кто-то жил с 1-го по 5-е, потом перерыв, а потом заехали, например, 10-го, то с 10-го начинает врать
---
Не то. Нужно сгруппировать по всем полям, кроме КолвоМест.
Что-то типа такого должно быть:
"ВЫБРАТЬ
| НомернойФонд.Ссылка КАК Номер,
| НомернойФонд.Корпус КАК Корпус,
| НомернойФонд.Этаж КАК Этаж,
| НАЧАЛОПЕРИОДА(ВТ_ДатыПериода.Дата, МЕСЯЦ) КАК Месяц,
| ВТ_ДатыПериода.Дата КАК Дата,
| Проживание.Период КАК ПериодС,
| проживание.ПериодОкончания КАК ПериодПо,
| Максимум(Выбор Когда проживание.КатегорияНомера.КолвоМест ЕСТЬ NULL Тогда 0 Иначе 1 КОНЕЦ) КАК КолвоМест,
| Проживание.Регистратор КАК Регистратор
|ИЗ
| Справочник.НомернойФонд КАК НомернойФонд
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ДатыПериода КАК ВТ_ДатыПериода
| ПО (ИСТИНА)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Проживание КАК Проживание
| ПО (Проживание.ПериодНачала <= ВТ_ДатыПериода.Дата)
| И (Месяц(Проживание.ПериодНачала) = Месяц(ВТ_ДатыПериода.Дата))
| И Проживание.ПериодОкончания >= ВТ_ДатыПериода.Дата
| И НомернойФонд.Ссылка = Проживание.Номер
|ГДЕ
| ВТ_ДатыПериода.Дата МЕЖДУ &ПериодНачало И &ПериодОкончание
|СГРУППИРОВАТЬ ПО
| НомернойФонд.Ссылка,
| НомернойФонд.Корпус,
| НомернойФонд.Этаж,
| НАЧАЛОПЕРИОДА(ВТ_ДатыПериода.Дата, МЕСЯЦ),
| ВТ_ДатыПериода.Дата,
| Проживание.Период,
| проживание.ПериодОкончания,
| Проживание.Регистратор"
---
Огромное вам спасибо!!
Немного подкорректировала и всё заработало!!
Большое вам человеческое спасибо за то, что именно ПОМОГАЕТЕ!
А то тут любят показать, какие они умные, а помощи никакой.
Ещё раз СПАСИБО!