|   |   | 
| 
 | Запрос по контрагентам у которых не было продаж | ☑ | ||
|---|---|---|---|---|
| 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 | 
        короче можно сделать хоть как)     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |