|
Запрос по контрагентам у которых не было продаж | ☑ | ||
---|---|---|---|---|
0
sasha-asn
16.09.19
✎
11:51
|
Доброго времени суток эксперты!
Учусь писать запросы, так вот застрял на том как написать следующий запрос: вывожу всех контрагентов у которых не было продаж за период ---------------------------------------------------- ВЫБРАТЬ Контрагенты.Ссылка, Продажи.Стоимость, Продажи.ДокументПродажи ИЗ РегистрНакопления.Продажи КАК Продажи ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты ПО Продажи.Контрагент = Контрагенты.Ссылка Где Продажи.Стоимость is null ---------------------------------------------------- Где я ошибаюсь? |
|||
1
decdmb
16.09.19
✎
11:57
|
Попробуй ПРАВОЕ СОЕДИНЕНИЕ вместо ЛЕВОЕ
|
|||
2
ДенисЧ
16.09.19
✎
11:58
|
Таблицы местами поменяй
|
|||
3
catena
16.09.19
✎
11:59
|
Дт слева, Кт справа. И про соединения так же надо распечатать и в ящик стола)
|
|||
4
sasha-asn
16.09.19
✎
12:37
|
Спасибо!
|
|||
5
sasha-asn
16.09.19
✎
12:37
|
получил вот что
ВЫБРАТЬ Контрагенты.Ссылка, Продажи.Стоимость, Продажи.ДокументПродажи, Продажи.Период ИЗ Справочник.Контрагенты КАК Контрагенты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи ПО (Продажи.Контрагент = Контрагенты.Ссылка) ГДЕ Продажи.Стоимость ЕСТЬ NULL |
|||
6
sasha-asn
16.09.19
✎
12:58
|
эх, запрос вывод всех контрагентов почему то(((
|
|||
7
Eiffil123
16.09.19
✎
13:22
|
(6) значит в регистре "Продажи" по нему не было записей.
|
|||
8
Консультант Баранов
16.09.19
✎
13:42
|
(0) Если учишься, то лучше разделяй одно от другого, чтобы было четко видно, что откуда. Тем более поля "Стоимость, ДокументПродажи, Период" - будут сбивать со смысла.
Как-то так ВЫБРАТЬ Продажи.Контрагент ПОМЕСТИТЬ втКонтрагентыПокоторымБылиПродажи ИЗ РегистрНакопления.Продажи КАК Продажи СГРУППИРОВАТЬ ПО Продажи.Контрагент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Контрагенты.Ссылка ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ НЕ Контрагенты.ЭтоГруппа И НЕ Контрагенты.Ссылка В (ВЫБРАТЬ втКонтрагентыПокоторымБылиПродажи.Контрагент ИЗ втКонтрагентыПокоторымБылиПродажи КАК втКонтрагентыПокоторымБылиПродажи) |
|||
9
Kashey
16.09.19
✎
14:50
|
(8) Оптимальнее заполнять ВТ из виртуальной таблицы оборотов. Тогда и группировка не нужна будет и не попадут записи с флагом Активность = ложь. Да и получать часть данных можно будет из таблицы итогов оборотного регистра, что быстрее перебора всех записей из таблицы движений.
|
|||
10
Консультант Баранов
16.09.19
✎
14:56
|
(9) Если обороты будут за весь период то не уверен.
|
|||
11
Kashey
16.09.19
✎
15:02
|
(10) Если период получения оборотов будет кратен месяцу, то обращения к таблице движений не будет. Инфа будет получена только из таблицы оборотов(итогов).
|
|||
12
Eiffil123
16.09.19
✎
16:47
|
(11) а как система понимает кратность месяцу? Дата окончания должна быть последняя секунда месяца или "граница включая" эту секунду?
|
|||
13
Kashey
16.09.19
✎
17:16
|
(12) << а как система понимает кратность месяцу?
Из параметров НачалоПериода и КонецПериода виртуальной таблицы обороты << Дата окончания должна быть последняя секунда месяца или "граница включая" эту секунду? по умолчанию данные на конец периода включаются в результат запроса. |
|||
14
Маленький Вопросик
16.09.19
✎
17:33
|
соедини таблицы продаж и контрагентов внутренним соединением
|
|||
15
Eiffil123
16.09.19
✎
17:46
|
(13) т.е. можно передать в запрос дату, а не границу и будет использована таблица итогов, верно?
|
|||
16
Kashey
16.09.19
✎
18:10
|
(15) Да, можно дату. Но это только для оборотов границы итогов включаются, кажется. Для остатков наоборот. Поэтому в задачах по Спецу сейчас получают остатки на момент времени ("традиционная" методика проведения) когда не нужны движения текущего документа, и на границу, включая при "новой" методике, когда остатки нужны с учетом движений документа.
|
|||
17
Eiffil123
16.09.19
✎
18:47
|
(16) не, по спецу сейчас по "традиционной" схеме проведения нужно записывать пустой набор записей, если нужно в модуле проведения получать остатки. Причина - ты можеть перепроводить документ, указав в нем дату позднее, чем он был проведен до этого.
|
|||
18
Консультант Баранов
16.09.19
✎
18:53
|
(16) > когда не нужны движения текущего документа
Ключевой момент не в том нужны или не нужны движения документа, а нужны ли данные для проведения. Если надо просто проверить наличие количества то по новой, а если нужно рассчитать стоимость списания то по старой. |
|||
19
Kashey
16.09.19
✎
18:58
|
(18) Да, верно. Если все данные для формирования движений есть в документе и не требуется получения данных (по остаткам, например) из регистра, в который предполагается записать эти движения - используем новую методику.
|
|||
20
Маленький Вопросик
16.09.19
✎
19:08
|
ВЫБРАТЬ
Контрагенты.Ссылка ПОМЕСТИТЬ ВТ_Контрагенты ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ Контрагенты.Поставщик = ИСТИНА И Контрагенты.ПометкаУдаления = ЛОЖЬ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Закупки.Контрагент, Закупки.Количество, Закупки.Номенклатура ПОМЕСТИТЬ ВТ_Закупки ИЗ РегистрНакопления.Закупки КАК Закупки ГДЕ Закупки.Период МЕЖДУ &НачПериода И &КонПериода И Закупки.Количество > 0 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Закупки.Контрагент ПОМЕСТИТЬ ВТ_КонтрагентыДействующие ИЗ ВТ_Закупки КАК ВТ_Закупки ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Контрагенты КАК ВТ_Контрагенты ПО ВТ_Закупки.Контрагент = ВТ_Контрагенты.Ссылка СГРУППИРОВАТЬ ПО ВТ_Закупки.Контрагент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Контрагенты.Ссылка ИЗ ВТ_Контрагенты КАК ВТ_Контрагенты ЛЕВОЕ СОЕДИНЕНИЕ ВТ_КонтрагентыДействующие КАК ВТ_КонтрагентыДействующие ПО (ВТ_Контрагенты.Ссылка = ВТ_КонтрагентыДействующие.Контрагент) СГРУППИРОВАТЬ ПО ВТ_Контрагенты.Ссылка |
|||
21
Маленький Вопросик
16.09.19
✎
19:28
|
ВЫБРАТЬ
Контрагенты.Ссылка ПОМЕСТИТЬ ВТ_Контрагенты ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ Контрагенты.Поставщик = ИСТИНА И Контрагенты.ПометкаУдаления = ЛОЖЬ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗакупкиОбороты.Контрагент ПОМЕСТИТЬ ВТ_Закупки ИЗ РегистрНакопления.Закупки.Обороты(&ДатаНачала, &ДатаОкончания, Период, ) КАК ЗакупкиОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Контрагенты.Ссылка ИЗ ВТ_Контрагенты КАК ВТ_Контрагенты ГДЕ НЕ ВТ_Контрагенты.Ссылка В (ВЫБРАТЬ ВТ_Закупки.Контрагент ИЗ ВТ_Закупки) |
|||
22
Маленький Вопросик
16.09.19
✎
19:29
|
у меня нет розничных контрагентов, а только поставщики, но смысл тот же
|
|||
23
Kashey
16.09.19
✎
19:40
|
ВЫБРАТЬ
ПродажиОбороты.Контрагент КАК Контрагент ПОМЕСТИТЬ ВТ_КонтрагентыСПродажами ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНачала, &ДатаОкончания, , ) КАК ПродажиОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Контрагенты.Ссылка КАК Контрагент ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ НЕ Контрагенты.ПометкаУдаления И НЕ Контрагенты.Ссылка В (ВЫБРАТЬ ВТ_КонтрагентыСПродажами.Контрагент ИЗ ВТ_КонтрагентыСПродажами КАК ВТ_КонтрагентыСПродажами) |
|||
24
Маленький Вопросик
16.09.19
✎
19:46
|
короче можно сделать хоть как)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |