Имя: Пароль:
1C
 
Первичная и вторичные покупки. Как лучше разделить?
0 Сияющий Асинхраль
 
22.06.17
12:53
Попросили сделать отчет, в котором показывались бы за любой период первичные покупки, и те покупки которые первичными не являются. Ясно, что реализации первичные от вторичных надо как-то отделить. Но красивого варианта как-то не вижу. В голову приходит либо совсем простой поставить галочку пусть сами отделяют первичные от других, либо сделать периодический регистр сведений, в который писать при проведении доков Контрагента плюс Документ продажи, тогда срез первых на какой-нибудь дальний период (типа 1980 года) всегда даст первые документы любого контрагента. Но как-то оба решения в восторг не приводят, может есть что красивее? Буду сильно признателен за какие-нибудь идеи...
1 FormatC
 
22.06.17
13:12
модно одним запросом получить первые документы всех когтрагентов
2 Масянька
 
22.06.17
13:12
(0) 1. Все покупки или есть какой-то параметр отбора? Контрагент, номенклатура и пр.
2. Признак "первичная покупка"? Счет -> реализация?
3 FormatC
 
22.06.17
13:14
ВЫБРАТЬ
    ВложенныйЗапрос.Номенклатура,
    МАКСИМУМ(ТоварыНаСкладах.Регистратор) КАК Регистратор
ИЗ
    (ВЫБРАТЬ
        ТоварыНаСкладах.Номенклатура КАК Номенклатура,
        МАКСИМУМ(ТоварыНаСкладах.Период) КАК Период
    ИЗ
        РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
    ГДЕ
        ТоварыНаСкладах.Период <= &ДатаОтчета И (ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг)
    СГРУППИРОВАТЬ ПО
        ТоварыНаСкладах.Номенклатура
    ) КАК ВложенныйЗапрос
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
        РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
    ПО
        ВложенныйЗапрос.Номенклатура = ТоварыНаСкладах.Номенклатура И ВложенныйЗапрос.Период = ТоварыНаСкладах.Период
ГДЕ
    (ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг)
СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Номенклатура

запрос получает последний докуемнт по которому приходила номенклатура, по аналогии можно и первичные продажи получить
4 Сияющий Асинхраль
 
22.06.17
13:15
(2) Реализация (счет могут не оплатить), то есть первая реализация по каждому контрагенту.
5 Масянька
 
22.06.17
13:16
(4) Реализация - сама по себе или все-таки привязана к счет (пусть и не оплаченному)?
6 Сияющий Асинхраль
 
22.06.17
13:17
(5) Реализация сама по себе
7 Масянька
 
22.06.17
13:18
(6) Ну, и как определить - "первичная"?
8 FormatC
 
22.06.17
13:19
первичная продажа - это первый документ реализации?
9 Сияющий Асинхраль
 
22.06.17
13:19
(3) Ну да, можно продажи анализировать, просто считал, что при больших периодах такие запросы тормозить должны :-( , хотя спасибо, проанализирую, может и правда чисто по продажам сделать
(7) Так в этом и вопрос :-)
10 Сияющий Асинхраль
 
22.06.17
13:20
(8) Да, первый документ, все что после уже вторичные
11 FormatC
 
22.06.17
13:20
(9) на больших периодах да, будут не очень быстро формироваться... все зависит от базы
12 skafandr
 
22.06.17
13:21
(10) Странненько  ... у яндекса по другому:
"Первичными называют продажи товаров оптовым клиентам (дистрибьюторам и оптовым компаниям) и в торговые точки. К вторичным относят продажи товаров непосредственно потребителям."
13 FormatC
 
22.06.17
13:21
(12)у каждой фирмы обычно своя теория ))
14 Масянька
 
22.06.17
13:22
(10) В таком разе: выбираешь все реализации, сортируешь по дате - в первую колонку самая первая, во вторую - последующие.
15 Сияющий Асинхраль
 
22.06.17
13:22
(12) Ну так мы же 1С-ники, работаем на конкретных клиентов, а у конкретных клиентов свои собственные понятия и термины :-)
16 skafandr
 
22.06.17
13:23
Да .... уж
(10) А если в Ваших категориях - то совсем первая реализация или первая реализация в  пределах заказа?
17 FormatC
 
22.06.17
13:23
(14)это если делать по одному клиенту и не одним запросом всё
18 Масянька
 
22.06.17
13:24
(17) Да ладно...
19 skafandr
 
22.06.17
13:24
Сделать реквизит у клиента и заполнять его первой реализацией не насилуя каждый раз хитрым запросом ;)
20 FormatC
 
22.06.17
13:26
(18) пример запроса
21 Сияющий Асинхраль
 
22.06.17
13:26
(14) Этот вариант в (3), вариант рабочий, но медленный, думаю вариант с периодическим регистром сведений должен быстрее работать :-(
(16) В базе речь идет фактически о розничных покупателях - клиентах фитнеса, поэтому о счете речь вообще не идет
22 senior
 
22.06.17
13:28
(0) вообще не вижу проблемы, запрос по продажам с группировкой по контрагенту Мин() по дате, потом соединить снова с продажами получишь первичные продажи, остальное вторичные
23 Масянька
 
22.06.17
13:35
(20) Если ты не можешь - это не значит, что нельзя (С)
У меня нет восьмерки под рукой.
24 Масянька
 
22.06.17
13:35
(21) В день - одна реализация?
25 Сияющий Асинхраль
 
22.06.17
13:36
Ладно. К моим вариантам прибавляю еще пару - запрос по все реализациям с группировкой Мин(), плюс вариант (19). Буду глядеть - Спасибо!!!
26 FormatC
 
22.06.17
13:36
(23) я вообще-то привел уже пример запроса
27 Сияющий Асинхраль
 
22.06.17
13:38
(24) В принципе, конечно, может быть и несколько, например чел может придти на фитнес два раза в день - утром и вечером, но для простоты учитывается только самый первый документ, все остальное вторичные
28 Масянька
 
22.06.17
13:41
(27) А смысл такого отчета?
29 Сияющий Асинхраль
 
22.06.17
13:43
(28) Для меня просто выполнение заказа, а для клиента я у него не спрашивал :-) , может хочет увидеть работу рекламы, может еще чего...
30 FormatC
 
22.06.17
13:44
(29) скоере всего хочет увидеть какие типы абонементов продаются при первом обращении
31 Сияющий Асинхраль
 
22.06.17
13:47
(30) Очень даже может быть.
32 eryomin
 
22.06.17
13:51
(9) ограничь период. обычно новые клиенты интересуют в связи с какими-нибудь недавними мероприятиями. а зачем тебе считать покупку вторичной, если клиент перед этим уже года три не заходил.