|
Как запросом понять, первый ли это документ по клиенту? | ☑ | ||
---|---|---|---|---|
0
Мигрень
30.03.17
✎
11:01
|
Как запросом понять, первый ли это документ. Например, выбираю документы РТиУ за февраль по клиенту ООО "Ромашка". Если по этому клиенту были ранее документы (в январе, в предыдущих годах), то мне такой клиент не нужен и документы по нему в феврале в выборку не должны попадать. Как бы это так запрос сделать?
|
|||
1
Анютик
30.03.17
✎
11:03
|
выбрать первые 1 документ за весь период с отбором по контрагенту и посмотреть, если Null, значит первый документ)
|
|||
2
Мигрень
30.03.17
✎
11:08
|
(1) Может быть как-то можно левым соединением, а в условии ПО, указать "меньше" или "больше"..
|
|||
3
Мигрень
30.03.17
✎
11:12
|
А вот еще идея, может быть "Выбрать первые 1", где период (документы берутся из РН - регистраторы) меньше "дата начала отчета". Тогда не придется смотреть "с начала всех времен"..
|
|||
4
dezss
30.03.17
✎
11:19
|
а если так?
Выбрать контрагенты.ссылка, док.ссылка из справочник.контрагенты как контрагенты левое соединение документы.РТиУ как док по док.контр = контрагенты.ссылка где док.дата < &первоетекущегомесяца выбор когда док.ссылка = значение(документ.РТиУ.пустаяссылка) тогда истана иначе ложь конец |
|||
5
Анютик
30.03.17
✎
11:21
|
(3) в какой конфигурации? в БП не все документы двигают одинаково РН. Можно и пропустить...но вообще да, чем меньше - тем быстрее:))
|
|||
6
Мигрень
30.03.17
✎
11:22
|
(4) А зачем справочник Контрагенты здесь? Достаточно просто выборка по документам.
|
|||
7
dezss
30.03.17
✎
11:22
|
(6) можно и так...просто в (0) было написано, что такой клиент не нужен, вот и решил прицепить, на всякий)))
|
|||
8
Naf2017
30.03.17
✎
11:23
|
ВЫБРАТЬ РАЗЛИЧНЫЕ
РТУ.Контрагент ИЗ Документ.РеализацияТоваровУслуг КАК РТУ ГДЕ РТУ.Дата МЕЖДУ &Дата1 И &Дата2 И РТУ.Ссылка В (ВЫБРАТЬ ПЕРВЫЕ 1 Т.Ссылка ИЗ Документ.РеализацияТоваровУслуг КАК Т ГДЕ Т.Контрагент = РТУ.Контрагент УПОРЯДОЧИТЬ ПО Т.Дата) |
|||
9
dezss
30.03.17
✎
11:24
|
(6) к тому же, этот запрос выведет и тех, у кого нет документов в текущем...а из (0) не совсем понятно, нужны они или нет
|
|||
10
Мигрень
30.03.17
✎
11:24
|
(6) УТ11.2. Можно взять виртуальную таблицу РН "ВыручкаИСебестоимостьПродажОбороты". Задача - определить, были ли ранее отгрузки у клиента.
|
|||
11
Мигрень
30.03.17
✎
11:25
|
(9) Нет, без документов в текущем периоде не нужны, точно.
|
|||
12
dezss
30.03.17
✎
11:27
|
(11) ну тогда и нафиг их...
(10) в конкретной конфе можно найти много разных решений... Но если есть сущность документа и основываемся на ней, то лучше ее и использовать. А то решат они в очередном обновлении изменить этот регистр или вообще убрать и будет боль-слезы и вспоминание того, что же там делалось... |
|||
13
Рэйв
30.03.17
✎
11:27
|
ВЫБРАТЬ РАЗЛИЧНЫЕ
РеализацияТоваровУслуг.Контрагент ПОМЕСТИТЬ ВТ_Ненужные ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ГДЕ РеализацияТоваровУслуг.Дата < &ДатаНачФевраль ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Контрагенты.Ссылка ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ НЕ Контрагенты.Ссылка В (ВЫБРАТЬ ВТ_Ненужные.Контрагент ИЗ ВТ_Ненужные) |
|||
14
dezss
30.03.17
✎
11:28
|
(13) доки нужны, а не контрагенты, так что первой таблицы хватит)))
|
|||
15
dezss
30.03.17
✎
11:29
|
(14) тока знак больше или равно
|
|||
16
Рэйв
30.03.17
✎
11:30
|
(14)да там делов то для любого случая.:-)
Чего было тему поднимать |
|||
17
Naf2017
30.03.17
✎
11:31
|
ВЫБРАТЬ
РТУ.Контрагент ИЗ Документ.РеализацияТоваровУслуг КАК РТУ СГРУППИРОВАТЬ ПО РТУ.Контрагент ИМЕЮЩИЕ МИНИМУМ(РТУ.Дата) МЕЖДУ &Дата1 И &Дата2 |
|||
18
dezss
30.03.17
✎
11:33
|
(16) сам в шоке)
|
|||
19
dezss
30.03.17
✎
11:34
|
(17) можно просто больше-равно даты начала месяца
|
|||
20
Мигрень
30.03.17
✎
11:34
|
Ога, сейчас что-нибудь выберу :)
|
|||
21
olegves
30.03.17
✎
11:38
|
(0) выбери за отчетный месяц во ВТ все документы за период, а потом выбор из ВТ с левым соединением по контрагенту к выборке за ранее начала твоего отчетного периода с условием Есть Null для соединенного поля...
как то так |
|||
22
Naf2017
30.03.17
✎
11:42
|
(19) сказали же, что тех кого в этом периоде нет тоже не выбирать
|
|||
23
Мигрень
30.03.17
✎
11:44
|
(21) Да, что-то типа такого попробую сделвть
|
|||
24
dezss
30.03.17
✎
11:49
|
(22) ИМЕЮЩИЕ
МИНИМУМ(РТУ.Дата) >= &ДатаНачалаМесяца |
|||
25
Naf2017
30.03.17
✎
13:09
|
(24) туда попадут и те, у кого первая РТУ была в марте, а не в его месяце-феврале
|
|||
26
Мигрень
30.03.17
✎
13:19
|
Попробовал брать документы из виртуальной таблицы регистра и из физической. Из виртуальной-то оно побыстрее будет. Раза в два.
|
|||
27
Мигрень
30.03.17
✎
13:24
|
Вот так как-то получилось
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаПоПартнерам.Партнер КАК Партнер ПОМЕСТИТЬ ВТ_ПартнерыБылиОтгрузкиРанее ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(, &НачалоПериода, , ) КАК ВыручкаИСебестоимостьПродажОбороты ГДЕ ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаПоПартнерам.Партнер = &Партнер ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ОтгрузкиВТекущемПериоде.Партнер КАК Партнер, ВТ_ОтгрузкиВТекущемПериоде.Документ КАК Документ ИЗ ВТ_ОтгрузкиВТекущемПериоде КАК ВТ_ОтгрузкиВТекущемПериоде ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПартнерыБылиОтгрузкиРанее КАК ПартнерыБылиОтгрузкиРанее ПО ВТ_ОтгрузкиВТекущемПериоде.Партнер = ПартнерыБылиОтгрузкиРанее.Партнер ГДЕ ЕСТЬNULL(ПартнерыБылиОтгрузкиРанее.Партнер, 0) = 0 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |