|
Передача даты в виртуальную таблицу в запросе |
☑ |
0
НоваяВолна
09.12.21
✎
08:48
|
Запрос который надо исправить:
ВЫБРАТЬ
Событие.ЛицевойСчет КАК ЛицевойСчет,
Событие.Дата КАК ДатаСобытия,
Событие.Ответственный,
МАКСИМУМ(ПДАСрезПоследних.ДатаАктуальности) КАК ДатаАктуальности,
ВЫБОР
КОГДА Событие.Дата <= ПДАСрезПоследних.ДатаАктуальности
ИЛИ ПДАСрезПоследних.ДатаАктуальности ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ 1
КОНЕЦ КАК АктуальноНаМоментСобытия,
ВЫБОР
КОГДА ПДАСрезПоследних.ДатаАктуальности >= Событие.Дата
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ КАК ПроставленоПДА
ИЗ
Документ.Событие КАК Событие
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПДА.СрезПоследних(&ОкончаниеПериода, ) КАК ПДАСрезПоследних
ПО Событие.ЛицевойСчет = ПДАСрезПоследних.ЛицевойСчет
ГДЕ
Событие.Дата МЕЖДУ &НачалоПериода И КОНЕЦПЕРИОДА(&ОкончаниеПериода, ДЕНЬ)
И НЕ Событие.ПометкаУдаления
И Событие.Ответственный В(&СписокСотрудников)
И Событие.Проведен = ИСТИНА
И Событие.ЛицевойСчет <> ЗНАЧЕНИЕ(Справочник.ЛицевыеСчета.ПустаяСсылка)
проблема в том, что в Левом Соединении к РегистрСведений.ПДА.СрезПоследних(&ОкончаниеПериода, ) вместо &ОкончаниеПериода нужна Событие.Дата из этого же запроса. Каким образом переформировать запрос через ВТ или подзапросы?
|
|
1
Мультук
гуру
09.12.21
✎
08:54
|
(0)
Ты спросил у гугла? на мисте есть даже закрепленный ответ
|
|
2
НоваяВолна
09.12.21
✎
09:08
|
|
|
3
НоваяВолна
10.12.21
✎
06:26
|
Добавлю в тему немного другой вопрос.... Если хранить в РС дату + время, на сколько процентов вырастит база? Другими словами Есть РС.ПДА Независимый, с периодичностью в пределах секунды. В нем Реквизит ПДАС.ДатаАктуальности Тип - Дата ... потребовалось сравнивать значения ДатаВремя в документе с этим реквизитом РС
|
|
4
НоваяВолна
10.12.21
✎
06:28
|
(3) ** немного очепяток ))) смысл в том что надо сравнить дату документа до секунды с реквизитом РС в котором секунд нет, хотя сам он с периодикой до секунды.
|
|
5
Мультук
гуру
10.12.21
✎
07:17
|
(3)
1) Математика уровня кол-во записей умножить на размер поля
2) Взять тестовую базу добавить поле, с помощью известной функции/обработки посмотреть насколько выросла искомая таблица
3) Вспомнить что на дворе уже 2021 год гигабайтами базу не напугаешь
4) Если это реквизит, то там уже на уровне запроса проблема с производительностью, поэтому наверное его просто можно привести к КОНЕЦПЕРИОДА прямо в запросе.
P.S.
Написано на автопилоте, меряй производительность и думай, плиз сам.
|
|
6
НоваяВолна
10.12.21
✎
07:31
|
(5) спасибо, особенно приятно что вся "тяжелая артиллерия" форума собралась .... или почти вся ))))
На самом деле подумал, не надо мне хранить лишнее. По моим задачам есть другие пути обхода проблемы
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший