не думаю, что надо переписывать forumRun. Хотя согласен с тем, что в конечном итоге задачу создания экземпляра выполняет ClassFactory.
О правильном запуске (инстанцировании) форм читайте хелп разработчика
Activating a menu item from your X++ code
можно поискать по ключевому слову "formRun"
Или, если все же хотите заниматься созданием форм вручную, прочиатйте
Constructing a form from your X++ code
реальный тип формы, таблицы, отчета берется не из classDeclaration, а из AOT.
classDeclaration нужен только для определения локальных для формы/отчета переменных.
Цитата:
каким образом до моей формы доходит вызов setCatg если оно обращено к экземпляру другого класса
прочитайте про виртуальные методы.