Показать сообщение отдельно
Старый 20.09.2021, 17:17   #11  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от DesparioN Посмотреть сообщение
Проблема в том, что set будет формироваться на клиенте, т.е. пользователю придется ждать пока он сформируется. По возможности хотелось бы все перенести на сервер.
Если вас так волнует, что пользователи будут ждать заполнения Set на клиенте, не давайте им вообще выделять записи через Grid - пусть запускают нечто (периодическую операцию, например) и через штатный механизм фильтрации (кнопка Выбор, расширенный фильтр, все дела) отбирают записи, подлежащие обработке. Крыжить записи на форме - это для случаев, когда записей мало, а критерии выбора трудно формализуемы. Если пользователи отфильтровывают записи и потом выделяют их все, то это - избыточный шаг, они даже не видят все записи, которые хотят обработать, потому что на форму для отрисовки Grid тянется лишь несколько десятков записей из выборки.
Выделять все записи для обработки через Grid - это все равно что слать в СУБД запрос на выбор 100500 записей, получать их по сети, потом куда-то там сохранять их уникальные идентификаторы, передавать их обратно по сети в СУБД и слать запрос "обнови как записи вот с такими идентификаторами таким-то образом". Так ведь никто с СУБД не работает - все стараются сразу послать запрос "обнови таким-то образом записи, которые удовлетворяют таким-то критериям".
Тем более это актуально в случае пакетной обработки: обычно форму клиент открывает на одном сервере, а пакетная обработка запускается на другом, и между ними нужно передать данные, что именно следует обрабатывать. В этом плане запаковать запрос с критериями фильтрации проще и быстрее, чем запаковать Set/Map с идентификаторами каждой записи.

Если же записей обычно немного, то посмотрите на штатный подход передачи их с формы в класс-обработчик - FormLetter::getFormRecord().
За это сообщение автора поблагодарили: dn (6), sukhanchik (4), Manner (1).