Задача:
При изменении заказа клиента и нажатии "Ввести на основании реализацию товаров и услуг" не создавать новую реализацию, а открывать старую и менять в ней список товаров.

Решение:

Алгоритм:
При нажатии в заказе покупателя создать на основании сработает событие "Обработка заполнения" док-та Реализация товаров и услуг.
В самом начале процедуры проверим существует ли реализация на основании этого заказа покупателя.
Если существует обновим в ней список товаров.

Дальше вопрос как нам закрыть форму нового документа реализации и открыть старую?
Проблема в том, что мы не можем в серверной процедуре работать с формами.
А мы запишем ссылку на существующую реализацию во временное хранилище и передадим ссылку на хранилище через текстовое поле нового док-та реализации.

Выглядит это вот так:
//+ 1с-бп проверим есть ли уже реализация для этого док-та основания
	если ТипЗнч(ДанныеЗаполнения.ДокументОснование) = Тип("ДокументСсылка.ЗаказКлиента") и ДанныеЗаполнения.свойство("найденаРеализация")=ложь
	тогда
	запрос=новый запрос;
	запрос.Текст= "ВЫБРАТЬ
	              |	РеализацияТоваровУслуг.Ссылка
	              |ИЗ
	              |	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
	              |ГДЕ
	              |	РеализацияТоваровУслуг.ЗаказКлиента = &заказПокупателя
	              |	И РеализацияТоваровУслуг.ПометкаУдаления = ЛОЖЬ";
	запрос.УстановитьПараметр("заказПокупателя",данныеЗаполнения.документОснование);
	рез=запрос.Выполнить();
	если Не рез.Пустой() тогда
	//берем только первый (если реализаций несколько)
	выборка=рез.Выбрать();
	выборка.Следующий();
	докРеализ=выборка.ссылка;
	док=докреализ.получитьОбъект();
	//док=документы.РеализацияТоваровУслуг.СоздатьДокумент();
	док.Товары.Очистить();
    ДанныеЗаполнения.вставить("найденаРеализация",истина);
	док.Заполнить(данныеЗаполнения);
	док.записать();
ЭтотОбъект.основание=ПоместитьВоВременноеХранилище(док.ссылка, новый УникальныйИдентификатор);;
Возврат;
		
		
		конецЕсли;
	конецЕсли;
	//- 1с-бп проверим есть ли уже реализация для этого док-та основания




Далее при открытии нового док-та реализация проверим есть ли в реквизите "Основание" ссылка на временное хранилище.
Если есть откроем документ и закроем эту форму:
//+1с-бп	
если СтрДлина(объект.Основание)>0 и СтрНайти(объект.Основание,"№")=0 тогда
док=ПолучитьИзВременногоХранилища(объект.Основание);
ОткрытьЗначение(док);
отказ=истина;
конецЕсли;
//-1с-бп