Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Оптимизация запроса к регистру бухгалтерии

Оптимизация запроса к регистру бухгалтерии
Я
   antihacker
 
19.10.17 - 11:18
Добрый день !

Вот запрос. Но пахоже что он тормозит.

Как можно еще оптимизировать ?
Функция ТекстЗапросаДляОптимизации() Экспорт
    ТекстЗапроса = 
        "ВЫБРАТЬ
        |    ЗакупкиОбороты.Контрагент
        |ПОМЕСТИТЬ ВТ_Контрагенты
        |ИЗ
        |    РегистрНакопления.Закупки.Обороты(
        |            &ДатаНачала,
        |            &ДатаОкончания,
        |            ,
        |            Организация = &Организация
        |                И Валюта = &Валюта) КАК ЗакупкиОбороты
        |;
        |
        ////////////////////////////////////////////////////////////////////////////////

        |ВЫБРАТЬ
        |    ВЫБОР
        |        КОГДА УправленческийДвиженияССубконто.СчетДт В ИЕРАРХИИ (&СчетГруппа)
        |            ТОГДА УправленческийДвиженияССубконто.СубконтоДт1
        |        ИНАЧЕ УправленческийДвиженияССубконто.СубконтоКт1
        |    КОНЕЦ КАК Контрагент,
        |    ВЫБОР
        |        КОГДА УправленческийДвиженияССубконто.СчетДт В ИЕРАРХИИ (&СчетГруппа)
        |            ТОГДА УправленческийДвиженияССубконто.СубконтоДт1.Описание
        |        ИНАЧЕ УправленческийДвиженияССубконто.СубконтоКт1.Описание
        |    КОНЕЦ КАК ОписаниеКонтрагента,
        |    УправленческийДвиженияССубконто.Сумма,
        |    УправленческийДвиженияССубконто.Регистратор,
        |    УправленческийДвиженияССубконто.Содержание
        |ИЗ
        |    РегистрБухгалтерии.Управленческий.ДвиженияССубконто(
        |            &ДатаНачала,
        |            &ДатаОкончания,
        |            Организация = &Организация
        |                И ((СчетДт В ИЕРАРХИИ (&СчетГруппа)
        |                        И СубконтоДт1 В
        |                            (ВЫБРАТЬ
        |                                ВТ_Контрагенты.Контрагент
        |                            ИЗ
        |                                ВТ_Контрагенты))
        |                    ИЛИ (СчетКт В ИЕРАРХИИ (&СчетГруппа)
        |                        И СубконтоКт1 В
        |                            (ВЫБРАТЬ
        |                                ВТ_Контрагенты.Контрагент
        |                            ИЗ
        |                                ВТ_Контрагенты))),
        |            ,
        |            ) КАК УправленческийДвиженияССубконто";
        
    Возврат ТекстЗапроса;
КонецФункции
 
 
   Волшебник
 
Модератор
1 - 19.10.17 - 11:19
ДвиженияССубконто - тормозная таблица. Не используйте её.
   Волшебник
 
Модератор
2 - 19.10.17 - 11:20
в первом запросе добавьте РАЗЛИЧНЫЕ
   Timon1405
 
3 - 19.10.17 - 11:21
ТОГДА выразить(УправленческийДвиженияССубконто.СубконтоДт1 как Справочник.Контрагенты).Описание
   Шаман
 
4 - 19.10.17 - 11:23
у вас два раза условие отбора по счету в иеерархии. в настройках параметров и в самом условии запроса .
   catena
 
5 - 19.10.17 - 11:25
(4)Где там условия в запросе? Только фильтр виртуальных таблиц.
   antihacker
 
6 - 19.10.17 - 11:32
В конфигурации есть регистр накопления Закупки и регистр бухгалтерии Управленческий.
Дан текст запроса в модуле менеджера обработки Задание1_ОптимизацияЗапроса.
Цель запроса: показать движения по счету из группы 68 Налоги и сборы для контрагентов, по которым осуществлялись закупки в USD.
Есть ли необходимость в оптимизации запроса? Если да, то предоставьте свой вариант запроса, описав оптимизации.
   youalex
 
7 - 19.10.17 - 11:55
Условие ИЛИ - может тупить, если оно применено к разным полям (нельзя преобразовать в условие В()).

Попробуй разбить второй запрос на два через ОБЪЕДИНИТЬ ВСЕ
   antihacker
 
