|
Запрос продаж по связанным контрагентам | ☑ | ||
---|---|---|---|---|
0
Kozitsyn
31.10.14
✎
18:33
|
Всем привет!
Подскажите пожалуйста, в УТ 10.3 пишу отчет на СКД, осталась последняя колонка и отчет готов, но блин, застрял на ней на долго... Колонка "Новый клиент", устанавливается 1, если по клиенту за последние 6 мес. не было продаж, с этим я справился, всё отлично подставляет, но в карточке контрагента есть ТЧ - "Связанные контрагенты" с одним реквизитом - Контрагент, где манагеры выбирают сколько угодно много других контрагентов, с которыми связан текущий контрагент. Так вот, как проверить были ли продажи по всем связанным контрагентам, а не только по текущему? |
|||
1
Жан Пердежон
31.10.14
✎
18:49
|
для начала поместить продажи по клиентам во временную таблицу...
|
|||
2
Kozitsyn
31.10.14
✎
18:53
|
(1) Это всмысле в модуле при компановке писать? а с помощью конструктора запроса какими-нибудь хитроумными связями не получится?
|
|||
3
Maniac
31.10.14
✎
18:57
|
условие В
|
|||
4
Ненавижу 1С
гуру
31.10.14
✎
19:00
|
а что будет, если:
1. А "связан" с Б, Б не "связан" с А? 2. А "связан" с Б, Б "связан" с В, но А не "связан" с В? |
|||
5
Kozitsyn
31.10.14
✎
19:02
|
ЯТожеЕгоНенавижу, не будем вдаваться в эти глубины, рассматриваем, только прямые связи, а не через 10-е колено...
|
|||
6
Kozitsyn
31.10.14
✎
19:04
|
Сделал вот так:
ВЫБРАТЬ Контрагенты.Ссылка КАК Контрагент, ВЫБОР КОГДА ЕСТЬNULL(ПродажиЗа6Месяцев.Сумма, 0) > 0 ТОГДА 0 ИНАЧЕ 1 КОНЕЦ КАК НовыйКонтрагент ИЗ Справочник.Контрагенты КАК Контрагенты ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СУММА(Продажи.Стоимость) КАК Сумма, КонтрагентыЮКОЗ_СвязиСКонтрагентами.Ссылка КАК Контрагент ИЗ Справочник.Контрагенты.ЮКОЗ_СвязиСКонтрагентами КАК КонтрагентыЮКОЗ_СвязиСКонтрагентами ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи ПО (Продажи.Контрагент В (КонтрагентыЮКОЗ_СвязиСКонтрагентами.Контрагент)) ГДЕ Продажи.Период МЕЖДУ &ДатаНач И &ДатаКон СГРУППИРОВАТЬ ПО КонтрагентыЮКОЗ_СвязиСКонтрагентами.Ссылка) КАК ПродажиЗа6Месяцев ПО Контрагенты.Ссылка = ПродажиЗа6Месяцев.Контрагент Почти работает :) только он оставляет "1" у всех у кого этого ТЧ по связям не заполнена. |
|||
7
Ненавижу 1С
гуру
31.10.14
✎
19:04
|
(5) в случае 1 это прямая связь
я могу ошибаться, но если по это, то я у себя сделал ссылку на сущность: управленческий холдинг |
|||
8
Kozitsyn
31.10.14
✎
19:06
|
(7) У меня сейчас в голове одна большая Сущность :) ничего не понял про - управленческий холдинг
|
|||
9
Ненавижу 1С
гуру
31.10.14
✎
19:09
|
(8) я тоже, объясни смысл понятия "связанного контрагента"
|
|||
10
Kozitsyn
31.10.14
✎
19:16
|
(9) С виду все просто, например, появляется новый контрагент, но он не новый, просто новое юр. лицо старого контрагента (который уже есть в базе), так вот этому "новому контрагенту" в ТЧ Связи добавляют ссылку на "старого контрагента". В результате я в запросе должен выявить - новый это контрагент или старый - путем анализа регистра продаж, если по контрагенту текущему и по всем его связанным контрагентам (которые указаны в его карточке) нет данных о продажах за период, то ставлю в столбце отчета "1".
|
|||
11
Ненавижу 1С
гуру
31.10.14
✎
19:19
|
(10) а старому добавляют ссылку на нового, вдруг он не сильно уж и старый? итак уже взаимная связь, а если их 5? получаем 5*4=20 взаимных ссылок
потому у меня есть Справочник Холдинги и у контрагентов есть реквизит "Управленческий холдинг2 |
|||
12
Kozitsyn
31.10.14
✎
19:24
|
(11) Нет, не будут они взаимных ссылок делать, этого не нужно, тут просто, если у текущего контрагента есть в его карточке связи с др. контрагентами, то проверяем и их, если нет, то и хрен бы с ним.
|
|||
13
Ненавижу 1С
гуру
31.10.14
✎
19:28
|
(12) почему нет?
|
|||
14
Kozitsyn
31.10.14
✎
19:30
|
(13) Даже думать об этом не хочу, нужно хотя бы сделать чтобы по прямым связям был поиск...
|
|||
15
Kalambur
31.10.14
✎
19:37
|
(14) он намекает что без двойной связи ты никогда не поймеш кто старый кто новый и в отчет ты никогда не соберешь то что надо
|
|||
16
Ненавижу 1С
гуру
31.10.14
✎
19:39
|
(15) я намекаю, что у него граф получится (и не факт, что полный), а надо собрать в "пучок", где всё подчиняется одной аналитике "Холдинг"
|
|||
17
Kalambur
31.10.14
✎
19:41
|
(16) человек не хочет ))
|
|||
18
Kozitsyn
31.10.14
✎
19:41
|
(15) двойная связь - я могу сделать если они добавляют связь к одному контрагенту, то у того контрагента добавляется автоматом взаимная связь. Но вопрос топика не в этом, вопрос, как в запросе по связанным посмотреть. Я сверху написал пример запроса, он работает, но только если у всех контрагентов есть хотя бы одна запись в этой таблице связей, а если нет, то он лупит цифры 1 в любом случае...
|
|||
19
Ненавижу 1С
гуру
31.10.14
✎
19:43
|
держи, но... у тебя продажи в общем итоге будут задваиваться по "связным"
ВЫБРАТЬ ПродажиОбороты.Контрагент, ПродажиОбороты.СуммаОборот ПОМЕСТИТЬ Временная ИЗ РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ КонтрагентыСвязанныеКонтрагенты.Контрагент, СУММА(ПродажиОбороты.СуммаОборот) ИЗ РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.СвязанныеКонтрагенты КАК КонтрагентыСвязанныеКонтрагенты ПО ПродажиОбороты.Контрагент = КонтрагентыСвязанныеКонтрагенты.Контрагент СГРУППИРОВАТЬ ПО КонтрагентыСвязанныеКонтрагенты.Контрагент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Временная.Контрагент, СУММА(Временная.СуммаОборот) КАК СуммаОборот ИЗ Временная КАК Временная СГРУППИРОВАТЬ ПО Временная.Контрагент |
|||
20
Kozitsyn
31.10.14
✎
20:03
|
(19) Спасибо, но что-то вмострячить это не могу к себе...
|
|||
21
Kozitsyn
31.10.14
✎
20:15
|
(19) Не работает :( не отображает контрагента и сумму продаж у которого нет в периоде продаж, но есть продажи у связанного контрагента, запрос получился такой:
ВЫБРАТЬ ПродажиОбороты.Контрагент, ПродажиОбороты.СтоимостьОборот ПОМЕСТИТЬ Временная ИЗ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОбороты ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ КонтрагентыСвязанныеКонтрагенты.Контрагент, СУММА(ПродажиОбороты.СтоимостьОборот) ИЗ РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.ЮКОЗ_СвязиСКонтрагентами КАК КонтрагентыСвязанныеКонтрагенты ПО ПродажиОбороты.Контрагент = КонтрагентыСвязанныеКонтрагенты.Контрагент СГРУППИРОВАТЬ ПО КонтрагентыСвязанныеКонтрагенты.Контрагент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Временная.Контрагент, СУММА(Временная.СтоимостьОборот) КАК СуммаОборот ИЗ Временная КАК Временная СГРУППИРОВАТЬ ПО Временная.Контрагент |
|||
22
Kozitsyn
31.10.14
✎
20:40
|
Короче, всё оказалось очень просто:
ВЫБРАТЬ Контрагенты.Ссылка КАК Контрагент, ВЫБОР КОГДА ЕСТЬNULL(ПродажиЗа6Месяцев.Сумма, 0) > 0 ИЛИ ЕСТЬNULL(ПродажиЗа6Месяцев_2.Сумма2, 0) > 0 ТОГДА 0 ИНАЧЕ 1 КОНЕЦ КАК НовыйКонтрагент ИЗ Справочник.Контрагенты КАК Контрагенты ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ КонтрагентыЮКОЗ_СвязиСКонтрагентами.Ссылка КАК Контрагент, ПродажиОбороты.СтоимостьОборот КАК Сумма ИЗ Справочник.Контрагенты.ЮКОЗ_СвязиСКонтрагентами КАК КонтрагентыЮКОЗ_СвязиСКонтрагентами ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОбороты ПО (ПродажиОбороты.Контрагент В (КонтрагентыЮКОЗ_СвязиСКонтрагентами.Контрагент)) СГРУППИРОВАТЬ ПО КонтрагентыЮКОЗ_СвязиСКонтрагентами.Ссылка, ПродажиОбороты.СтоимостьОборот) КАК ПродажиЗа6Месяцев ПО Контрагенты.Ссылка = ПродажиЗа6Месяцев.Контрагент ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПродажиОбороты.СтоимостьОборот КАК Сумма2, ПродажиОбороты.Контрагент КАК Контрагент ИЗ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.СтоимостьОборот, ПродажиОбороты.Контрагент) КАК ПродажиЗа6Месяцев_2 ПО Контрагенты.Ссылка = ПродажиЗа6Месяцев_2.Контрагент |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |