Всем доброго дня!
Конфигурация Управление торговлей 8.3.
Учусь программированию в 1с, помогите пожалуйста.
Имеется документ из которого, при нажатии на кнопку(не ввод на основании), создаётся другой документ, и в нём заполняются реквизиты и табличная часть.
Не могу написать код, что бы при создании документа, сразу же открывался этот созданный документ.
И ещё не понимаю как сделать так, что бы при автоматическом заполнении табличной части, оставалась только одна строчка. То есть в первом документе много строк в табличной части, и нужно что бы при создании нового документа, в табличной части оставалась только одна заполненная строчка, с определёнными данными
Помогите пожалуйста, это всё реализовать.
Прилагаю код документа.

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

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

    &НаКлиенте
    Процедура СоздатьЗаказКлиентаУслуги(Команда)
    СоздатьЗаказКлиентаУслугиНаСервере();
    КонецПроцедуры
```
---
```1c
    ///ПРИМЕР 1. Получить форму, заполнить и открыть (Без записи документа)
    &НаКлиенте
    Процедура СоздатьЗаказКлиентаУслуги(Команда)

    НоваяФорма = ПолучитьФорму("Документ.ЗаказКлиентаУслуги.ФормаОбъекта");
    НоваяФорма.Объект.Дата = ТекущаяДата();

    НоваяФорма.Объект.Дата = ТекущаяДата();
    НоваяФорма.Объект.Партнер = Объект.Партнер;
    НоваяФорма.Объект.Контрагент = Объект.Контрагент;
    НоваяФорма.Объект.Соглашение = Объект.Соглашение;
    НоваяФорма.Объект.ХозяйственнаяОперация = Объект.ХозяйственнаяОперация;
    НоваяФорма.Объект.Организация = Объект.Организация;
    НоваяФорма.Объект.Договор = Объект.Договор;
    НоваяФорма.Объект.Склад = Объект.Склад;

    НовСтрТЧДокумента = НоваяФорма.Объект.Товары.Добавить();
    НовСтрТЧДокумента.Номенклатура = "Услуга";
    НовСтрТЧДокумента.Количество = "1";
    НовСтрТЧДокумента.ЕдиницаИзмерения = "шт";
    НовСтрТЧДокумента.Сумма = СуммаЗаказаноСЗалоговойТарой - СуммаНДСЗаказано;
    НовСтрТЧДокумента.СуммаНДС = СуммаНДСЗаказано;
    НовСтрТЧДокумента.СуммаСНДС = СуммаЗаказаноСЗалоговойТарой;

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

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

    ///ПРИМЕР 2. открыть новый документ
    &НаКлиенте
    Процедура СоздатьЗаказКлиентаУслуги(Команда)
    СсылкаНовогоДокумента = СоздатьЗаказКлиентаУслугиНаСервере();
    ОткрытьФорму("Документ.ЗаказКлиентаУслуги.ФормаОбъекта",Новый Структура("Ключ",СсылкаНовогоДокумента));
    // Или так:
    //ПоказатьЗначение(,СсылкаНовогоДокумента);
    КонецПроцедуры

    &НаСервере
    Функция СоздатьЗаказКлиентаУслугиНаСервере()
    ДокЗаказ = Документы.ЗаказКлиентаУслуги.СоздатьДокумент();
    ДокЗаказ.Дата = ТекущаяДата();
    ДокЗаказ.Партнер = Объект.Партнер;
    ДокЗаказ.Контрагент = Объект.Контрагент;
    ДокЗаказ.Соглашение = Объект.Соглашение;
    ДокЗаказ.ХозяйственнаяОперация = Объект.ХозяйственнаяОперация;
    ДокЗаказ.Организация = Объект.Организация;
    ДокЗаказ.Договор = Объект.Договор;
    ДокЗаказ.Склад = Объект.Склад;

    НовСтрТЧДокумента = ДокЗаказ.Товары.Добавить();
    НовСтрТЧДокумента.Номенклатура = "Услуга";
    НовСтрТЧДокумента.Количество = "1";
    НовСтрТЧДокумента.ЕдиницаИзмерения = "шт";
    НовСтрТЧДокумента.Сумма = СуммаЗаказаноСЗалоговойТарой - СуммаНДСЗаказано;
    НовСтрТЧДокумента.СуммаНДС = СуммаНДСЗаказано;
    НовСтрТЧДокумента.СуммаСНДС = СуммаЗаказаноСЗалоговойТарой;

    ДокЗаказ.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);

    Возврат ДокЗаказ.Ссылка;

    КонецФункции
