1. Статический метод main - это стартовый метод класса, если сам класс запускается через объект Menu Items. Т.е. через пункт меню.
Разумеется, это можно сделать и программно (и делают), но, как правило, это означает запуск пользователем "вручную". По кнопке или через пункт меню
2. При запуске класса в пакетном режиме сам запуск происходит следующим образом
X++:
myClass = new MyClass(); // Вот поэтому не надо в new() передавать параметры
myClass.unpack(xxx);
myClass.parmInBatch(true); // Явным образом указывается признак запуска в пакетном режиме
myClass.run();
Вот по значению параметра parmInBatch() и можно определить, запущен ли класс в пакетном режиме или нет. Ну, или через isInBatch() - это чтение той же самой переменной