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

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем OrenLiTo, 24 авг 2012.

  1. TopicStarter Overlay
    OrenLiTo
    Offline

    OrenLiTo

    Регистрация:
    23 авг 2012
    Сообщения:
    48
    Симпатии:
    0
    Баллы:
    1
    Добрый день. подскажите пожалуйста, надо оптимизировать запрос.

    Код:
     запрос = Новый Запрос(" ВЫБРАТЬ
    |  Поступление.Ссылка КАК Поступление,
    |  Номенклатура.Ссылка КАК Товар
    | ИЗ
    |  (
    |   ВЫБРАТЬ
    |    Ном.Ссылка Из Справочник.Номенклатура
    |   КАК
    |    Ном
    |   ГДЕ
    |    Ном.ТипПродкуции.Ссылка = Значение(Перечисление.ТипПродукции.Тип1)
    |  ) КАК Номенклатура
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    |  (
    |   ВЫБРАТЬ
    |    Документ.ПоступлениеТоваровУслугВНТТ.Ссылка КАК Ссылка,
    |    Документ.ПоступлениеТоваровУслугВНТТ.Товары
    |   ГДЕ
    |    Документ.ПоступлениеТоваровУслугВНТТ.Контрагент.код НЕ В(&Контрагенты)
    |    И Документ.ПоступлениеТоваровУслугВНТТ.Дата >= &ДатаНачала
    |    И Документ.ПоступлениеТоваровУслугВНТТ.Дата <= &ДатаКонца
    |  )КАК Поступление
    | ПО (Номенклатура.Ссылка В (Поступление.Товары.Номенклатура.Ссылка))
    | "); 
    
    Работает ОЧЕНЬ долго. В первой выборке 4 записи, во второй 15000. Работал всю ночь, но так и не вывел все что надо.
  2. Максим
    Online

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    А что по вашему этот запрос должен вернуть?
  3. TopicStarter Overlay
    OrenLiTo
    Offline

    OrenLiTo

    Регистрация:
    23 авг 2012
    Сообщения:
    48
    Симпатии:
    0
    Баллы:
    1
    Имеется список контр агентов, которые продают определенный тип продукции, надо вывести все данные по продукции и договору, по которому контрагент не из списка поставляет продукцию этого типа.
  4. 1cUserAndrew
    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Раз у Вас внутреннее соединение, то нет смысла отдельно делать выборку из справочника.
    Попробуйте так:
    Код:
    "ВЫБРАТЬ
    | ПоступлениеТоваровУслугВНТТТовары.Ссылка,
    | ПоступлениеТоваровУслугВНТТТовары.Номенклатура
    |ИЗ
    | Документ.ПоступлениеТоваровУслугВНТТ.Товары КАК ПоступлениеТоваровУслугВНТТТовары
    |ГДЕ
    | НЕ ПоступлениеТоваровУслугВНТТТовары.Ссылка.Контрагент В (&Контрагенты)
    | И ПоступлениеТоваровУслугВНТТТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
    | И ПоступлениеТоваровУслугВНТТТовары.Номенклатура.ТипПродкуции = Значение(Перечисление.ТипПродукции.Тип1)"
  5. TopicStarter Overlay
    OrenLiTo
    Offline

    OrenLiTo

    Регистрация:
    23 авг 2012
    Сообщения:
    48
    Симпатии:
    0
    Баллы:
    1

    А то что у меня в документе много товаров, он все просмторит?
  6. 1cUserAndrew
    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Да.

    Выборка ведь осуществляется как раз из табличной части "Товары".
  7. TopicStarter Overlay
    OrenLiTo
    Offline

    OrenLiTo

    Регистрация:
    23 авг 2012
    Сообщения:
    48
    Симпатии:
    0
    Баллы:
    1
    Точно. спасбио большое.

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