```
---
Убрать цикл в процедуре, вернуть на клиент ссылку на созданный документ, открыть ее методом ПоказатьЗначение(,СсылкаНаДокумент).
---
```1c
    ///ПРИМЕР 1. Получить форму, заполнить и открыть (Без записи документа)
    &НаКлиенте
    Процедура СоздатьЗаказКлиентаУслуги(Команда)

    НоваяФорма = ПолучитьФорму("Документ.ЗаказКлиентаУслуги.ФормаОбъекта");
    НоваяФорма.Объект.Дата = ТекущаяДата();

    НоваяФорма.Объект.Дата = ТекущаяДата();
    НоваяФорма.Объект.Партнер = Объект.Партнер;
    НоваяФорма.Объект.Контрагент = Объект.Контрагент;
    НоваяФорма.Объект.Соглашение = Объект.Соглашение;
    НоваяФорма.Объект.ХозяйственнаяОперация = Объект.ХозяйственнаяОперация;
    НоваяФорма.Объект.Организация = Объект.Организация;
    НоваяФорма.Объект.Договор = Объект.Договор;
    НоваяФорма.Объект.Склад = Объект.Склад;

    НовСтрТЧДокумента = НоваяФорма.Объект.Товары.Добавить();
    НовСтрТЧДокумента.Номенклатура = "Услуга";
    НовСтрТЧДокумента.Количество = "1";
    НовСтрТЧДокумента.ЕдиницаИзмерения = "шт";
    НовСтрТЧДокумента.Сумма = СуммаЗаказаноСЗалоговойТарой - СуммаНДСЗаказано;
    НовСтрТЧДокумента.СуммаНДС = СуммаНДСЗаказано;
    НовСтрТЧДокумента.СуммаСНДС = СуммаЗаказаноСЗалоговойТарой;

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

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

    ///ПРИМЕР 2. открыть новый документ
    &НаКлиенте
    Процедура СоздатьЗаказКлиентаУслуги(Команда)
    СсылкаНовогоДокумента = СоздатьЗаказКлиентаУслугиНаСервере();
    ОткрытьФорму("Документ.ЗаказКлиентаУслуги.ФормаОбъекта",Новый Структура("Ключ",СсылкаНовогоДокумента));
    // Или так:
    //ПоказатьЗначение(,СсылкаНовогоДокумента);
    КонецПроцедуры

    &НаСервере
    Функция СоздатьЗаказКлиентаУслугиНаСервере()
    ДокЗаказ = Документы.ЗаказКлиентаУслуги.СоздатьДокумент();
    ДокЗаказ.Дата = ТекущаяДата();
    ДокЗаказ.Партнер = Объект.Партнер;
    ДокЗаказ.Контрагент = Объект.Контрагент;
    ДокЗаказ.Соглашение = Объект.Соглашение;
    ДокЗаказ.ХозяйственнаяОперация = Объект.ХозяйственнаяОперация;
    ДокЗаказ.Организация = Объект.Организация;
    ДокЗаказ.Договор = Объект.Договор;
    ДокЗаказ.Склад = Объект.Склад;

    НовСтрТЧДокумента = ДокЗаказ.Товары.Добавить();
    НовСтрТЧДокумента.Номенклатура = "Услуга";
    НовСтрТЧДокумента.Количество = "1";
    НовСтрТЧДокумента.ЕдиницаИзмерения = "шт";
    НовСтрТЧДокумента.Сумма = СуммаЗаказаноСЗалоговойТарой - СуммаНДСЗаказано;
    НовСтрТЧДокумента.СуммаНДС = СуммаНДСЗаказано;
    НовСтрТЧДокумента.СуммаСНДС = СуммаЗаказаноСЗалоговойТарой;

    ДокЗаказ.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);

    Возврат ДокЗаказ.Ссылка;

    КонецФункции
```
---
Номенклатура и единица измерения будут пустые, так как в ТЧ там наверняка ссылки на объекты соответствующие. На суммы тоже будет ругаться, так как нигде не определены переменные и их значения.
---
О сорри - все невозможное бывает...
---
Огромное спасибо, всё отлично работает!
Мне пригодятся эти два варианта, ещё раз спасибо.
---
```1c
    &НаКлиенте
    Процедура СоздатьЗаказКлиентаУслуги(Команда)

    ДокЗаказ = Документы.ЗаказКлиентаУслуги.СоздатьДокумент();
    ДокЗаказ.Дата = ТекущаяДата();
    ДокЗаказ.Партнер = Объект.Партнер;
    ДокЗаказ.Контрагент = Объект.Контрагент;
    ДокЗаказ.Соглашение = Объект.Соглашение;
    ДокЗаказ.ХозяйственнаяОперация = Объект.ХозяйственнаяОперация;
    ДокЗаказ.Организация = Объект.Организация;
    ДокЗаказ.Договор = Объект.Договор;
    ДокЗаказ.Склад = Объект.Склад;

    Для Каждого стрТовары Из Объект.Товары Цикл

    НовСтрТЧДокумента = ДокЗаказ.Товары.Добавить();
    НовСтрТЧДокумента.Номенклатура = "Услуга";
    НовСтрТЧДокумента.Количество = "1";
    НовСтрТЧДокумента.ЕдиницаИзмерения = "шт";
    НовСтрТЧДокумента.Сумма = СуммаЗаказаноСЗалоговойТарой - СуммаНДСЗаказано;
    НовСтрТЧДокумента.СуммаНДС = СуммаНДСЗаказано;
    НовСтрТЧДокумента.СуммаСНДС = СуммаЗаказаноСЗалоговойТарой;

    КонецЦикла;

    ОткрытьЗначение(ДокЗаказ);

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