Суть в следующем:
Все довольно просто. Вы вызываете объект 1 из объекта 2. И потом хотите вернуть результат в объект 2 из объекта 1.
Для этого вам нужно иметь доступ из объекта 2 к объекту 1 или наоборот, помнить ссылку на объект 2 в объекте 1.
Так как вызываете вы класс из метода, то вызывающего объекта (объект 2) в том смысле, что описан выше, у Вас нет. Поэтому применим второй вариант.
Для этого вместо вызова пункта меню (что приведет к вызову метода main) можно эту логику поместить непосредственно в метод validateWrite, как советуют выше
X++:
SUG_Change_Dial sug_ChD = new SUG_Change_Dial();
;
sug_ChD.setCustTable(this);
sug_ChD.setFormName('CustTable');
if (sug_ChD.prompt())
{
sug_ChD.run();
}
return sug_ChD.parmReturnValue();
3 замечания:
1. Как видим, определять тип вызова уже не нужно, потому что код вызывается из каждого метода разных таблиц по-своему.
2.Нужно в классе создать переменную, в которую в методе run будет записано значение возврата (то есть true или false для validateWrite())
3. Реализации методов setCustTable, setFormName Вы не приводили, поэтому написал в них то, что ближе всего подходило по смыслу.