Физически, пакетное задание - это просто запись в таблице Batch. Далее соответствующая служба просматривает записи этой таблицы и используя сохраненные в ней настройки, запускает на выполнение соответствующий класс
Диалог от RunBaseBatch - это всего-лишь интерфейс для заполнения определенных реквизитов в создаваемой записи
Т.е. Ваша задача - это как раз сформировать запись таблицы Batch, используя те или иные инструменты
В общем случае, можно вообще без дополнительного класса, примерно так
X++:
MyClass taskBatch;
BatchHeader batchHeader;
// Класс, который надо запустить в пакетном задании. Наследник от RunBase
taskBatch = new MyClass();
taskBatch.parm_1(xxx);
taskBatch.parm_2(yyy);
// Создание пакетного задания, которое запустится "немедленно"
batchHeader = BatchHeader::construct();
batchHeader.addTask(taskBatch);
batchHeader.parmStartDateTime(DateTimeUtil::utcNow());
batchHeader.save();
Наследник от RunBase, поскольку нужно, чтобы были методы pack/unpack для упаковки/распаковки параметров и метод run, который будет запускаться
Но, поскольку, все-равно придется делать "оболочку" над классом "release", то реквизиты пакетного задания указываются через объект
runBaseBatch.batchInfo()
а собственно создание пакетного задания - это команда
X++:
runBaseBatch.batchInfo().parmBatchExecute(true);
runBaseBatch.doBatch();
Так что, вполне можно обойтись без меню и без дополнительного диалога