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