Показать сообщение отдельно
Старый 28.02.2019, 03:55   #6  
trud is offline
trud
Участник
Лучший по профессии 2017
 
845 / 1097 (38) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от mazzy Посмотреть сообщение
можно добавить:
NZ
StrAfter
StrAfterChar
strAfterLast
strAfterLastChar
StrBefore
StrBeforeChar
StrBeforeLast
StrBeforeLastChar
StrLeft
StrPadLeft
StrPadRight
StrRight
StrSplit
А что такое NZ? по остальному - в D365 лучше наверное использовать класс System.String - там есть просто все и даже больше. Если пришлете тексты, могу включить, но лучше наверное в отдельный класс DEVStringHelper

Цитата:
Сообщение от mazzy Посмотреть сообщение
и еще. а зачем нужен метод cObj?
понятно, что он делает downcast. но зачем?
насколько я понимаю, для System.Object он все равно не подходит.
Если не ошибаюсь изначально позаимствовал у Ромы, нужен если у вас есть FormRun и на нем надо вызвать метод. В последнее время кстати приходилось несколько раз пользовать(хотя понятно что лучше этого избегать). Врядли он будет работать для System.Object

Цитата:
Сообщение от mazzy Посмотреть сообщение
и еще. уж извините
Я наоборот за критику, в спорах рождается истина. Более того, по опыту выкладывания утилит, самое частое что я использую сам - это создание экстенш метода(которое добавил skull), т.е. пока это win-win стратегия

Цитата:
Сообщение от mazzy Посмотреть сообщение
часто видел метод countTotalQuick на проектах где участвовал Колумбус.
то, что метод в Global, а не в SysQuery - фиг с ним.
то, что возвращает Integer, а не Int64 - тоже фиг с ним.

Но почему пакуется queryRun, а не Query?

Вроде метод выполняется там, где вызывается (нет модификатора server/client), поэтому нет передачи объекта между сервером и клиентом.

ведь можно было бы и так:
X++:
static Integer countTotalQuick(QueryRun _queryRun)
    {
        container               queryPack = _queryRun.Query().pack();
        Query                   countQuery = new Query(queryPack);
...
но сделано вот так:
X++:
static Integer countTotalQuick(QueryRun _queryRun)
    {
        container               queryPack = _queryRun.pack();
        Query                   countQuery;
        QueryRun                countQueryRun;
        ;
        countQueryRun   = new QueryRun(queryPack);
        countQuery      = countQueryRun.query();
...
это не в качестве критики, а просто интересно. может я чего не знаю?
Идея метода - продублировать стандартный SysQuery::countPrim, но без условия

X++:
if (countQuery.dataSourceCount() == 1)
{ qbds.addSelectionField(fieldNum(Common, RecId), SelectionField::Count);     }
т.е. Count использовать всегда. зачем там пакуется QueryRun и почему они возвращают Integer я честно говоря не знаю, но идея была чтобы заменить один на другой. А какие с этим проблемы?
За это сообщение автора поблагодарили: mazzy (10), EVGL (20).