Как запросом понять, первый ли это документ по клиенту? #794155


#0 by Мигрень
Как запросом понять, первый ли это документ. Например, выбираю документы РТиУ за февраль по клиенту ООО "Ромашка". Если по этому клиенту были ранее документы (в январе, в предыдущих годах), то мне такой клиент не нужен и документы по нему в феврале в выборку не должны попадать. Как бы это так запрос сделать?
#1 by Анютик
выбрать первые 1 документ за весь период с отбором по контрагенту и посмотреть, если Null, значит первый документ)
#2 by Мигрень
Может быть как-то можно левым соединением, а в условии ПО, указать "меньше" или "больше"..
#3 by Мигрень
А вот еще идея, может быть "Выбрать первые 1", где период (документы берутся из РН - регистраторы) меньше "дата начала отчета". Тогда не придется смотреть "с начала всех времен"..
#4 by dezss
а если так? Выбрать контрагенты.ссылка, док.ссылка из справочник.контрагенты как контрагенты левое соединение   документы.РТиУ как док   по док.контр = контрагенты.ссылка   док.дата < &первоетекущегомесяца   выбор когда док.ссылка = значение(документ.РТиУ.пустаяссылка)   тогда      ложь   конец
#5 by Анютик
в какой конфигурации? в БП не все документы двигают одинаково РН. Можно и пропустить...но вообще да, чем меньше - тем быстрее:))
#6 by Мигрень
А зачем справочник Контрагенты здесь? Достаточно просто выборка по документам.
#7 by dezss
можно и так...просто в было написано, что такой клиент не нужен, вот и решил прицепить, на всякий)))
#8 by Naf2017
ГДЕ     РТУ.Дата МЕЖДУ &Дата1 И &Дата2     И РТУ.Ссылка В             (ВЫБРАТЬ ПЕРВЫЕ 1                 Т.Ссылка             ИЗ
#9 by dezss
к тому же, этот запрос выведет и тех, у кого нет документов в текущем...а из не совсем понятно, нужны они или нет
#10 by Мигрень
УТ11.2. Можно взять виртуальную таблицу РН "ВыручкаИСебестоимостьПродажОбороты". Задача - определить, были ли ранее отгрузки у клиента.
#11 by Мигрень
Нет, без документов в текущем периоде не нужны, точно.
#12 by dezss
ну тогда и нафиг их... в конкретной конфе можно найти много разных решений... Но если есть сущность документа и основываемся на ней, то лучше ее и использовать. А то решат они в очередном обновлении изменить этот регистр или вообще убрать и будет боль-слезы и вспоминание того, что же там делалось...
#13 by Рэйв
ГДЕ     НЕ Контрагенты.Ссылка В                 (ВЫБРАТЬ                     ВТ_Ненужные.Контрагент                 ИЗ                     ВТ_Ненужные)
#14 by dezss
доки нужны, а не контрагенты, так что первой таблицы хватит)))
#15 by dezss
тока знак больше или равно
#16 by Рэйв
да там делов то для любого случая.:-) Чего было тему поднимать
#17 by Naf2017
ВЫБРАТЬ     РТУ.Контрагент ИЗ
#18 by dezss
сам в шоке)
#19 by dezss
можно просто больше-равно даты начала месяца
#20 by Мигрень
Ога, сейчас что-нибудь выберу :)
#21 by olegves
выбери за отчетный месяц во ВТ все документы за период, а потом выбор из ВТ с левым соединением по контрагенту к выборке за ранее начала твоего отчетного периода с условием Есть Null для соединенного поля... как то так
#22 by Naf2017
сказали же, что тех кого в этом периоде нет тоже не выбирать
#23 by Мигрень
Да, что-то типа такого попробую сделвть
#25 by Naf2017
туда попадут и те, у кого первая РТУ была в марте, а не в его месяце-феврале
#26 by Мигрень
Попробовал брать документы из виртуальной таблицы регистра и из физической. Из виртуальной-то оно побыстрее будет. Раза в два.
#27 by Мигрень
Вот так как-то получилось
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С