8.х Оптимизация запроса

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Николаич87, 7 сен 2016.

  1. TopicStarter Overlay
    Николаич87
    Offline

    Николаич87 Опытный в 1С

    Регистрация:
    1 апр 2015
    Сообщения:
    122
    Симпатии:
    4
    Баллы:
    29
    Всем привет. Есть дин. список, поля из запроса убирать нельзя, но необходимо добавить поле ИНН для поиска по нему.
    Код:
    ВЫБРАТЬ
        СправочникПартнеры.Ссылка,
        СправочникПартнеры.ПометкаУдаления,
        СправочникПартнеры.Предопределенный,
        СправочникПартнеры.Родитель,
        СправочникПартнеры.Код,
        СправочникПартнеры.Наименование,
        СправочникПартнеры.БизнесРегион,
        СправочникПартнеры.ГруппаДоступа,
        СправочникПартнеры.ДатаРегистрации,
        СправочникПартнеры.Клиент,
        СправочникПартнеры.Комментарий,
        СправочникПартнеры.Конкурент,
        СправочникПартнеры.НаименованиеПолное,
        СправочникПартнеры.ОсновнойМенеджер,
        СправочникПартнеры.Поставщик,
        СправочникПартнеры.Перевозчик,
        СправочникПартнеры.ПрочиеОтношения,
        СправочникПартнеры.ОбслуживаетсяТорговымиПредставителями,
        Контрагенты.ИНН
    ИЗ
        Справочник.Партнеры КАК СправочникПартнеры
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                Контрагенты.ИНН КАК ИНН,
                Контрагенты.Партнер КАК Партнер
            ИЗ
                Справочник.Контрагенты КАК Контрагенты
            ГДЕ
                Контрагенты.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка)
                И Контрагенты.ИНН <> ""
           
            СГРУППИРОВАТЬ ПО
                Контрагенты.ИНН,
                Контрагенты.Партнер
           
            ИМЕЮЩИЕ
                КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Контрагенты.Партнер) = 1) КАК Контрагенты
            ПО СправочникПартнеры.Ссылка = Контрагенты.Партнер
    
    Сам запрос предельно простой, но в конфе (УТ11) включена опция по раздельному ведению партнеров и контрагентов, поэтому просто слева присоединить таблицу контрагентов не вариант - получится дублирование ключевого поля в основной таблице - что критично для дин. списка.
    Может у кого есть какие соображения - как можно получше написать такой запрос
  2. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    А вы знаете, что это за опция по "раздельному ведению партнеров и контрагентов"?
    На каждого партнера может быть несколько контрагентов и наоборот. Позволяет задавать различные взаимосвязи.
    Как вы себе представляете ситуацию в вашем списке:
    партнер 1 - контрагент 1
    партнер 2 - контрагент 2
    партнер 3 - контрагент 1
    Как должен вести себя ваш список?
    --- Объединение сообщений, 7 сен 2016 ---
    Либо убираете основную таблицу дин. списка, либо 1 партнер - 1 контрагент (как вариант - МАКСИМУМ()) =))
  3. TopicStarter Overlay
    Николаич87
    Offline

    Николаич87 Опытный в 1С

    Регистрация:
    1 апр 2015
    Сообщения:
    122
    Симпатии:
    4
    Баллы:
    29
    При всем уважении, но зачем текст про опцию. Речь не про это.
    Убрать осн таблицу не вариант
  4. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Значит ошибка будет..
    Ну или как-то сверните таблицу и если количество контрагентов на 1 партнера больше выводите в поле ИНН что-то типа <Несколько значений>.

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