8 - 19.10.17 - 12:04
Шаман, кажись ты прав. Описание можно и та кдоступно удет через Контрагент.Описание.
   Новиков
 
9 - 19.10.17 - 12:16
Да, обленились сегодня франчи. Одно и тоже задание не меняют месяцами. Как и обленились сами соискатели, т.к. не юзают поиск.

Лентяй antihacker лови:
Оптимизация запроса (вопрос с собеседования)

Там даже есть ответы из франча.

Дедушке Новикову +1 за феноменальную память.
   Новиков
 
10 - 19.10.17 - 12:16
Название франча теперь в студию запали, чтоб узнать, кто ж эти лентяи то?
 
 Рекламное место пустует
   Новиков
 
11 - 19.10.17 - 12:18
И отправь им ответ  ссылку на эту тему, и на предыдущую с просьбой изменить уж задание то. А то баяном может стать. Как анекдот про Сузуки.
   Новиков
 
12 - 19.10.17 - 12:19
Кстати, спроси у них, отчего они так часто свою вакансию вывешивают? Куда с 1 августа предыдущий прог сбежал?
   ptiz
 
13 - 19.10.17 - 12:23
(9) Да тут и память не нужна, само в глаза бросается :)
   Новиков
 
14 - 19.10.17 - 12:30
(13) Ты не понял. Здесь не важно, что ты ответишь на это задание. Важно, чтобы то, что ты ответил, совпало с ожиданием проверяющего. Он отвечает коротко: согласен, не согласен. Все с чем он согласен, нужно копировать и отправлять ему в обратку в его формулировке с небольшим рерайтом. Все с чем он не согласен, - нужно крутить его на правильный ответ и запостить здесь же его. Таким образом можно будет получить правильный ответ по мнению проверяющего. Это дампинг, как на экзамене. Следующий чувак, который пойдет в эту контору на два месяца работать, нагуглит эталонный ответ за минуту и уже отправит ему ответ, и получит эту работу. Там видимо бодишоп, тела меняются раз в месяц-два, поэтому чем быстрее ответишь, тем лучше :)
   antihacker
 
15 - 19.10.17 - 12:32
Мне интересными стали сами задачи. Я живу в Казахстане. И в РФ не рвусь :-)
   Новиков
 
16 - 19.10.17 - 12:38
Откуда ты получил эту задачу, что за франч и с какого он града? Мне просто интересно, т.к. проверяющий не читает мисту, и не в курсе, что его задание явно зашквариком попахивает уже.
   kiruha
 
17 - 19.10.17 - 12:55
Знатный развод )
   VS-1976
 
18 - 19.10.17 - 13:11
(15) тебе нужно сделать примерно так. Подправишь как нужно...

ВЫБРАТЬ РАЗЛИЧНЫЕ
  ...
ИЗ
  ( ВЫБРАТЬ
    тзСубконто.Регистратор,
    тзСубконто.ВидДвижения
  ИЗ
    ВТ_Контрагенты
    СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Субконто КАК тзСубконто
      ПО тзСубконто.Вид = ЗНАЧЕНИЕ( ПланВидовХарактеристик.ВидыСубконтоУправленческие.Контрагенты )
       И тзСубконто.Значение = ВТ_Контрагенты.Контрагент

  ) КАК тзРегистраторы

  СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий КАК тзДвижения
    ПО тзДвижения.Регистратор = тзРегистраторы.Регистратор
     И ВЫБОР КОГДА тзРегистраторы.ВидДвижения = ЗНАЧЕНИЕ( ВидДвиженияБухгалтерии.Дебет )
         ТОГДА тзДвижения.СчетДт В ( В ИЕРАРХИИ ( &СчетГруппа )
         ИНАЧЕ тзДвижения.СчетКт В ( В ИЕРАРХИИ ( &СчетГруппа )
       КОНЕЦ
   VS-1976
 
19 - 19.10.17 - 13:22
(18) Копипаст...

ТОГДА тзДвижения.СчетДт В ИЕРАРХИИ ( &СчетГруппа )
ИНАЧЕ тзДвижения.СчетКт В ИЕРАРХИИ ( &СчетГруппа )

Список тем форума
Рекламное место пустует  Рекламное место пустует
Программист всегда исправляет последнюю ошибку.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует