Имя: Пароль:
1C
1С v8
Результат в СКД (2)
0 nAPACEHAK
 
10.05.18
10:18
Доброго

В продолжении https://www.forum.mista.ru/topic.php?id=818331


В СКД выводится "количество" т.к. в запросе есть группировка

СУММА(ВЫБОР
            КОГДА Событие.ВидСобытия = ...


1) с группировкой http://prntscr.com/jfzdn5
2) без группировки http://prntscr.com/jfzitd

Следовательно надо избавиться от группировки. Но, например, вот тут, на этом этапе, https://prnt.sc/jfzhqk - мне не нужна двойка. Мне нужен сам факт контакта - 1 или 0, чтобы потом подсчитать сумму контактов. (если там будет 2 - то посчитакт как 2 контакта, но по факту там 1)

ВЫБОР КОГДА втТелефон.ВизитыПослеЗвонка_3 > 0 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ


Подскажите, как можно реализовать?
Спасибо

*** Вырезал из портянки для теста

ВЫБРАТЬ
    РабочийЛист.Ссылка
ПОМЕСТИТЬ втРабочиеЛистыСрез
ИЗ
    Документ.РабочийЛист КАК РабочийЛист
ГДЕ
    РабочийЛист.Проведен
    И РабочийЛист.Дата МЕЖДУ &ДатаН И &ДатаК
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Событие.РабочийЛист.ВидКонтакта,
    Событие.РабочийЛист КАК РабочийЛист,
    ВЫБОР
        КОГДА Событие.РабочийЛист.ВидКонтакта = ЗНАЧЕНИЕ(Перечисление.ВидыСобытий.ТелефонныйЗвонок)
            ТОГДА 1
        ИНАЧЕ 0
    КОНЕЦ КАК ТелефонныйЗвонок_1,
    ВЫБОР
        КОГДА Событие.РабочийЛист.ПредставлениеТелефона = ""
            ТОГДА 0
        ИНАЧЕ 1
    КОНЕЦ КАК КонтактыПоТелефону_2,
    СУММА(ВЫБОР
            КОГДА Событие.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыСобытий.ЛичнаяВстреча)
                ТОГДА 1
            КОГДА Событие.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыСобытий.ТестДрайв)
                ТОГДА 1
            КОГДА Событие.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыСобытий.ВыдачаАвтомобиля)
                ТОГДА 1
            ИНАЧЕ 0
        КОНЕЦ) КАК ВизитыПослеЗвонка_3,
    Событие.РабочийЛист.Менеджер
ПОМЕСТИТЬ втТелефон
ИЗ
    Документ.Событие КАК Событие
ГДЕ
    Событие.ДокументОснование В
            (ВЫБРАТЬ
                втРабочиеЛистыСрез.Ссылка
            ИЗ
                втРабочиеЛистыСрез)
    И Событие.Проведен
    И Событие.РабочийЛист.ВидКонтакта = ЗНАЧЕНИЕ(Перечисление.ВидыСобытий.ТелефонныйЗвонок)

СГРУППИРОВАТЬ ПО
    Событие.РабочийЛист.ВидКонтакта,
    Событие.РабочийЛист,
    ВЫБОР
        КОГДА Событие.РабочийЛист.ВидКонтакта = ЗНАЧЕНИЕ(Перечисление.ВидыСобытий.ТелефонныйЗвонок)
            ТОГДА 1
        ИНАЧЕ 0
    КОНЕЦ,
    ВЫБОР
        КОГДА Событие.РабочийЛист.ПредставлениеТелефона = ""
            ТОГДА 0
        ИНАЧЕ 1
    КОНЕЦ,
    Событие.РабочийЛист.Менеджер
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втТелефон.РабочийЛистВидКонтакта,
    втТелефон.РабочийЛист,
    втТелефон.ТелефонныйЗвонок_1,
    втТелефон.КонтактыПоТелефону_2,
    ВЫБОР
        КОГДА втТелефон.ВизитыПослеЗвонка_3 > 0
            ТОГДА 1
        ИНАЧЕ 0
    КОНЕЦ КАК ВизитыПослеЗвонка_3,
    втТелефон.РабочийЛистМенеджер
ИЗ
    втТелефон КАК втТелефон
1 Fragster
 
гуру
10.05.18
10:20
ничего не читал, но, возможно, два и более наборов данных в СКД решат проблему с неправильными аггрегатными функциями
2 DrShad
 
10.05.18
10:28
тоже лениво читать, особенно текст запроса, который ни в одной из моих БД не работает
(1) +1
3 nAPACEHAK
 
10.05.18
10:32
(2) Это альфа :)
4 DrShad
 
10.05.18
10:32
(3) нам ее поставить нужно?
5 nAPACEHAK
 
10.05.18
10:35
(4) Да никуда. просто сказал. к чему сарказм?
6 Серёжа_
программист
 
10.05.18
10:35
(4) Конечно... и готовый запрос выдать.
7 Малыш Джон
 
10.05.18
10:36
(0) >> (если там будет 2 - то посчитакт как 2 контакта, но по факту там 1)

ну и ставь такую функцию расчета ресурсов:

выбор когда сумма(чего-то там)>0 тогда 1 иначе 0 конец
8 nAPACEHAK
 
10.05.18
12:06
Устал воевать ((
Результат запроса как внешние данные подсунул.
Вроде работает
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший