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

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ ПЕРВЫЕ 1
    | АктСписанияМЗ.Руководитель КАК Руководитель
    |ИЗ
    | Документ.АктСписанияМЗ КАК АктСписанияМЗ
    |ГДЕ
    | АктСписанияМЗ.Дата МЕЖДУ &ДатаНач И &ДатаКон
    |
    |УПОРЯДОЧИТЬ ПО
    | АктСписанияМЗ.Дата УБЫВ";

    Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
    Запрос.УстановитьПараметр("ДатаКон", ДатаКон);

    РезультатЗапроса = Запрос.Выполнить();

    ===================
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Руководитель = ВыборкаДетальныеЗаписи.Руководитель;
    КонецЦикла;
    ====================
    // вместо цикла можно сразу потянуть единственную запись, только проверку сделать, что результат есть.
```

Только с моментом времени нужно решить. Для этого создаваемый документ нужно записать.
---
```1c
    Если Параметры.Ключ.Пустая() Тогда

    ПодготовитьФормуНаСервере();
    // УстановитьРуководителя(Объект.Организация, Объект.ПодразделениеОтправитель, Объект.Дата, Объект.Руководитель);
    Объект.Руководитель = Нужный сотрудник;

    КонецЕсли;
```
---
Добавить в расширение и переопределить с директивой &Вместо
И в тексте процедуры заменить // Вставить содержимое обработчика. на код:

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ ПЕРВЫЕ 1
    | АктСписанияМЗ.Руководитель КАК Руководитель
    |ИЗ
    | Документ.АктСписанияМЗ КАК АктСписанияМЗ
    |ГДЕ
    | АктСписанияМЗ.ПометкаУдаления = ЛОЖЬ
    |
    |УПОРЯДОЧИТЬ ПО
    | АктСписанияМЗ.Дата УБЫВ";

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ЭтотРуководитель = ВыборкаДетальныеЗаписи.Руководитель;
    КонецЦикла;

    Сообщить(" + ЭтотРуководитель + " (тип" + ТипЗнч(ЭтотРуководитель) + ")");
    //Сообщить(ТипЗнч(Руководитель) = ТипЗнч(ЭтотРуководитель));
    Руководитель = ЭтотРуководитель;
```
---
Значит в расширении нужно создать функцию

```1c
    &НаСервере
    Функция ПолучитьРуководителя()
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ ПЕРВЫЕ 1
    | АктСписанияМЗ.Руководитель КАК Руководитель
    |ИЗ
    | Документ.АктСписанияМЗ КАК АктСписанияМЗ
    |ГДЕ
    | АктСписанияМЗ.ПометкаУдаления = ЛОЖЬ
    |
    |УПОРЯДОЧИТЬ ПО
    | АктСписанияМЗ.Дата УБЫВ";

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ЭтотРуководитель = ВыборкаДетальныеЗаписи.Руководитель;
    КонецЦикла;
    Возврат ЭтотРуководитель;
    КонецФункции
```

А в процедуре УстановитьРуководителя заменить // Вставить содержимое обработчика на:

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

```1c
    УстановитьРуководителя(Объект.Организация, Объект.ПодразделениеОтправитель, Объект.Дата, Объект.Руководитель);
```

Но мне нужен не этот код, а другой, который позволил бы мне копировать данные в новый документ из прошлого документа.
---
может я чего-то недопонимаю...
Берем момент времени, на который создается документ (конец диапазона), отнимаете несколько дней, к примеру 30 (начало диапазона). Чтобы гарантировано были какие-нибудь документы,но не перегружать ресурс. Запросом тянете нужные документы за выбранный период, сортируете дата по убыванию, первая запись. Читаете нужный реквизит.
Объект.Руководитель = РезультатЗапроса.Руководитель.
Или какие-то подводные камни?
---
Нет, просто я не силен в коде. Для вас это легко, для меня это сложно. Мне бы прям накидать код полностью, а с подгонкой я уже разберусь.
---
как вам дать конкретный код, если вы даже документ не назвали?
Ну примерно будет так

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ ПЕРВЫЕ 1
    | РеализацияТоваровУслуг.Руководитель КАК Руководитель
    |ИЗ
    | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |ГДЕ
    | РеализацияТоваровУслуг.ПометкаУдаления = ЛОЖЬ
    |
    |УПОРЯДОЧИТЬ ПО
    | РеализацияТоваровУслуг.Дата УБЫВ";

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ЭтотРуководитель = ВыборкаДетальныеЗаписи.Руководитель;
    КонецЦикла;

    // Засунуть ЭтотРуководитель куда нужно
