Имя: Пароль:
1C
1С v8
не могу вытащить новых клиентов
0 Frida1711
 
28.09.20
21:28
задача - вытащить клиентов, которые не получали услуги до заданного периода. пишу запрос - выдает пустое поле. запрос прост, что не так?

ВЫБРАТЬ
    ОказанныеУслуги_Обороты.Контрагент КАК Контр
ПОМЕСТИТЬ ВТ_СтарыеПациенты
ИЗ
    РегистрНакопления.ОказанныеУслуги_.Обороты(, &НачалоПериода, Период, ) КАК ОказанныеУслуги_Обороты
;

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

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТ_СтарыеПациенты
1 Ёпрст
 
28.09.20
21:40
значит, нет новых клиетов
2 Frida1711
 
28.09.20
21:42
(1) есть
3 mistеr
 
28.09.20
21:47
(2) Может, они получали уже после &КонецПериода.
4 mistеr
 
28.09.20
21:48
Я бы еще ресурс проверял <> 0, а то мало ли.
5 Frida1711
 
28.09.20
21:51
(3) после получали. цель и стоит выявить среди клиентов за период новых, которые пришли в первый раз
6 Ёпрст
 
28.09.20
21:57
ну, показывай, что у тебя в начПериод и в конпериод
7 Frida1711
 
28.09.20
22:03
8 H A D G E H O G s
 
28.09.20
22:13
Круто, че.
Вот такие ребята делают скриншоты, из которых ты максимально не сможешь понять ничего.
Если это док - хер тебе, а не его номер и дату.
Если это справочник - держи страницу с комментарием, а код/артикул? А нафига он тебе, тыжпрограммист.
9 Frida1711
 
28.09.20
22:28
10 Frida1711
 
28.09.20
22:34
Опишу по другому. Первым запросом получаем клиентов, получивших конкретную услугу за период. Далее получаем общую выручку по клиентам с начала заданного периода. теперь нужно получить, сколько из них было впервые пришедших.
11 arsik
 
гуру
28.09.20
22:35
(9) Истеричка :))
В первом запросе результат есть?
12 Frida1711
 
28.09.20
22:44
(11) везде есть результат, кроме последнего запроса
13 Ёпрст
 
28.09.20
23:36
(9) выкинь свой скд, открой консоль запросов и выполни свой код там. есть че ? Если да, то смотри в свой скд, как ты там че соединяешь потом эти свои наборы и как параметры устанавливаешь
14 hhhh
 
29.09.20
00:44
(0) вот тут хрень

ИЗ
    РегистрНакопления.ОказанныеУслуги_.Обороты(, &НачалоПериода, Период, ) КАК ОказанныеУслуги_Обороты

надо периоды в фигурные скобки брать.
15 ДенисЧ
 
29.09.20
04:27
(14) Хрень пишешь
16 2S
 
29.09.20
05:29
(0)Уверен, что они есть в регистре? Может надо справочник контрагентов правым соединением анализировать?
17 Frida1711
 
29.09.20
08:02
(16) есть. по совету (13) в консоли все отработало. не пойму тогда, что с соединением. мне нужно из первого запроса передать список клиентов в этот
18 ДенисЧ
 
29.09.20
08:07
(17) Если в консоли работает, а в коде нет - значит, в коде параметры неправильно передаёшь
19 hhhh
 
29.09.20
08:13
(18) в СКД невозможно свои периоды задать без фигурных скобок, она тупо автоматом проставляет НачалоПериода и КонецПериода во все таблицы. Вы же знаете.
20 ДенисЧ
 
29.09.20
08:16
(19) Да запросто...
Я последние два года делал так. &НачДата, &КонДата... И в параметрах работал с ними. Никаких проблем
21 Frida1711
 
29.09.20
08:21
(19) с фигурными тоже не работает
22 hhhh
 
29.09.20
08:31
(21) добавьте поле КоличествоОборот в оба запроса на всякий случай. А то у вас только Контрагент, как-то не очень.
23 Frida1711
 
29.09.20
08:38
(22) ура!!! спасибо)