14.10.2015, 12:20 | #1 |
Участник
|
Зачем server в RAssetParameters::find() ?
При очередной попытке уменьшить тормоза обратил внимание, что в российских модулях (я смотрел только ОС и подотчетные лица) на таблице параметров RAssetParameters и EmplParameters_RU метод find (и не только) указан выполнение на АОС. Вопрос чем руководствовались наши разработчики? Зачем это?
find массово выполняться на клиенте на форме, и к чему эти лишние транспортные затраты клиент - аос? Затраты на порядок выше! Что там такого в этом методе чтобы тащить вынужденно выполнение на сервер? По моему бред. В других таблицах параметров (не российского производства) подобного не делают. Я вообще на четвертой версии, но смотрю в 2009 тоже самое. |
|
|
За это сообщение автора поблагодарили: AnGor (1). |
14.10.2015, 12:23 | #2 |
Участник
|
|
|
14.10.2015, 13:39 | #3 |
Участник
|
Не вижу смысла так писать. Отрубается вся выгода от кеширования на клиенте.
|
|
14.10.2015, 16:55 | #4 |
Участник
|
Не то, чтобы это было правильно, но именно в отношении настроек подотчетных лиц и ОС - не критично.
По перекрестным ссылкам видно, что EmplParameters_RU::find() вызывается или в расчетных методах, или при открытии форм. Для RAssetParameters::find() - несколько хуже. Есть вызовы в дисплейных методах форм, но таких форм одна или две Т.е., видимо, разработчики исходили из предположения, что на клиенте эти таблицы используются чрезвычайно редко. Или какой-то расчет оптимизировали... Хотя, согласен, зря они это сделали По поводу подотчетных лиц X++: public server static client EmplParameters_RU find(boolean _update = false) В определении есть и server, и client. Просто эти слова разделены словом static
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... Последний раз редактировалось Владимир Максимов; 14.10.2015 в 16:58. |
|
14.10.2015, 19:11 | #5 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
Не то, чтобы это было правильно, но именно в отношении настроек подотчетных лиц и ОС - не критично.
Т.е., видимо, разработчики исходили из предположения, что на клиенте эти таблицы используются чрезвычайно редко. Или какой-то расчет оптимизировали... Хотя, согласен, зря они это сделали По поводу подотчетных лиц X++: public server static client EmplParameters_RU find(boolean _update = false) В определении есть и server, и client. Просто эти слова разделены словом static Про find из EmplParameters_RU пардон проглядел) И кста частенько вижу у методов указание client server. В чем фича так писать? я всегда считал что это значит как если бы не писать ни того ни другого. |
|
14.10.2015, 21:28 | #6 |
Участник
|
Цитата:
В общем, такое уважение к тем, кто будет смотреть метод (включая себя через некоторое время): "ребята", вот для вас прямая подсказка. А насчет RAssetParameters::find, конечно зря указано прямо место выполнения. Но тут проблема даже не в самом методе, а в его применении в формах. Вместо вызова его один раз в init и запоминания, дергается в куче мест формы (включая дисплейные методы датасорса). |
|
|
|