Показать сообщение отдельно
Старый 22.02.2023, 17:01   #21  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Logger Посмотреть сообщение
Цитата:
Сообщение от DarkSpirit22 Посмотреть сообщение
В голову еще приходит SQL filtered unique index:
А как вы его из аксапты сделаете, да еще и гарантируете, что он не слетит при следующей синхронизации ?
Из Аксапты фильтрованный индекс не сделать, она такое не умеет, но из Аксапты можно сделать "обычный" уникальный индекс, а уже на уровне СУБД сделать его фильтрованным. Замечено, что синхронизация БД из Аксапты "не различает", фильтрованный в базе индекс или нет, а смотрит только на название/порядок полей и проч. Таким вот образом в D365FO решалась задача "отключения" ненужных/вредных индексов стандартного приложения: поменять свойства стандартного индекса в приложении нельзя (с тех пор, как закрыли overlayering), но можно на стороне СУБД добавить индексу условие вида where partition = 0 - и вуаля! А тут можно добавить условие вида where active = 1. Конечно, если вдруг понадобится поменять индекс, то синхронизация попытается его пересоздать, и тогда надо будет заново приклеивать фильтрацию со стороны СУБД. Но в остальном всё работает нормально.

Последний раз редактировалось gl00mie; 22.02.2023 в 17:04.
За это сообщение автора поблагодарили: Logger (5).