8.х Соединение в запросе

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Svb, 27 мар 2014.

  1. TopicStarter Overlay
    Svb
    Offline

    Svb Опытный в 1С Команда форума

    Регистрация:
    12 янв 2011
    Сообщения:
    980
    Симпатии:
    19
    Баллы:
    29
    Добрый день.
    Копаю УТ 11.0.7.8, механизм отложенного проведения по рн РасчетыСКлиентамиПоДокументам.
    В общем модуле ВзаиморасчетыСервер есть функция ПолучитьТаблицуАктуальныхЗаписейРасчетыСКлиентамиПоДокументам, а в ней запрос.
    Не могу понять смысл этого запроса. В частности такой вот вопрос:

    В запросе такое соединение:
    ТиповоеСоединение.jpg

    Обращу внимание, что таблица Последовательность связывается с ФильтрНачальныеГраницыПоАналитике по условию "РасчетыСКлиентамиПоДокументам.АналитикаУчетаПоПартнерам = ФильтрНачальныеГраницыПоАналитике.АналитикаУчетаПоПартнерам".

    Первый вариант соединения чем-то отличается от такого соединения?? Результат будет одинаковый?
    ВопросСоединение.jpg
    Тут те же таблицы связываются по условию "Последовательность.АналитикаУчетаПоПартнерам = ФильтрНачальныеГраницыПоАналитике.АналитикаУчетаПоПартнерам".
  2. TopicStarter Overlay
    Svb
    Offline

    Svb Опытный в 1С Команда форума

    Регистрация:
    12 янв 2011
    Сообщения:
    980
    Симпатии:
    19
    Баллы:
    29
    Коллеги, мой вопрос слишком глуп? Или много текста? :))))

    У 1С получился адский алгоритм который раскидывает платежи по документам, и работает не так как мне надо. Вот уже целый день сижу, не могу до конца понять ход мыслей программистов 1С.
  3. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Таблица расширяется аналитиками, т.е. (как я понял) собираются все встречающиеся аналитики по существующим регистраторам и присоединяются к каждой записи.
    Svb нравится это.
  4. TopicStarter Overlay
    Svb
    Offline

    Svb Опытный в 1С Команда форума

    Регистрация:
    12 янв 2011
    Сообщения:
    980
    Симпатии:
    19
    Баллы:
    29
    Но почему последняя связь написана без использования таблицы РасчетыСКлиентами? Вместо нее использовали РасчетыСКлиентамиПоДокументам. Или это не имеет значения?
  5. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Текст запроса из 11.1.4.14 :
    Код:
        ВЫБРАТЬ РАЗЛИЧНЫЕ
            Последовательность.Регистратор КАК Регистратор,
            Последовательность.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам
        
        ПОМЕСТИТЬ АктуальныеАналитики
        ИЗ
            Последовательность.ПроведениеПоРасчетамСКлиентами КАК ТаблицаРегистраторов
           
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ
                Последовательность.ПроведениеПоРасчетамСКлиентами КАК Последовательность
            ПО
                ТаблицаРегистраторов.Регистратор = Последовательность.Регистратор
        
        ГДЕ
            ТаблицаРегистраторов.АналитикаУчетаПоПартнерам = &АналитикаУчетаПоПартнерам
            И ТаблицаРегистраторов.Период >= &НачальныеГраницыПериод
            И Последовательность.АналитикаУчетаПоПартнерам <> &АналитикаУчетаПоПартнерам
        ;
        ///////////////////////////////////////////////////////////////////////////////
        ВЫБРАТЬ
            РасчетыСКлиентамиПоДокументам.Период,
            РасчетыСКлиентамиПоДокументам.Регистратор,
            ИСТИНА КАК Активность,
            РасчетыСКлиентамиПоДокументам.ВидДвижения,
            РасчетыСКлиентамиПоДокументам.АналитикаУчетаПоПартнерам,
            РасчетыСКлиентамиПоДокументам.ЗаказКлиента,
            РасчетыСКлиентамиПоДокументам.РасчетныйДокумент,
            РасчетыСКлиентамиПоДокументам.Валюта,
            РасчетыСКлиентамиПоДокументам.ДатаПлатежа,
            РасчетыСКлиентамиПоДокументам.КОтгрузке,
            РасчетыСКлиентамиПоДокументам.КОплате,
            РасчетыСКлиентамиПоДокументам.КВозврату,
            РасчетыСКлиентамиПоДокументам.Долг,
            РасчетыСКлиентамиПоДокументам.ДолгУпр,
            РасчетыСКлиентамиПоДокументам.ДолгРегл,
            РасчетыСКлиентамиПоДокументам.Предоплата,
            РасчетыСКлиентамиПоДокументам.ПредоплатаУпр,
            РасчетыСКлиентамиПоДокументам.ПредоплатаРегл,
            РасчетыСКлиентамиПоДокументам.ХозяйственнаяОперация
        
        ИЗ
            РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
           
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ
                АктуальныеАналитики КАК АктуальныеАналитики
            ПО
                РасчетыСКлиентамиПоДокументам.Регистратор = АктуальныеАналитики.Регистратор
                И РасчетыСКлиентамиПоДокументам.АналитикаУчетаПоПартнерам = АктуальныеАналитики.АналитикаУчетаПоПартнерам
    
    --- Объединение сообщений, 28 мар 2014 ---
    как видно из приведенного таблица регистра поименоавана как "РасчетыСКлиентамиПоДокументам", и очевидно, что в общей выборке мы отсекаем ненужное внутренним соединением по полученным аналитикам
  6. TopicStarter Overlay
    Svb
    Offline

    Svb Опытный в 1С Команда форума

    Регистрация:
    12 янв 2011
    Сообщения:
    980
    Симпатии:
    19
    Баллы:
    29
    Ну тут запрос совсем другой уже.
    В 11.1 уже вообще весь механизм отложенных взаиморасчетов перелопаче, не только запрос.
  7. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Приведи свой текст запроса
  8. TopicStarter Overlay
    Svb
    Offline

    Svb Опытный в 1С Команда форума

    Регистрация:
    12 янв 2011
    Сообщения:
    980
    Симпатии:
    19
    Баллы:
    29
    Запрос вот такой:
    Интересует 4 и 5 строка снизу...
    Код:
    ВЫБРАТЬ
        РасчетыСКлиентамиПоДокументам.Период,
        РасчетыСКлиентамиПоДокументам.Регистратор,
        ИСТИНА КАК Активность,
        РасчетыСКлиентамиПоДокументам.ВидДвижения,
        РасчетыСКлиентамиПоДокументам.АналитикаУчетаПоПартнерам,
        РасчетыСКлиентамиПоДокументам.ЗаказКлиента,
        РасчетыСКлиентамиПоДокументам.РасчетныйДокумент,
        РасчетыСКлиентамиПоДокументам.Валюта,
        РасчетыСКлиентамиПоДокументам.ДатаПлатежа,
        РасчетыСКлиентамиПоДокументам.КОтгрузке,
        РасчетыСКлиентамиПоДокументам.КОплате,
        РасчетыСКлиентамиПоДокументам.КВозврату,
        РасчетыСКлиентамиПоДокументам.Долг,
        РасчетыСКлиентамиПоДокументам.Предоплата,
        РасчетыСКлиентамиПоДокументам.ПредоплатаРегл,
        РасчетыСКлиентамиПоДокументам.ХозяйственнаяОперация
    ИЗ
        Последовательность.ПроведениеПоРасчетамСКлиентами КАК Последовательность
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ НачальныеГраницы КАК НачальныеГраницы
            ПО Последовательность.АналитикаУчетаПоПартнерам = НачальныеГраницы.АналитикаУчетаПоПартнерам
                И Последовательность.Период >= НачальныеГраницы.Период
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
            ПО (РасчетыСКлиентамиПоДокументам.Регистратор = Последовательность.Регистратор)
            ЛЕВОЕ СОЕДИНЕНИЕ НачальныеГраницы КАК ФильтрНачальныеГраницыПоАналитике
            ПО (РасчетыСКлиентамиПоДокументам.АналитикаУчетаПоПартнерам = ФильтрНачальныеГраницыПоАналитике.АналитикаУчетаПоПартнерам)
    ГДЕ
        ФильтрНачальныеГраницыПоАналитике.АналитикаУчетаПоПартнерам ЕСТЬ NULL 
  9. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Прикол в том, что из всей синтезируемой таблицы нас интересуют колонки которые присутствуют в регистре накопления, в такой конструкции плохо то что регистр соединяем левым соединением, т.е. (гипотетически) могут присутствовать записи с значением в полях NULL
    --- Объединение сообщений, 28 мар 2014 ---
    а так, это несколько другое решение задачи корторую так-же решает запрос приведенный мною
    --- Объединение сообщений, 28 мар 2014 ---
    Смотрим последовательно, таблица - Последовательность внутренним соединением усекается по условию Аналитик и периодам. Результат усечения расширяется записями регистра накопления - РасчетыСКлиентамиПоДокументам далее результат расширяется соединением с "ФильтрНачальныеГраницыПоАналитике"
    Последнее редактирование: 28 мар 2014
    Svb нравится это.
  10. TopicStarter Overlay
    Svb
    Offline

    Svb Опытный в 1С Команда форума

    Регистрация:
    12 янв 2011
    Сообщения:
    980
    Симпатии:
    19
    Баллы:
    29
    Да, в результате получается таблица в которой все поля, кроме поля "Активность", равны NULL.
    Дальше еще лучше, процедура которая проводит документ по регистру РасчетыСКлиентамиПоДокументам, больше 1000 строк... В выходные буду разбираться...
  11. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    нужно запрос через консоль прогнать, при запуске в обычном приложении (запустить конфигуратор и в настройках указать режим запуска - обычное приложение) в этом случае можно нормальную консоль запросов пустить.

Поделиться этой страницей