Добрый день!

Стоит задача создать (создать на основании) из одного документа множество связанных (подчиненных) документов другого типа по числу строк в табличной части первого. Причем, сначала показать новые пользователю не записывая.

Прошу помощи!

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

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

    //+ Видана 01.01.20 из по 1 строке в продукции из ЗНП
    Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
    Попытка
    Если ТипЗнч(ДанныеЗаполнения.ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказНаПроизводство")
    И ЗначениеЗаполнено(ДанныеЗаполнения.НомерСтрокиЗНП) Тогда
    НомерСтрокиЗНП = ДанныеЗаполнения.НомерСтрокиЗНП;
    ДанныеЗаполнения = ДанныеЗаполнения.ДанныеЗаполнения;
    КонецЕсли;
    Исключение
    НомерСтрокиЗНП = 1;
    КонецПопытки;
    Иначе
    НомерСтрокиЗНП = 1;
    КонецЕсли;
    //=

    .....

    //+ Видана 01.01.20 из по 1 строке в продукции из ЗНП
    СтратегияЗаполнения["НомерСтрокиЗНП"] = НомерСтрокиЗНП;
    //=

    .....

    ЗаполнениеОбъектовУНФ.ЗаполнитьДокумент(ЭтотОбъект, ДанныеЗаполнения, СтратегияЗаполнения, ИсключаяСвойства);

    //+ Видана 01.01.20 из по 1 строке в продукции из ЗНП
    Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказНаПроизводство") Тогда
    Если ДанныеЗаполнения.КоличествоСтрок() > НомерСтрокиЗНП Тогда
    НомерСтрокиЗНП = НомерСтрокиЗНП + 1;
    ПараметрыФормы = Новый Структура("ДанныеЗаполнения, НомерСтрокиЗНП", ДанныеЗаполнения, НомерСтрокиЗНП);
    ОткрытьФорму("Документ.СборкаЗапасов.Форма.ФормаДокумента", ПараметрыФормы);
    КонецЕсли;
    КонецЕсли;
    //=

    КонецПроцедуры // ОбработкаЗаполнения()
```

+ поправила запрос по которому заполняю, добавила условие по параметру номеру строки

Но это только идея, она не работает тк ОткрытьФорму должно из клиента вызываться.

Подскажите как бы это нормально сделать?
---
Открыть форму можно только из клиента, я бы Вам рекомендовал сделать отдельную кнопку "Создать документы" и по ней с предупреждением сохранять основной документ если он изменен и в цикле для строк, где документы не были созданы ранее, открывать форму создаваемого документа с параметром ЗначенияЗаполнения куда вставите структуру или ссылку для заполнения. В новом документе нужно задать реквизиты со ссылкой на основной документ и номер строки. Так же повесить обработчик ОбработкаОповещения, которая будет ловить события записи новых документов и подставлять их в строки на форме чтобы было видно в табличной части где уже созданы документы. Так же надо отработать ситуацию когда порядок строк меняется, тогда нужно взять старые строки, связанные с ними документы и поменять номера строк там где нумерация поехала.
---
из модуля формы уже лучше. Так работают внешние обработки на БСП. Они заполняют форму, а далее пользователь решает проводить или нет.

Главное, чтобы логика при отмене части документов работала.
---
определитесь с предметной область.
Далее поймите логику ПО - клиент и сервер.
Далее уже определяйтесь как это будет выглядеть.

Если в лоб, то так задача не решается.
Если использовать костыли, то что-то подобное можно сделать, но я бы так не делал.

Правильное решение поменять логику.
---
Как вам кажется идея из (4) похожа на нормальную?
Или это та же ересь, вид сбоку?
---
из модуля формы уже лучше. Так работают внешние обработки на БСП. Они заполняют форму, а далее пользователь решает проводить или нет.

Главное, чтобы логика при отмене части документов работала.
---
Обычно такая задача бывает создать и записать, просмотреть созданные и в случае изменения 1) в связанных документах запрещены, изменения вносятся в основание, созданные обновляются автоматически или удаляются и создаются заново.
2) изменения в основании запрещены, связанные документы редактируются произвольно, для добавления создается новое основание.
---
у нас изменения разрешены везде. пока задачи на подобные запреты не было.
документы ЗаказНаПроизводство - > СборкаЗапасов
по умолчанию во втором создается столько же строк в продукции как и в первом (оператор правит как хочет, что и когда хочет)
---
вроде бы как создание множества новых без записи возможно? (или нет?)
получается вызывать ОткрытьФорму нужно не из модуля объекта а из модуля формы.
и этот параметр НомерСтрокиЗНП должен быть доступен в
ПриСозданииНаСервере и дальше в ПриОткрытии
и из последнего вызывать ОткрытьФорму для нового?

создать что ли новый реквизит в шапке? НомерСтрокиЗНП
---
гуид выдаден будет при записи объекта, а форму (любую), заполненную как угодно открываете откуда угодно. Если не проверять существует уже для этих параметров гуид то будет быстрее, но для этого делается соответствующая настройка в основании с записью ссылки связанного документа.
---
не поняла идею "открываете откуда угодно" вот из модуля объекта не могу же ее открыть? или есть способы?
---
я имела ввиду любую форму (общую, обработки, списка, документа, элемента справочника, записи или набора записей регистра)
---
для этого делается соответствующая настройка в основании с записью ссылки связанного документа.
Вы имеете ввиду
Общие - Критерии отбора - Связанные документы?

немного не поняла тк у меня эти документы стандартные, то в них все связи прописаны уже
---
Открыть форму можно только из клиента, я бы Вам рекомендовал сделать отдельную кнопку "Создать документы" и по ней с предупреждением сохранять основной документ если он изменен и в цикле для строк, где документы не были созданы ранее, открывать форму создаваемого документа с параметром ЗначенияЗаполнения куда вставите структуру или ссылку для заполнения. В новом документе нужно задать реквизиты со ссылкой на основной документ и номер строки. Так же повесить обработчик ОбработкаОповещения, которая будет ловить события записи новых документов и подставлять их в строки на форме чтобы было видно в табличной части где уже созданы документы. Так же надо отработать ситуацию когда порядок строк меняется, тогда нужно взять старые строки, связанные с ними документы и поменять номера строк там где нумерация поехала.
---
Забыл совсем, чтобы не мучиться со случаями когда нумерация строк поехала, можно в табличную часть добавить поле с уникальным идентификатором, и в новый документ записывать его вместо номера строки.
---
Как все запущено.. как постановка задачи/вопрос так и реализация. Переформулируйте, с таким описанием...