8.х Ускорить запрос

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

  1. TopicStarter Overlay
    TODD22
    Offline

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Здравствуйте.
    Запрос работает медленно. В таком виде он выполняется 40+ секунд.
    Код:
    "ВЫБРАТЬ
                           |    ОказанныеУслугиОбороты.РассроченныйПлатеж,
                           |    ОказанныеУслугиОбороты.Регистратор.Основание КАК Основание
                           |ИЗ
                           |    РегистрНакопления.ОказанныеУслуги.Обороты(, , Регистратор, ) КАК                     ОказанныеУслугиОбороты
                           |ГДЕ
                           |    ОказанныеУслугиОбороты.Регистратор.Ссылка = &Ссылка";
    Переписал условие ГДЕ теперь он выполняется за 7 секунд. Но это то же долго. Так как на кассе всё это работает и скапливается очередь:
    Код:
     |ГДЕ
    |    ОказанныеУслугиОбороты.Регистратор = &Ссылка";
    Что можно ещё сделать? Регистратор это 3 вида документов. Анализировать нужно все.
    Может передавать интервал дат в виртуальную таблицу с датой регистратора? Ведь запрос всё равно получает данные только одного регистратора.
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Это полный запрос или сокращенный?

    Раскройте смысл поля РассроченныйПлатеж в регистре, и как он связан с Основанием.
  3. TopicStarter Overlay
    TODD22
    Offline

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Это полный запрос.
    Получается что с "рассроченным платежом" документ основание никак не связан. Эта связь в регистре. В документе основании нет этого реквизита.
  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Период добавьте, или это критично?
  5. TopicStarter Overlay
    TODD22
    Offline

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Да получается что период не критичен. Там запрос выбирает документ основание и признак рассроченный это платёж или нет.
  6. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Если движений много, то лучше конечно накладвать период для оборотов и срез на остатки.
    Кстати, может эти доки делают движения по РН ? Тогда можно ускорить запрос :)
    TODD22 нравится это.
  7. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а разве условие нельзя прямо к таблице сделать? обязательно надо в блок ГДЕ выносить?
    alexburn нравится это.
  8. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Кстати, да :)
  9. TopicStarter Overlay
    TODD22
    Offline

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Ну вот у меня не получается сделать условие прямо к таблице что бы можно было отобрать по регистратору.
    Я уже думаю может проблема именно в виртуальной таблице. Может обратится к реальной. Так как мне обороты не нужны. Мне нужен только признак рассрочки и док основание.
  10. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    да действительно, у оборотов не получается в условие запихать регистратор, так как это не измерение регистра (((
  11. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    А если использовать Авто-группировку, а не по регистратору ?
  12. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Можете описать полностью задачу что бы мы подумали откуда можно барть данные и если можно Состав данного регистра накопления
  13. TopicStarter Overlay
    TODD22
    Offline

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Есть конфигурация кем то написанная. В ней есть вот такой запрос. Не понятно от каких фаз луны это зависит но формирование документов в процедуре где есть этот запрос может занимать от нескольких секунд до 50 секунд.
    На тормозах сделал замер производительности. 99% времени выполняется этот запрос.
    Вот сам регистр:
    РегистрОказанныхУслуг.jpg
    --- Объединение сообщений, 11 фев 2015 ---
    Проблемы бы не было если бы признак рассрочки платежа был в документе. А он в регистре. То есть нужно получить и признак рассрочки и документ основание.
    В принципе и 7 секунд после 40-50 это уже хорошо :)
  14. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Ну, рассроченныйПлатеж у Вас измерение - значит можно на него условие в виртуальной таблице наложить
    Причем можете у него посмотреть стоит ли там индексировать? если нет, то можете проставить и посмотреть. Только если клиент сервер, то ребилд индексов на сервере сделайте
  15. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Но на основании каких-то данных это измерение же заполняется.

    На данный момент мне не совсем понятна необходимость использования запроса к РН, если данных из РН никаких по сути не получается.
    --- Объединение сообщений, 11 фев 2015 ---
    З.Ы. А и да, необходимость использования виртуальной таблицы тоже для меня пока не очевидна.
  16. TopicStarter Overlay
    TODD22
    Offline

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Для меня то же не очевиден такой подход :) Но надо как то поправить.
    Смысл обращения к регистру в том что в нём есть измерение "Рассроченный платёж" с типом "Булево". А в документе его нет.
  17. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Это булево поле Рассроченный платеж - на основании чего заполняется?
  18. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    Можно, конечно, попробовать установить параметрами виртуальной таблицы отбор по всем измерениям, чтобы оно выбирало не все документы, только вот не знаю, возможно ли это вообще.
    Так понимаю, все значения для измерений содержаться в регистраторе.

    Отбор по услуге и по организации - 100% нужен в парметрах виртуальной таблицы.
    Последнее редактирование: 11 фев 2015
    TODD22 нравится это.
  19. TopicStarter Overlay
    TODD22
    Offline

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Программно в момент формирования движения определяется рассрочка или нет. В общем нагородили там студенты....
    Попробую обратится к реальной таблице регистра. Может так будет быстрее. Так как мне рассчитывать ничего не нужно. И никаких суммовых показателей я неполучаю.
    Ну и "Регистратор.Основание" попробую через "Выразить" привести к нужному мне типу. Только там 2 документа могут быть регистраторами. Третий в принципе не нужен уже... это ввод нач остатков...
  20. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Ну тогда можно изменить следующим образом

    Если ТипЗнч(ТекОбъект) = Тип("ДокументСсылка.Документ1") Тогда ...

    Запрос 1

    Иначе
    Запрос 2

    КонецЕсли;

    Запрос 1 и Запрос2
    Тупо запросы именно к объекту документ данного типа с отбором по ссылке

    идея понятна?
Похожие темы
  1. p1379
    Ответов:
    13
    Просмотров:
    908
Загрузка...

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