Имя: Пароль:
1C
1С v8
Запрос с проверкой
0 AlexZ99
 
21.05.17
15:06
Добрый день, подскажите где не правильно.
Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    ЕСТЬNULL(КОЛИЧЕСТВО(Событие.Ссылка),0) КАК Ссылка,
        |    Событие.МС_ТипСобытия КАК МС_ТипСобытия
        |ИЗ
        |    Документ.Событие КАК Событие
        |ГДЕ
        |    Событие.Дата МЕЖДУ &Дата И &Дата1
        |    И Событие.МС_ТипСобытия В(&МС_ТипСобытия)
        |    И Событие.Состояние = &Состояние
        |    И Событие.НачалоСледующегоСобытия < &НачалоСледующегоСобытия
        |
        |СГРУППИРОВАТЬ ПО
        |    Событие.МС_ТипСобытия
        |АВТОУПОРЯДОЧИВАНИЕ";
        Запрос.УстановитьПараметр("Дата",НачалоДня(Дата.Значение));
        Запрос.УстановитьПараметр("Дата1",КонецДня(Дата.Значение));
        Запрос.УстановитьПараметр("МС_ТипСобытия",Список);
        Запрос.УстановитьПараметр("Состояние", Справочники.СостоянияСобытий.Запланировано);
        Запрос.УстановитьПараметр("НачалоСледующегоСобытия", Дата.Значение);

Имеется вот такой, в него передается массив с 8 статусами, на выходе имею 6 статусов, ибо по 2 статусам событий нет, как их вывести тоже? Т.е.  
статус1 10
статус2 15
статус3 0
статус4 0
и т.д.
1 Chameleon1980
 
21.05.17
15:26
соединение с таблицей статусов
2 AlexZ99
 
21.05.17
15:31
Это как?
3 Лефмихалыч
 
21.05.17
15:40
ВЫБРАТЬ
        |    ТипыСобытий.Ссылка,
        |    ЕСТЬNULL(КОЛИЧЕСТВО(Событие.Ссылка),0) КАК Ссылка,
        |    Событие.МС_ТипСобытия КАК МС_ТипСобытия
        |ИЗ
        |    Справочник.ТипыСобытий
        |    ЛЕВОЕ СОЕДИНЕНИЕ Документ.Событие КАК Событие
        |    ПО Событие.МС_ТипСобытия = ТипыСобытий.Ссылка
        |    И Событие.Дата МЕЖДУ &Дата И &Дата1
        |    И Событие.Состояние = &Состояние
        |    И Событие.НачалоСледующегоСобытия < &НачалоСледующегоСобытия
        |ГДЕ
        |    ТипыСобытий.Ссылка В(&МС_ТипСобытия)
        |
        |СГРУППИРОВАТЬ ПО
        |    ТипыСобытий.Ссылка,
        |    Событие.МС_ТипСобытия
4 AlexZ99
 
21.05.17
15:45
Сейчас опробую, спасибо
5 AlexZ99
 
21.05.17
16:24
Перекроил вот так вот.
"ВЫБРАТЬ
        |    ВнешняяТаблица.Статус КАК Ссылка
        |ПОМЕСТИТЬ
        |    ВнешняяТаблица
        |ИЗ
        |    &ВнешняяТаблица КАК ВнешняяТаблица
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ЕСТЬNULL(КОЛИЧЕСТВО(Событие.Ссылка), 0) КАК Ссылка,
        |    Событие.МС_ТипСобытия КАК МС_ТипСобытия
        |ИЗ
        |    ВнешняяТаблица КАК ВнешняяТаблица
        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.Событие КАК Событие
        |        ПО ВнешняяТаблица.Ссылка = Событие.МС_ТипСобытия
        |ГДЕ
        |    Событие.Дата МЕЖДУ &Дата И &Дата1
        |    И Событие.Состояние = &Состояние
        |    И Событие.НачалоСледующегоСобытия < &НачалоСледующегоСобытия
        |
        |СГРУППИРОВАТЬ ПО
        |    Событие.МС_ТипСобытия
        |АВТОУПОРЯДОЧИВАНИЕ";
        Запрос.УстановитьПараметр("Дата",НачалоДня(Дата.Значение));
        Запрос.УстановитьПараметр("Дата1",КонецДня(Дата.Значение));
        Запрос.УстановитьПараметр("ВнешняяТаблица",Статусы);
        Запрос.УстановитьПараметр("Состояние", Справочники.СостоянияСобытий.Запланировано);
        Запрос.УстановитьПараметр("НачалоСледующегоСобытия", Дата.Значение);

Но ситуация не поменялась(
6 Chameleon1980
 
21.05.17
17:11
ВТ тут не к месту так-то
7 Chameleon1980
 
21.05.17
17:12
масло маслянное

и смотреть внимательно предложенный выше пример
8 Chameleon1980
 
21.05.17
17:12
сюда &ВнешняяТаблица что прилетает?
9 AlexZ99
 
21.05.17
17:15
ТЗ с 8 статусами
10 Shrek_yar
 
21.05.17
17:27
(9) Условие уберите
|ГДЕ
        |    Событие.Дата МЕЖДУ &Дата И &Дата1
        |    И Событие.Состояние = &Состояние
        |    И Событие.НачалоСледующегоСобытия < &НачалоСледующегоСобытия
11 Shrek_yar
 
21.05.17
17:28
+ (10) Сначало соберите документы с условием, потом левое соединение с событиями, тогда все получиться
12 Shrek_yar
 
21.05.17
17:30
+(11) или как в (3) там все правилньо сделано
13 Chameleon1980
 
21.05.17
17:55
(9) а ТЗ как собирается?
код в студию
14 AlexZ99
 
21.05.17
18:29
Уже разобрался, работает. Сделал  Shrek_yar советовал, и собрал сначала документы с условием. Спасибо всем за помощь
15 Лефмихалыч
 
21.05.17
20:56
четыре часа и десять постов потребовалось, чтобы применить готовое решение.
прекрасный результат.
16 Лефмихалыч
 
21.05.17
20:56
ну - три, ладно