Для максимальной универсальности нужно создать пустую форму, разумнее всего общую. Назовем ее "Пустышка".
Вот 2 метода с поддержкой обычных и управляемых форм, решающие задачу.
// Интерактивно записывает значение в элемент управления. Интерактивность заключается в срабатывании
// события ПриИзменении у элемента управления.
// Для управляемой целевой формы требуется открытость (видимость), а для обычной не требуется.
// В управляемой форме не сработает внутри обработки события ПриИзменении поля формы. Иногда это допустимо обойти через обработчик ожидания.
//
// Параметры:
// ЭлементУправления – ЭлементУправления – которому присваиваем значение;
// Значение – Произвольный – присваиваемое значение;
// *ФормаИнициатор - Форма, УправляемаяФорма, *Неопределено - которая будет использована в качестве инициатора события;
// если не указана, то будет создана временная форма-пустышка.
//
Функция ИнтерактивноЗаписатьВЭлементУправленияЛкс(ЭлементУправления, Знач Значение, Знач ФормаИнициатор = Неопределено) Экспорт
Если ФормаИнициатор = Неопределено Тогда
ФормаИнициатор = ПолучитьОбщуюФорму("Пустышка", ЭлементУправления);
Иначе
СтарыйВладелец = ФормаИнициатор.ВладелецФормы;
СтарыйЗакрыватьПриВыборе = ФормаИнициатор.ЗакрыватьПриВыборе;
ФормаИнициатор.ВладелецФормы = ЭлементУправления;
ФормаИнициатор.ЗакрыватьПриВыборе = Ложь;
КонецЕсли;
НовоеЗначение = ЭлементУправления.ОграничениеТипа.ПривестиЗначение(Значение);
Если НовоеЗначение <> Значение Или ЭлементУправления.ТолькоПросмотр Тогда
Возврат Ложь;
КонецЕсли;
ФормаИнициатор.ОповеститьОВыборе(Значение);
Если СтарыйЗакрыватьПриВыборе <> Неопределено Тогда
ФормаИнициатор.ВладелецФормы = СтарыйВладелец;
ФормаИнициатор.ЗакрыватьПриВыборе = СтарыйЗакрыватьПриВыборе;
КонецЕсли;
КонецФункции // ИнтерактивноЗаписатьВЭлементУправленияЛкс()
// Интерактивно записывает значение в элемент управления (только поле ввода/формы) колонки табличного поля или таблицы формы.
// Интерактивность заключается в срабатывании события ПриИзменении у элемента управления.
// Строка табличного поля или таблицы формы должна находиться в режиме редактирования,
// иначе никаких изменений данных не произойдет.
//
// Параметры:
// ТабличноеПоле - ТабличноеПоле, ТаблицаФормы - внутри него строка редактируется;
// Колонка – КолонкаТабличногоПоля, ПолеФормы – в ее ячейку будем помещать значение;
// Значение – Произвольный – присваиваемое значение;
// *ФормаИнициатор - Форма, УправляемаяФормы, *Неопределено - которая будет использована в качестве инициатора события;
// если не указана, то будет создана временная форма-пустышка;
// *ВосстанавитьТекущуюКолонку – Булево, *Истина;
// *ВключитьРежимРедактирования – Булево, *Истина.
//
Процедура ИнтерактивноЗаписатьВКолонкуТабличногоПоляЛкс(ТабличноеПоле, Знач Колонка, Знач Значение, Знач ФормаИнициатор = Неопределено,
Знач ВосстанавитьТекущуюКолонку = Истина, Знач ВключитьРежимРедактирования = Истина) Экспорт
Если ТипЗнч(Колонка) = Тип("КолонкаТабличногоПоля") Тогда
ЭлементУправления = Колонка.ЭлементУправления;
Если ТипЗнч(ЭлементУправления) <> Тип("ПолеВвода") Тогда
ЭлементУправления = Неопределено;
КонецЕсли;
Иначе
ЭлементУправления = Колонка;
Если ТипЗнч(ЭлементУправления) <> Тип("ПолеФормы") Тогда
ЭлементУправления = Неопределено;
КонецЕсли;
КонецЕсли;
Если ЭлементУправления <> Неопределено Тогда
Если ВосстанавитьТекущуюКолонку Тогда
Если ТипЗнч(ТабличноеПоле) = Тип("ТабличноеПоле") Тогда
СтараяТекущаяКолонка = ТабличноеПоле.ТекущаяКолонка;
Иначе
СтараяТекущаяКолонка = ТабличноеПоле.ТекущийЭлемент;
КонецЕсли;
КонецЕсли;
Если ТипЗнч(ТабличноеПоле) = Тип("ТабличноеПоле") Тогда
ТабличноеПоле.ТекущаяКолонка = Колонка;
Иначе
ТабличноеПоле.ТекущийЭлемент = Колонка;
КонецЕсли;
Если ВключитьРежимРедактирования Тогда
ТабличноеПоле.ИзменитьСтроку();
КонецЕсли;
ИнтерактивноЗаписатьВЭлементУправленияЛкс(ЭлементУправления, Значение, ФормаИнициатор);
Если ВосстанавитьТекущуюКолонку Тогда
Если ТипЗнч(ТабличноеПоле) = Тип("ТабличноеПоле") Тогда
ТабличноеПоле.ТекущаяКолонка = СтараяТекущаяКолонка;
Иначе
ТабличноеПоле.ТекущийЭлемент = СтараяТекущаяКолонка;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры // ИнтерактивноЗаписатьВКолонкуТабличногоПоляЛкс()
Если в контексте доступна какая то форма, то лучше ее передать в качестве параметра ФормаИнициатор, т.к. это будет быстрее, чем создавать каждый раз форму-пустышку.
Скорость изменения данных таким путем естественно будет заметно ниже, чем при прямой записи в данные, с которыми связан элемент управления, с вызовом обработчика.
Хочу заметить, что подобная техника не зря большей частью "закрыта" от разработчика. Ведь программное оперирование с интерактивными событиями требует хорошей обработки всех возможных ситуаций внутри обработчиков. Например, вы можете вызвать рекурсивный цикл интерактивных событий или просто исключительную ситуацию уровня приложения. Поэтому как можно тщательнее имитируйте действия пользователя с проверкой всех возможных ситуаций. И не прибегайте к таким приемам без необходимости.