```
---
Здравствуйте. Документ акт списания МЗ
---
я использовал РеализацияТоваровУслуг, в принципе, через конструктор запроса можно любой документ вставить, должно работать
---
А этот код сувать в модуль формы или документа?
---
да это можно куда угодно засунуть, главное чтобы ваши потребности закрывало. хоть кнопку на форму вывести и по нажатию кнопки заполняло реквизит.

но думаю, что в модуль объекта, в ОбработкаЗаполнения либо в ПередЗаписью
---
Ок. Спасибо, сейчас попробую, знать бы еще как вставить эти данные в поле Руководитель!
Объект.Руководитель = ЭтотРуководитель;
Так?
---
Объект.Руководитель = ЭтотРуководитель;скорее всего да.
если непонятно что куда засовывать - заходите в отладку и через "Вычислить выражение" проще найти нужную сущность
---
Спасибо!
---
самый простой (прямой как шпала) способ.
В модуле формы. Если модуль документа, нужно предварительно реквизиты сбросить в значение.
---
А как? А то я хотел сделать в модуле документа, а у меня пишет Переменная не определена (Объект)
---
РеквизитФормыВЗначение("Объект")
как-то так
---
Это мне где нужно прописать? Или указать? у меня не активна палитра свойств при попытке открыть реквизит формы (просто пусто)
---
ДокОбъект = РеквизитФормыВЗначение("Объект");
Потом работа идет с ДокОбъект, как с объектом.

Здесь было на эту тему
https://infostart.ru/1c/articles/153602/
---
ДокОбъект = РеквизитФормыВЗначение("Объект"); А это где прописывать в модуле формы или документа
---
пардон, перепутал. ввел в заблуждение. это в модуле формы при работе на сервере.
---
в модуле объекта просто название реквизита - Руководитель = НужноеЗначение
---
не вставляется, хотя я добавил оператор Сообщить, он сообщает нужное значение, но записывать его не записывает
---
как-то объясняет?
попробуйте еще и организацию перезаписывать.
---
нет не объясняет
---
с организацией пробовали? бывает такое, нужно и владельца указывать.
---
нет, а как? запрос новый? с организацией
---
а зачем, у вас же есть значение организации?
Орг= Организация;
Запрос...
Организация = Орг;
Руководитель = Запрос.Руководитель.
Или попробуйте в приведенную выше функцию засунуть свои значения
УстановитьРуководителя(Объект.Организация, Объект.ПодразделениеОтправитель, Объект.Дата, Запрос.Руководитель);
---
конструктором

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ ПЕРВЫЕ 1
    | АктСписанияМЗ.Руководитель КАК Руководитель
    |ИЗ
    | Документ.АктСписанияМЗ КАК АктСписанияМЗ
    |ГДЕ
    | АктСписанияМЗ.Дата МЕЖДУ &ДатаНач И &ДатаКон
    |
    |УПОРЯДОЧИТЬ ПО
    | АктСписанияМЗ.Дата УБЫВ";

    Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
    Запрос.УстановитьПараметр("ДатаКон", ДатаКон);

    РезультатЗапроса = Запрос.Выполнить();

    ===================
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Руководитель = ВыборкаДетальныеЗаписи.Руководитель;
    КонецЦикла;
    ====================
    // вместо цикла можно сразу потянуть единственную запись, только проверку сделать, что результат есть.
```

Только с моментом времени нужно решить. Для этого создаваемый документ нужно записать.
---
момент времени зачем нужен, немного непонятно. Написано же, что неважно когда, но берём последний документ => этот последний документ обязан быть записан
---
Как определить какой документ последний?
Делаем сегодня, сейчас. по Москве 15:42. За день создано 100 документов, в последнюю минуту еще 10.
Как определить последний, на момент создания текущего?
---
Вы предлагаете взять момент времени отличный от ТекущаяДата(), по типу ТекущаяДата()-3600 ? но зачем и как это поможет определить последний на момент создания текущего?
---
нет. я предлагаю использовать именно метод Док.МоментВремени().
Так как это более корректно.
---
Думаю можно взять предыдущий документ.
---
как узнать какой предыдущий?
---
Выбрать документ с максимально близкой но меньшей датой.
---
как нас уверяют разработчики, даже на 1 секунду можно провести не один десяток документов. не говоря о том, что в течении дня вполне могли вводится документы. и необязательно время/номер последовательны. можно в течении дня ввести документ с более ранним временем, чем последний.
---
Если документ будет введен задним числом, то вполне справедливо взять для него данные из предыдущего по времени документа.
А что касается использования позиции документа, то что-то мне подсказывает, что слишком сложная схема. Нет в ней необходимости в данном случае.
Но это все можно у ТС уточнить.
---
Есть ли необходимость в данном случае я и сам не знаю. Но даже если нет сейчас то неизвестно не появится ли она через период? Я к тому, что это более корректный подход.
А если "задним числом" ввести десяток документов на ту же дату и то же время (а такое часто встречалось, когда списывают в конце месяца просто автоматом бьют дату и время с точностью до секунды).
Дата сходится, время, с точностью до секунды. Руководитель разный. Какой выбрать документ последним? Для следующего?
---
Тогда нужно заводить периодический РС подчиненный регистратору и писать в него. Единственным ресурсом будет Сотрудник. СрезПоследних на момент времени будет возвращать нужное значение.
Но ведь момент времени есть только у записанного документа...
---
Руководитель. Не Сотрудник. Да, про это я и написал, нужно сначала записать.
А как по-другому? Даже для регистра как определить дату, на которую получать срез последних?
---
Тип (сотрудник)
---
тип какой угодно, измерение лучше называть так, как нужно получать данные.
---
```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "|ВЫБРАТЬ ПЕРВЫЕ 1
    | Документ.Дата КАК Дата
    |ПОМЕСТИТЬ ВТ_ПоследняяДата
    |ИЗ
    | Документ.АктСписанияМЗ КАК Документ
    |ГДЕ
    | Документ.Ссылка <> &Ссылка
    | И Документ.Дата < &Дата
    |
    |УПОРЯДОЧИТЬ ПО
    | Дата УБЫВ
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ ПЕРВЫЕ 1
    | Документ.Руководитель КАК Руководитель
    |ИЗ
    | ВТ_ПоследняяДата КАК ВТ_ПоследняяДата
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АктСписанияМЗ КАК Документ
    | ПО (ВТ_ПоследняяДата.Дата = Документ.Дата)
    |
    |УПОРЯДОЧИТЬ ПО
    | Документ.Дата УБЫВ";
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.УстановитьПараметр("Дата", Дата);

    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
    Возврат;
    КонецЕсли;

    Выборка = Результат.Выбрать();

    Выборка.Следующий();
    Руководитель = Выборка.Руководитель;
```

У меня вот такой запрос получился.
---
а как получить и вставить руководитель
---
Здравствуйте. А куда вставить этот код и как его дописать, чтобы вставить этот результат в поле формы документа при создании
---
Думаю в процедуру ОбработкаЗаполнения модуля документа.
---
да но я теперь вставить не могу: если так Объект.Руководитель = ЭтотРуководитель, Переменная не определена (Объект), а если просто Руководитель = ЭтотРуководитель; то ничего не подставляет
---
ЭтотОбъект.Руководитель = ЭтотРуководитель;
---
не получается, сообщение выходит как нужно, а значение не меняет. ПриСозданииНаСервере - меняет, но меняет и те которые уже созданы давно, их открываешь просто он в них меняет руководителя

```1c
    ЭтотОбъект.Руководитель = ЭтотРуководитель;
    Сообщить(ЭтотРуководитель);
```
---
Отладчиком умеете пользоваться? Похоже ЭтотРуководитель имеет не тот тип.
Что возвращает?
Сообщить(ЭтотРуководитель + " (тип" + ТипЗнч(ЭтотРуководитель) + ")");
---
ФИО (типСотрудник)
---
ПриСозданииНаСервере выполняется при открытии любого дока. Обработка заполнения вызывается при создании нового объекта.
В запросе из (12) нужно убрать условие
```1c
    Документ.Ссылка <> &Ссылка
```
, т.к. у нового объекта ссылки нет.
---
не работает запрос ошибки синтаксические
---
Когда конструктором открываешь? Пиши сюда ошибки. Если ошибки появились после удаления условия, то нужно еще и " И" удалить, которое за указанным условием едет.
---
Ошибка при выполнении обработчика - 'ОбработкаЗаполнения'
по причине:
{(1, 1)}: Синтаксическая ошибка "|ВЫБРАТЬ"
<<?>>|ВЫБРАТЬ ПЕРВЫЕ 1
{Расширение_Основное Документ.АктСписанияМЗ.МодульОбъекта(31)}:Результат = Запрос.Выполнить();

по причине:
{(1, 1)}: Синтаксическая ошибка "|ВЫБРАТЬ"
<<?>>|ВЫБРАТЬ ПЕРВЫЕ 1
---
Ошибка при выполнении обработчика - 'ОбработкаЗаполнения'
по причине:
{(1, 1)}: Синтаксическая ошибка "|ВЫБРАТЬ"
<<?>>|ВЫБРАТЬ ПЕРВЫЕ 1
{Расширение_Основное Документ.АктСписанияМЗ.МодульОбъекта(31)}:Результат = Запрос.Выполнить();

по причине:
{(1, 1)}: Синтаксическая ошибка "|ВЫБРАТЬ"
<<?>>|ВЫБРАТЬ ПЕРВЫЕ 1
---
ВЫБРАТЬ одно должно быть
---
Ошибка при выполнении обработчика - 'ОбработкаЗаполнения'
по причине:
{(8, 5)}: Синтаксическая ошибка "Документ.Дата"
<<?>>Документ.Дата < &Дата
{Расширение_Основное Документ.АктСписанияМЗ.МодульОбъекта(31)}:Результат = Запрос.Выполнить();

по причине:
{(8, 5)}: Синтаксическая ошибка "Документ.Дата"
<<?>>Документ.Дата < &Дата
---
А текст запроса покажи? Конструктором открывается?
---
Вроде как поправил ,ошибок нет, но все равно не работает

```1c
    &После ("ОбработкаЗаполнения")
    Процедура VID_ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ ПЕРВЫЕ 1
    | Документ.Дата КАК Дата
    |ПОМЕСТИТЬ ВТ_ПоследняяДата
    |ИЗ
    | Документ.АктСписанияМЗ КАК Документ
    |ГДЕ
    | Документ.Дата < &Дата
    |
    |УПОРЯДОЧИТЬ ПО
    | Дата УБЫВ
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ ПЕРВЫЕ 1
    | Документ.Руководитель КАК Руководитель
    |ИЗ
    | ВТ_ПоследняяДата КАК ВТ_ПоследняяДата
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АктСписанияМЗ КАК Документ
    | ПО (ВТ_ПоследняяДата.Дата = Документ.Дата)
    |
    |УПОРЯДОЧИТЬ ПО
    | Документ.Дата УБЫВ";
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.УстановитьПараметр("Дата", Дата);

    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
    Возврат;
    КонецЕсли;

    Выборка = Результат.Выбрать();

    Выборка.Следующий();
    Руководитель = Выборка.Руководитель;
    Сообщить(" + Руководитель + " (тип" + ТипЗнч(Руководитель) + ")");
    ЭтотОбъект.Руководитель = Руководитель;

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

```1c
    Руководитель = Выборка.Руководитель;
    Сообщить(" + Руководитель + " (тип" + ТипЗнч(Руководитель) + ")");
    ЭтотОбъект.Руководитель = Руководитель;
```

В коде используется переменная Руководитель, а в табло ЭтотРуководитель. Может не ту переменную смотрим?

```1c
    ЭтотОбъект.Руководитель = Руководитель;
```
 эту строку нужно убрать.
---
```1c
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ЭтотРуководитель = ВыборкаДетальныеЗаписи.Руководитель;
    КонецЦикла;

    Сообщить(" + ЭтотРуководитель + " (тип" + ТипЗнч(ЭтотРуководитель) + ")");
    ЭтотОбъект.Руководитель = ЭтотРуководитель;
```
---
Ничего не понимаю.
Что выдает?

```1c
    Сообщить(ТипЗнч(Руководитель) = ТипЗнч(ЭтотРуководитель));
```
---
Должно Да или Нет выдавать.Что-то не то в модуле. И не там.
---
Вот если я вставляю в процедуру модуля формы документа ПриСозданииНаСервере это:

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ ПЕРВЫЕ 1
    | АктСписанияМЗ.Руководитель КАК Руководитель
    |ИЗ
    | Документ.АктСписанияМЗ КАК АктСписанияМЗ
    |ГДЕ
    | АктСписанияМЗ.ПометкаУдаления = ЛОЖЬ
    |
    |УПОРЯДОЧИТЬ ПО
    | АктСписанияМЗ.Дата УБЫВ";

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ЭтотРуководитель = ВыборкаДетальныеЗаписи.Руководитель;
    КонецЦикла;

    Если Параметры.Ключ.Пустая() Тогда

    //Форма = Ссылка.ПолучитьФорму("ФормаДокумента");
    // Если Форма.Открыта()Тогда
    // Руководитель = ЭтотРуководитель;
    // КонецЕсли;
    Объект.Руководитель = ЭтотРуководитель;
    Сообщить(ЭтотРуководитель);
    Иначе
    УстановитьРуководителя(Объект.Организация, Объект.ПодразделениеОтправитель, Объект.Дата, Объект.Руководитель);

    КонецЕсли;
```

То все хорошо работает, но нормально ли это?
---
Все что выше строки

```1c
    Если Параметры.Ключ.Пустая() Тогда
```

перенеси сразу после этой строки. Тогда код будет работать только для новых доков.
---
(95) нужно вставить после Сообщить из (94)

```1c
    //Сообщить(" + ЭтотРуководитель + " (тип" + ТипЗнч(ЭтотРуководитель) + ")");
    Сообщить(ТипЗнч(Руководитель) = ТипЗнч(ЭтотРуководитель));
```
---
Сообщение вышло Да
---
В (56) другой текст в процедуре.
---
Да, но он вообще не работает, он просто создает документ, не выводит сообщение, отладчик тоже не работает. Я поменял запрос на тот который работает, но не могу вставить значение ФИО(Тип (Сотрудник) в форму документа.
---
Текст процедуры нужен.
---
```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    УправлениеМатериальнымиЗапасами.УстановитьУсловноеОформлениеСпискаМатериалов(ЭтотОбъект, , Истина);
    УправлениеМатериальнымиЗапасами.УстановитьУсловноеОформлениеКолонкиСуммаСписанияНУ(ЭтотОбъект);

    // Проверить выполнение отложенных обработчиков
    ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);

    ОбщегоНазначенияБГУ.УстановитьНедоступныеЭлементыФормы(Элементы, Объект,
    "МатериалыПодборНоменклатуры,ДекорацияВыбратьКомиссию");

    // Типовые операции и дополнительные табличные части
    БухгалтерскиеОперацииСервер.ПриСозданииНаСервере(Отказ, СтандартнаяОбработка,
    Элементы.БухгалтерскаяОперация, Элементы.ДополнительныеТабличныеЧасти);
    // Конец Типовые операции и дополнительные табличные части

    Если Параметры.Ключ.Пустая() Тогда

    ПодготовитьФормуНаСервере();
    УстановитьРуководителя(Объект.Организация, Объект.ПодразделениеОтправитель, Объект.Дата, Объект.Руководитель);

    КонецЕсли;

    // Централизованная бухгалтерия
    ЗаполнениеРеквизитовОбъектов.ОпределитьПараметрыВыбораСотрудников(ЭтотОбъект, Объект.Организация);
    // Конец Централизованная бухгалтерия

    // ВерсионированиеОбъектов
    ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
    // Конец ВерсионированиеОбъектов

    // СтандартныеПодсистемы.ПодключаемыеКоманды
    ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
    // Конец СтандартныеПодсистемы.ПодключаемыеКоманды

    // СтандартныеПодсистемы.Свойства
    ДополнительныеПараметры = Новый Структура;
    ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
    УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
    // Конец СтандартныеПодсистемы.Свойства

    // ИнтеграцияИС
    ИнтеграцияИС.ПриСозданииНаСервереВФормеДокументаОснования(ЭтотОбъект, Объект, ИнтеграцияИС.ПараметрыИнтеграцииВФорме("ВетИС",ИнтеграцияИС.ИмяЭлементаДляРазмещения()));
    // Конец ИнтеграцияИС

    // Заполнение группы информационных ссылок
    ИнформационныйЦентрСервер.ВывестиКонтекстныеСсылки(ЭтотОбъект, Элементы.ИнформационныеСсылки);

    ОбщегоНазначенияБГУ.ПриСозданииНаСервере(ЭтотОбъект, Объект);

    // Подсистема "ОбменСКонтрагентами".
    ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриСозданииНаСервере_ФормаДокумента();
    ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
    ПараметрыЭДОПриСоздании.ДокументСсылка = Объект.Ссылка;
    ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.КомандыЭДО;
    ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
    ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;

    ОбменСКонтрагентами.ПриСозданииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
    // Конец подсистема "ОбменСКонтрагентами".

    // СтандартныеПодсистемы.УчетОригиналовПервчиныхДокументов
    УчетОригиналовПервичныхДокументов.ПриСозданииНаСервере_ФормаДокумента(ЭтотОбъект, Элементы.ГруппаОтветственныйКомментарий);
    // Конец СтандартныеПодсистемы.УчетОригиналовПервчиныхДокументов

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