В запросе есть поле:
Как-то можно его оптимизировать?
ВЫБОР
КОГДА КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(Итог_Вт.ПериодЗатрат.ПериодЗатрат, МЕСЯЦ, -1), МЕСЯЦ) < ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Итог_Вт.ПериодЗатрат.ПериодЗатрат, МЕСЯЦ, -1), ДЕНЬ, &СрокОплаты - 1)
ТОГДА КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(Итог_Вт.ПериодЗатрат.ПериодЗатрат, МЕСЯЦ, -1), МЕСЯЦ)
ИНАЧЕ ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Итог_Вт.ПериодЗатрат.ПериодЗатрат, МЕСЯЦ, -1), ДЕНЬ, &СрокОплаты - 1)
КОНЕЦ
Как-то можно его оптимизировать?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) День добрый!
Я бы наверно вставил в таблицу Итог_Вт, которая формируется у Вас где-то ранее, поле "ДОБАВИТЬКДАТЕ(КакаяТоТаблица.ПериодЗатрат.ПериодЗатрат, МЕСЯЦ, -1) Как ДатаМинус" и в итоге получилось бы
Плюс возникает вопрос с конструкцией "Итог_Вт.ПериодЗатрат.ПериодЗатрат" - но это уже в таблице Итог_Вт смотреть нужно.
Я бы наверно вставил в таблицу Итог_Вт, которая формируется у Вас где-то ранее, поле "ДОБАВИТЬКДАТЕ(КакаяТоТаблица.ПериодЗатрат.ПериодЗатрат, МЕСЯЦ, -1) Как ДатаМинус" и в итоге получилось бы
ВЫБОР
КОГДА КОНЕЦПЕРИОДА(Итог_Вт.ДатаМинус, МЕСЯЦ) < ДОБАВИТЬКДАТЕ(Итог_Вт.ДатаМинус, ДЕНЬ, &СрокОплаты - 1)
ТОГДА КОНЕЦПЕРИОДА(Итог_Вт.ДатаМинус, МЕСЯЦ)
ИНАЧЕ ДОБАВИТЬКДАТЕ(Итог_Вт.ДатаМинус, ДЕНЬ, &СрокОплаты - 1)
КОНЕЦ
Плюс возникает вопрос с конструкцией "Итог_Вт.ПериодЗатрат.ПериодЗатрат" - но это уже в таблице Итог_Вт смотреть нужно.
(2) ТС имеет в виду, скорее всего, ввобще отказаться от конструкции ВЫБОР, что есть разумно, когда много строк!
Ну как вариант в реквизит занести:
КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(Итог_Вт.ПериодЗатрат.ПериодЗатрат, МЕСЯЦ, -1), МЕСЯЦ) < ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Итог_Вт.ПериодЗатрат.ПериодЗатрат, МЕСЯЦ, -1), ДЕНЬ, &СрокОплаты - 1)
ТОГДА КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(Итог_Вт.ПериодЗатрат.ПериодЗатрат, МЕСЯЦ, -1), МЕСЯЦ)
в другой:
КОНЕЦПЕРИОДА(Итог_Вт.ДатаМинус, МЕСЯЦ)
ну и в третий:
ДОБАВИТЬКДАТЕ(Итог_Вт.ДатаМинус, ДЕНЬ, &СрокОплаты - 1)
А дальше, уже шаманить с данными через соединения и т.п.
Ну как вариант в реквизит занести:
КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(Итог_Вт.ПериодЗатрат.ПериодЗатрат, МЕСЯЦ, -1), МЕСЯЦ) < ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Итог_Вт.ПериодЗатрат.ПериодЗатрат, МЕСЯЦ, -1), ДЕНЬ, &СрокОплаты - 1)
ТОГДА КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(Итог_Вт.ПериодЗатрат.ПериодЗатрат, МЕСЯЦ, -1), МЕСЯЦ)
в другой:
КОНЕЦПЕРИОДА(Итог_Вт.ДатаМинус, МЕСЯЦ)
ну и в третий:
ДОБАВИТЬКДАТЕ(Итог_Вт.ДатаМинус, ДЕНЬ, &СрокОплаты - 1)
А дальше, уже шаманить с данными через соединения и т.п.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот