Начну с примера, чтобы снять часть вопросов "а зачем всё это?" У меня есть локация (в терминах QSP) "Описание". И у неё есть два назначения:
В первом случае я её вызываю через GS 'Описание', …
, во втором — через func('Описание', …)
.
Различие функционала производилось по количеству и составу параметров, но это хлопотно и не всегда надёжно. Поэтому хотелось бы иметь возможность чётко различать, когда локация вызвана как процедура, а когда — как функция. И небольшой эксперимент, кажется, позволил нащупать такую возможность.
Если локация вызывается через GS
, GT
или XGT
, то arrsize('Result')
внутри локации возвращает 1
.
Если локация вызывается через func
, то arrsize('Result')
внутри локации возвращает 0
.
Платформа: QSP 5.7.0 Classic
Неактивен
Увы, но, оказывается, это не фича, а баг. В следующих версиях будет исправлено, так что полагаться на это с расчётом на будущее нельзя.
Неактивен