День добрый.

Суть пользователь создаёт документ. Система перед записью проверяет его по некоему алгоритму и при необходимости разбивает документ на 2. Использую вот такую конструкцию.

```1c
    ФормаНового = ПолучитьФорму("Документ.ПеремещениеТоваров.ФормаОбъекта",,,Новый УникальныйИдентификатор());
    КопироватьДанныеФормы(Объект, ФормаНового.Объект);

    НовыйОбъект = ФормаНового.Объект;
    КопироватьДанныеФормы(НовыйОбъект, ФормаНового.Объект);

    ФормаНового.Открыть();
```

Работает. Вторая форма открывается.
Проблема в том у второй формы возникает сообщение:
"Не удалось начать редактирование. Вы уже редактируете эти данные в другом сеансе"

Подскажите, как это исправить.
---
тогда можно так:

```1c
    ФормаНовая = ПолучитьФорму("Документ.Документ9.ФормаОбъекта",,,Истина);
    НовыйОбъект = ФормаНовая.Объект;
    ЗаполнитьЗначенияСвойств(НовыйОбъект, Объект,,"Ссылка, Номер, Проведен, Дата, Товары");
    ФормаНовая.Открыть();
```

ps. 4 параметром передавать строку содержащую имена реквизитов, которые не нужно заполнять.
---
НовыйОбъект = ФормаНового.Объект;
КопироватьДанныеФормы(НовыйОбъект, ФормаНового.Объект);
Вот это зачем?

А по вопросу: данные копируются все, в том числе и Ссылка. Если первый документ уже сохранен и открыт, то новый ФормаНового открывается с уже имеющейся ссылкой. А так как уже открыта форма для редактирования с этой ссылкой, то и соответствующее предупреждение выскакивает.
---
вот, как вариант:
Модуль формы документа:

```1c
    &НаКлиенте
    Процедура СкопироватьДок(Команда)
    ДанныеЗаполнения = Новый Структура("Адрес", СохранитьВоВременномХранилище());
    ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", ДанныеЗаполнения);
    ОткрытьФорму("Документ.Документ9.ФормаОбъекта",ПараметрыФормы,ЭтаФорма,Истина);

    КонецПроцедуры

    &НаСервере
    Функция СохранитьВоВременномХранилище()
    ДанныеОбъекта = Новый Структура("Реквизит1, Товары", Объект.Реквизит1, Объект.Товары.Выгрузить());
    Возврат ПоместитьВоВременноеХранилище(ДанныеОбъекта, УникальныйИдентификатор);
    КонецФункции
```

Модуль объекта документа:

```1c
    Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
    Перем Адрес;

    Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") И ДанныеЗаполнения.Свойство("Адрес", Адрес) Тогда
    ДанныеОбъекта = ПолучитьИзВременногоХранилища(Адрес);
    Реквизит1 = ДанныеОбъекта.Реквизит1;
    Товары.Загрузить(ДанныеОбъекта.Товары);
    КонецЕсли;
    КонецПроцедуры
```

Свои данные подставить только.

PS. реквизиты объекта (кроме ТЧ) можно передавать и напрямую в структуре ДанныеЗаполнения и не помещать во временное хранилище. При условии у них свойства "Заполнять из данных заполнения" они автоматом заполнятся. Тут уж сами решите как удобно.
---
Была такая мысль, но документов к которым нужно приделать механизм около 10 и каждый типовой из УТ11. Повесится можно обработку заполнения для каждого ковырять.
---
или можно так:

```1c
    ФормаНовая = ПолучитьФорму("Документ.Документ9.ФормаОбъекта",,,Истина);
    НовыйОбъект = ФормаНовая.Объект;
    НовыйОбъект.Реквизит1 = Объект.Реквизит1;
    КопироватьДанныеФормы(Объект.Товары, НовыйОбъект.Товары);
    ФормаНовая.Открыть();
```
---
Мысль интересная, но мне как раз, наоборот, всё кроме товаров копировать надо.
---
тогда можно так:

```1c
    ФормаНовая = ПолучитьФорму("Документ.Документ9.ФормаОбъекта",,,Истина);
    НовыйОбъект = ФормаНовая.Объект;
    ЗаполнитьЗначенияСвойств(НовыйОбъект, Объект,,"Ссылка, Номер, Проведен, Дата, Товары");
    ФормаНовая.Открыть();
```

ps. 4 параметром передавать строку содержащую имена реквизитов, которые не нужно заполнять.
---
А вот это действительно решение, как сам не догадался. Спасибо.

Только это на сервере через ДанныеФормыВЗначение надо проворачивать.
---
Только это на сервере через ДанныеФормыВЗначение надо проворачивать.
Это зачем?
---
Одновременно создавать два новых документа система не даст
---
Даст. Нужно просто параметр уникальности формы указать.