В общем вот так всё работает. Для справочника устанавливаем режим редактирования "Обоими способами". Изврат с внешним событием небходим для того, чтобы ESC отработал раньше чем будет открытие формы нового элемента группы. Таким образом новые элементы у нас вводятся в строке, а новые группы - в диалоге. Присутствует незначительное еле заметное мелькание при вводе группы.
Перем Сервис;
Перем WSH;
Процедура ПриОткрытии()
Сервис=СоздатьОбъект("Сервис");
WSH=СоздатьОбъект("WScript.Shell");
РедактироватьВДиалоге(0,0);
КонецПроцедуры
Процедура ПриРедактированииНовойСтроки()
Если ЭтоГруппа()=1 Тогда
WSH.SendKeys("{ESC}");
Сервис.ВнешнееСобытие(,"ОткрытьФормуНовойГруппы",);
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)
Если Событие="ОткрытьФормуНовойГруппы" Тогда
РедактироватьВДиалоге(1,0);
ОткрытьФорму("Элемент.ХХХХХХХХХ",,,1);
РедактироватьВДиалоге(0,0);
КонецЕсли;
КонецПроцедуры
Если вместо формы группы необходимо вызывать обработку, то можно упростить. В этом случае для справочника устанавливаем режим редактирования "В списке".
Перем Сервис;
Перем WSH;
Процедура ПриОткрытии()
Сервис=СоздатьОбъект("Сервис");
WSH=СоздатьОбъект("WScript.Shell");
КонецПроцедуры
Процедура ПриРедактированииНовойСтроки()
Если ЭтоГруппа()=1 Тогда
WSH.SendKeys("{ESC}");
Сервис.ВнешнееСобытие(,"ОткрытьФормуОбработки",);
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)
Если Событие="ОткрытьФормуОбработки" Тогда
ОткрытьФорму("Обработка.ХХХХХХХХХ");
КонецЕсли;
КонецПроцедуры
P.S. Надо пожалуй вынести это куда-нибудь в FAQ...