Как при создании документа вставить значения реквизита формы как в прошлом документе или определенного сотрудника.

1. VID1234 109 16.06.21 15:04 Сейчас в теме
Здравствуйте. Подскажите пожалуйста, как сделать, чтобы при создании нового документа, у нас по умолчанию выводился в поле формы Руководитель, тот кого мы укажем программно или как в последнем документе, допустим вчера был документ и он последний в нем поле Руководитель заполнено Сидоровым, разумеется при создании в документ подставляется значение Сидоров.
По теме из базы знаний
Найденные решения
10. alivan 16.06.21 15:36 Сейчас в теме
(5) конструктором
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ ПЕРВЫЕ 1
		|	АктСписанияМЗ.Руководитель КАК Руководитель
		|ИЗ
		|	Документ.АктСписанияМЗ КАК АктСписанияМЗ
		|ГДЕ
		|	АктСписанияМЗ.Дата МЕЖДУ &ДатаНач И &ДатаКон
		|
		|УПОРЯДОЧИТЬ ПО
		|	АктСписанияМЗ.Дата УБЫВ";
	
	Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
	Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
	
	РезультатЗапроса = Запрос.Выполнить();
	

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


Только с моментом времени нужно решить. Для этого создаваемый документ нужно записать.
112. alivan 16.06.21 21:51 Сейчас в теме
(106)
  Если Параметры.Ключ.Пустая() Тогда
        
        ПодготовитьФормуНаСервере();
        // УстановитьРуководителя(Объект.Организация, Объект.ПодразделениеОтправитель, Объект.Дата, Объект.Руководитель);
Объект.Руководитель = Нужный сотрудник;
        
    КонецЕсли;
120. kasper076 103 17.06.21 11:38 Сейчас в теме
(116) Добавить в расширение и переопределить с директивой &Вместо
И в тексте процедуры заменить // Вставить содержимое обработчика. на код:
Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |    АктСписанияМЗ.Руководитель КАК Руководитель
        |ИЗ
        |    Документ.АктСписанияМЗ КАК АктСписанияМЗ
        |ГДЕ
        |    АктСписанияМЗ.ПометкаУдаления = ЛОЖЬ
        |
        |УПОРЯДОЧИТЬ ПО
        |    АктСписанияМЗ.Дата УБЫВ";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ЭтотРуководитель = ВыборкаДетальныеЗаписи.Руководитель; 
        КонецЦикла;

Сообщить("" + ЭтотРуководитель + " (тип" + ТипЗнч(ЭтотРуководитель) + ")");
//Сообщить(ТипЗнч(Руководитель) = ТипЗнч(ЭтотРуководитель));
Руководитель = ЭтотРуководитель;
Показать
124. kasper076 103 17.06.21 11:53 Сейчас в теме
(123) Значит в расширении нужно создать функцию
&НаСервере
Функция ПолучитьРуководителя()
Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |    АктСписанияМЗ.Руководитель КАК Руководитель
        |ИЗ
        |    Документ.АктСписанияМЗ КАК АктСписанияМЗ
        |ГДЕ
        |    АктСписанияМЗ.ПометкаУдаления = ЛОЖЬ
        |
        |УПОРЯДОЧИТЬ ПО
        |    АктСписанияМЗ.Дата УБЫВ";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ЭтотРуководитель = ВыборкаДетальныеЗаписи.Руководитель; 
        КонецЦикла;
Возврат ЭтотРуководитель;
КонецФункции
Показать

А в процедуре УстановитьРуководителя заменить // Вставить содержимое обработчика на:
Руководитель = ПолучитьРуководителя();
127. kasper076 103 17.06.21 12:22 Сейчас в теме
(125) Для функции ПолучитьРуководителя() нужно исправить &НаСервере на &НаСервереБезКонтекста
Остальные ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
108. kasper076 103 16.06.21 18:56 Сейчас в теме
(106) Я имел ввиду процедуру ОбработкаЗаполнения.
109. VID1234 109 16.06.21 18:57 Сейчас в теме
(108)
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
	
	ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);
	
	Если ТипДанныхЗаполнения = Тип("Структура") Тогда
		
		Основание = Неопределено;
		ДанныеЗаполнения.Свойство("Основание", Основание);
		
		Если ТипЗнч(Основание) = Тип("ДокументСсылка.ИнвентаризацияМЗ") Тогда
			СтандартнаяОбработка = Ложь;
			Документы.ИнвентаризацияМЗ.ВводНаОсновании_ЗаполнитьДокумент(ЭтотОбъект, ДанныеЗаполнения);
		КонецЕсли;
		
	ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ПоступлениеМЗ") Тогда
		
		ЗаполнитьПоПоступлениюМЗ(ДанныеЗаполнения);
		
	ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.СписаниеТранспорта")
		Или ТипДанныхЗаполнения = Тип("ДокументСсылка.СписаниеТранспортаИК")
		Или ТипДанныхЗаполнения = Тип("ДокументСсылка.ПередачаОбъектовОС")
		Или ТипДанныхЗаполнения = Тип("ДокументСсылка.ПередачаОбъектовИК") Тогда
		
		ЗаполнитьПоСписаниюОС(ДанныеЗаполнения);
	
	ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ТребованиеНакладная0315006") Тогда
		
		ЗаполнитьПоТребованиюНакладной(ДанныеЗаполнения);
		
	КонецЕсли;
	
КонецПроцедуры
Показать
110. kasper076 103 16.06.21 18:59 Сейчас в теме
(106) Блин. Ну ОбработкаЗаполнения из расширения. Тут приведен один текст процедуры, а используется другой. Хочется увидеть то что сейчас.
113. VID1234 109 17.06.21 10:18 Сейчас в теме
(110) Здравствуйте. Это в расширении:
&После ("ОбработкаЗаполнения")
Процедура VID_ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

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

Сообщить("" + ЭтотРуководитель + " (тип" + ТипЗнч(ЭтотРуководитель) + ")");
//Сообщить(ТипЗнч(Руководитель) = ТипЗнч(ЭтотРуководитель));
ЭтотОбъект.Руководитель = ЭтотРуководитель;
	
КонецПроцедуры
Показать
114. kasper076 103 17.06.21 10:43 Сейчас в теме
(113) Если поставить точку останова на КонецПроцедуры и посмотреть значения ЭтотРуководитель и ЭтотОбъект.Руководитель, то что мы увидим? Мы убедились, что тип у них одинаковый, ЭтотРуководитель заполнен. Значит ЭтотОбъект.Руководитель должен принять тоже значение, что и ЭтотРуководитель.
ЭтотРуководитель имеет верное значение?
Если это так, а в документе мы видим другое значение, то нужно смотреть ПриСозданииНаСервере.
117. VID1234 109 17.06.21 11:17 Сейчас в теме
(114)Да значение правильное.
118. kasper076 103 17.06.21 11:31 Сейчас в теме
(117)
ЭтотРуководитель содержит верное значение.
ЭтотОбъект.Руководитель содержит верное значение.
119. VID1234 109 17.06.21 11:33 Сейчас в теме
(118) да в отладчике, но оно не проставляется.
111. alivan 16.06.21 21:47 Сейчас в теме
(106) В процедуре
УстановитьРуководителя
Процедура УстановитьРуководителя(Знач Организация, Знач Подразделение, Знач Дата, Руководитель)

	НовыйРуководитель = ОрганизационнаяСтруктураКлиентСервер.ОтветственноеЛицоОрганизации("Руководитель", Организация, Дата, Подразделение);
	
	Если ЗначениеЗаполнено(НовыйРуководитель.ОтветственноеЛицоСсылка) 
		И Руководитель <> НовыйРуководитель.ОтветственноеЛицоСсылка Тогда
		Руководитель = НовыйРуководитель.ОтветственноеЛицоСсылка;
		#Если НаКлиенте Тогда
		ПоказатьОповещениеПользователя(,,НСтр("ru = 'Установлено новое значение поля ""Руководитель"" на закладке ""Заключение комиссии""'"));			
		#КонецЕсли
	КонецЕсли;

КонецПроцедуры
Показать

Просто присваивается значение реквизиту Руководитель.
kasper076; +1 Ответить
115. kasper076 103 17.06.21 10:51 Сейчас в теме
(111) +100500
В ПриСозданиНаСервере есть код:
    Если Параметры.Ключ.Пустая() Тогда
        
        ПодготовитьФормуНаСервере();
        УстановитьРуководителя(Объект.Организация, Объект.ПодразделениеОтправитель, Объект.Дата, Объект.Руководитель);
        
    КонецЕсли;

Он вызывается для новых объектов и как раз заменяет значение поля Руководитель.

Нужно в расширении переопределить процедуру УстановитьРуководителя.
116. VID1234 109 17.06.21 11:16 Сейчас в теме
(115) и как?
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьРуководителя(Знач Организация, Знач Подразделение, Знач Дата, Руководитель)

	НовыйРуководитель = ОрганизационнаяСтруктураКлиентСервер.ОтветственноеЛицоОрганизации("Руководитель", Организация, Дата, Подразделение);
	
	Если ЗначениеЗаполнено(НовыйРуководитель.ОтветственноеЛицоСсылка) 
		И Руководитель <> НовыйРуководитель.ОтветственноеЛицоСсылка Тогда
		Руководитель = НовыйРуководитель.ОтветственноеЛицоСсылка;
		#Если НаКлиенте Тогда
		ПоказатьОповещениеПользователя(,,НСтр("ru = 'Установлено новое значение поля ""Руководитель"" на закладке ""Заключение комиссии""'"));			
		#КонецЕсли
	КонецЕсли;

КонецПроцедуры
Показать
120. kasper076 103 17.06.21 11:38 Сейчас в теме
(116) Добавить в расширение и переопределить с директивой &Вместо
И в тексте процедуры заменить // Вставить содержимое обработчика. на код:
Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |    АктСписанияМЗ.Руководитель КАК Руководитель
        |ИЗ
        |    Документ.АктСписанияМЗ КАК АктСписанияМЗ
        |ГДЕ
        |    АктСписанияМЗ.ПометкаУдаления = ЛОЖЬ
        |
        |УПОРЯДОЧИТЬ ПО
        |    АктСписанияМЗ.Дата УБЫВ";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ЭтотРуководитель = ВыборкаДетальныеЗаписи.Руководитель; 
        КонецЦикла;

Сообщить("" + ЭтотРуководитель + " (тип" + ТипЗнч(ЭтотРуководитель) + ")");
//Сообщить(ТипЗнч(Руководитель) = ТипЗнч(ЭтотРуководитель));
Руководитель = ЭтотРуководитель;
Показать
121. VID1234 109 17.06.21 11:41 Сейчас в теме
(120)Это я вставил в модуль формы документа, Вместо процедуры УстановитьРуководителя, но у меня ошибка
{Расширение_Основное Документ.АктСписанияМЗ.Форма.ФормаДокумента.Форма(71,17)}: Тип не определен (Запрос)
Запрос = Новый <<?>>Запрос; (Проверка: Тонкий клиент)
122. kasper076 103 17.06.21 11:46 Сейчас в теме
(121) Процедура УстановитьРуководителя в модуле формы с какой директивой? &НаКлиенте?
123. VID1234 109 17.06.21 11:46 Сейчас в теме
(122)&НаКлиентеНаСервереБезКонтекста
124. kasper076 103 17.06.21 11:53 Сейчас в теме
(123) Значит в расширении нужно создать функцию
&НаСервере
Функция ПолучитьРуководителя()
Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |    АктСписанияМЗ.Руководитель КАК Руководитель
        |ИЗ
        |    Документ.АктСписанияМЗ КАК АктСписанияМЗ
        |ГДЕ
        |    АктСписанияМЗ.ПометкаУдаления = ЛОЖЬ
        |
        |УПОРЯДОЧИТЬ ПО
        |    АктСписанияМЗ.Дата УБЫВ";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ЭтотРуководитель = ВыборкаДетальныеЗаписи.Руководитель; 
        КонецЦикла;
Возврат ЭтотРуководитель;
КонецФункции
Показать

А в процедуре УстановитьРуководителя заменить // Вставить содержимое обработчика на:
Руководитель = ПолучитьРуководителя();
125. VID1234 109 17.06.21 11:58 Сейчас в теме
(124) {Расширение_Основное Документ.АктСписанияМЗ.Форма.ФормаДокумента.Форма(62,16)}: Процедура или функция с указанным именем не определена (ПолучитьРуководителя)
Руководитель = <<?>>ПолучитьРуководителя(); (Проверка: Сервер)
{Расширение_Основное Документ.АктСписанияМЗ.Форма.ФормаДокумента.Форма(62,16)}: Процедура или функция с указанным именем не определена (ПолучитьРуководителя)
Руководитель = <<?>>ПолучитьРуководителя(); (Проверка: Тонкий клиент)
126. kasper076 103 17.06.21 12:17 Сейчас в теме
(125) Модуль формы из расширения покажи.
127. kasper076 103 17.06.21 12:22 Сейчас в теме
(125) Для функции ПолучитьРуководителя() нужно исправить &НаСервере на &НаСервереБезКонтекста
128. VID1234 109 17.06.21 12:29 Сейчас в теме
(127) помогло, сейчас проверю
129. VID1234 109 17.06.21 12:32 Сейчас в теме
(127) Работает, спасибо, но при копировании старого документа, у меня автоматически затирается и устанавливается последнее лицо, какое было! а нужно, то которое есть в копируемом
96. VID1234 109 16.06.21 18:30 Сейчас в теме
(93)А не может быть, что мы обращаемся к реквизиту документа, а не к реквизиту формы документа? Проста есть реквизит Руководитель у документа АктСписанияМЗ и есть реквизит у формы Объект.Руководитель или это одно и тоже?
100. kasper076 103 16.06.21 18:37 Сейчас в теме
(96) Форма существует только пока открыта. При каждом открытии она подтягивает данные из реквизитов документа. ОбработкаЗаполнения срабатывает раньше чем ПриСозданииНаСервере. Т.е. к моменту ПриСозданииНаСервере в реквизите уже будет подставленное значение.
Если только ПриСозданииНаСервере это значение не перезаписывается для новых объектов....
92. kasper076 103 16.06.21 18:20 Сейчас в теме
(82) Вот как в табло это выглядит. У переменной Сотр слева крестик, по которому раскрываются значения реквизитов. А у вас нет такого.
Прикрепленные файлы:
83. VID1234 109 16.06.21 18:03 Сейчас в теме
(80) Ну да почему-то не присваивает значение Петрова, хотя тип такой же. Что может быть?
65. VID1234 109 16.06.21 17:39 Сейчас в теме
(62) может я не правильно обращаюсь к полю формы? ЭтотОбъект.Руководитель = ЭтотРуководитель
70. kasper076 103 16.06.21 17:44 Сейчас в теме
(65) Это реквизит документа. ЭтотОбъект можно и не писать. А что присваивается переменной ЭтотРуководитель?
59. VID1234 109 16.06.21 17:22 Сейчас в теме
(57)
&После ("ОбработкаЗаполнения")
Процедура VID_ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ ПЕРВЫЕ 1
    |    Документ.Дата КАК Дата
    |ПОМЕСТИТЬ ВТ_ПоследняяДата
    |ИЗ
    |    Документ.АктСписанияМЗ КАК Документ
    |ГДЕ
    |    Документ.Дата < &Дата
    |
    |УПОРЯДОЧИТЬ ПО
    |    Дата УБЫВ
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ ПЕРВЫЕ 1
    |    Документ.Руководитель КАК Руководитель
    |ИЗ
    |    ВТ_ПоследняяДата КАК ВТ_ПоследняяДата
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АктСписанияМЗ КАК Документ
    |        ПО (ВТ_ПоследняяДата.Дата = Документ.Дата)
    |
    |УПОРЯДОЧИТЬ ПО
    |    Документ.Дата УБЫВ";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("Дата", Дата);

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

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

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

Так возвращает, даже нужное значение, но только через Сообщить (пишет ФИО сотрудника (в скобках(Тип(Сотрудник)),
а вставлять не вставляет в форму!
112. alivan 16.06.21 21:51 Сейчас в теме
(106)
  Если Параметры.Ключ.Пустая() Тогда
        
        ПодготовитьФормуНаСервере();
        // УстановитьРуководителя(Объект.Организация, Объект.ПодразделениеОтправитель, Объект.Дата, Объект.Руководитель);
Объект.Руководитель = Нужный сотрудник;
        
    КонецЕсли;
130. kasper076 103 17.06.21 12:59 Сейчас в теме
(129) Это ожидаемо.
А до внесения изменений в алгоритм было по-другому? Судя по коду руководитель при копировании всегда обновлялся, если значение в копируемом документе отличалось от значения текущего руководителя.
131. VID1234 109 17.06.21 13:35 Сейчас в теме
(130) он просто и не менялся, был всегда один и тот же, а теперь мы сделали другого! и скорее всего он будет манятся.
132. kasper076 103 17.06.21 14:01 Сейчас в теме
(131) Значит нужно переопределить процедуру ПриСозданииНаСервере с директивой &После и в тексте процедуры заменить // Вставить содержимое обработчика. на код:
Если ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда
	Руководтель = Параметры.ЗначениеКопирования.Руководитель;
Иначе
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|    АктСписанияМЗ.Руководитель КАК Руководитель
	|ИЗ
	|    Документ.АктСписанияМЗ КАК АктСписанияМЗ
	|ГДЕ
	|    АктСписанияМЗ.ПометкаУдаления = ЛОЖЬ
	|
	|УПОРЯДОЧИТЬ ПО
	|    АктСписанияМЗ.Дата УБЫВ";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		ЭтотРуководитель = ВыборкаДетальныеЗаписи.Руководитель; 
	КонецЦикла;
	
	Сообщить("" + ЭтотРуководитель + " (тип" + ТипЗнч(ЭтотРуководитель) + ")");
	//Сообщить(ТипЗнч(Руководитель) = ТипЗнч(ЭтотРуководитель));
	Руководитель = ЭтотРуководитель;
КонецЕсли
Показать

А все что делали до этого удалить.
133. VID1234 109 17.06.21 14:58 Сейчас в теме
(132)
Если ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда
Руководтель = Параметры.ЗначениеКопирования.Руководитель;
Иначе
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| АктСписанияМЗ.Руководитель КАК Руководитель
|ИЗ
| Документ.АктСписанияМЗ КАК АктСписанияМЗ
|ГДЕ
| АктСписанияМЗ.ПометкаУдаления = ЛОЖЬ
|
|УПОРЯДОЧИТЬ ПО
| АктСписанияМЗ.Дата УБЫВ";

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

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

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

Сообщить("" + ЭтотРуководитель + " (тип" + ТипЗнч(ЭтотРуководитель) + ")");
//Сообщить(ТипЗнч(Руководитель) = ТипЗнч(ЭтотРуководитель));
Руководитель = ЭтотРуководитель;
КонецЕсли
Показать

не работает! вообще!
135. kasper076 103 17.06.21 15:24 Сейчас в теме
(133) Подобные сообщения малоинформативны.
Вот так сделал.
Вот такие ошибки выдаёт.
А иначе мы до 10-ти страниц не закончим.
136. VID1234 109 17.06.21 15:38 Сейчас в теме
(135)))))
&НаСервере
&После("ПриСозданииНаСервере")
Процедура ПриСозданииНаСервере2(Отказ, СтандартнаяОбработка)

	
	
	
//	 //VID(

Если ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда
    Руководитель = Параметры.ЗначениеКопирования.Руководитель;
Иначе
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ ПЕРВЫЕ 1
    |    АктСписанияМЗ.Руководитель КАК Руководитель
    |ИЗ
    |    Документ.АктСписанияМЗ КАК АктСписанияМЗ
    |ГДЕ
    |    АктСписанияМЗ.ПометкаУдаления = ЛОЖЬ
    |
    |УПОРЯДОЧИТЬ ПО
    |    АктСписанияМЗ.Дата УБЫВ";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ЭтотРуководитель = ВыборкаДетальныеЗаписи.Руководитель; 
    КонецЦикла;
    
	//Сообщить("" + ЭтотРуководитель + " (тип" + ТипЗнч(ЭтотРуководитель) + ")");
    //Сообщить(ТипЗнч(Руководитель) = ТипЗнч(ЭтотРуководитель));
    Руководитель = ЭтотРуководитель;
КонецЕсли
//	//ПодготовитьФормуНаСервере();
//	Запрос = Новый Запрос;
//	Запрос.Текст = 
//		"ВЫБРАТЬ ПЕРВЫЕ 1
//		|	АктСписанияМЗ.Руководитель КАК Руководитель
//		|ИЗ
//		|	Документ.АктСписанияМЗ КАК АктСписанияМЗ
//		|ГДЕ
//		|	АктСписанияМЗ.ПометкаУдаления = ЛОЖЬ
//		|
//		|УПОРЯДОЧИТЬ ПО
//		|	АктСписанияМЗ.Дата УБЫВ";
//	
//	РезультатЗапроса = Запрос.Выполнить();
//	
//	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
//	
//		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
//		ЭтотРуководитель = ВыборкаДетальныеЗаписи.Руководитель; 
//		КонецЦикла;
//			
//	Если Параметры.Ключ.Руководитель = Объект.Руководитель Тогда
//	  //Если Объект.Руководитель <> ЭтотРуководитель Тогда
//			//Форма = Ссылка.ПолучитьФорму("ФормаДокумента");
//	//	Если Форма.Открыта()Тогда
//	//		Руководитель = ЭтотРуководитель;
//	//	КонецЕсли;
//	    Объект.Руководитель = Объект.Руководитель;
//    
//			//Сообщить(ЭтотРуководитель);
//		Иначе
//		//УстановитьРуководителя(Объект.Организация, Объект.ПодразделениеОтправитель, Объект.Дата, Объект.Руководитель) ;
//Объект.Руководитель = ЭтотРуководитель;
//	      
//		
//КонецЕсли;
////Сообщить(Объект.Руководитель);
////Сообщить(ЭтотРуководитель + " (тип" + ТипЗнч(ЭтотРуководитель) + ")");
// //VID)
КонецПроцедуры
Показать
137. kasper076 103 17.06.21 15:47 Сейчас в теме
(136) Неверно.
1.Открой форму документа в основной конфе
2. Найди в модуле процедуру ПриСозданииНаСервере
3. ПКМ на название и Добавить в расширение
4. После этого заполни текст процедуры

Хотя мож и верно. Мож погорячился)))

Отладчик ловит вызов этой процедуры?
Что в ней происходит?
138. VID1234 109 17.06.21 15:59 Сейчас в теме
(137)Проходит по ветке Иначе, но переменные не определены (Неизвестный модуль >(1,1)
139. kasper076 103 17.06.21 16:12 Сейчас в теме
(138) мож какие уведомления выдаёт?
140. VID1234 109 17.06.21 16:36 Сейчас в теме
141. kasper076 103 17.06.21 22:27 Сейчас в теме
(136) Сделал добавление процедуры в модуль по инструкции из (137) и получил вот такой результат:
&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	//Вставить содержимое обработчика
КонецПроцедуры

У меня платформа 8.3.18. Может конечно в ней что-то поменялось в плане расширений, но стоит попробовать именно так добавить процедуру.

И еще в тексте процедуры нужно заменить:
Руководитель = ЭтотРуководитель;

на:
Объект.Руководитель = ЭтотРуководитель;
145. VID1234 109 18.06.21 17:08 Сейчас в теме
(141) работает, но при копировании, даже того, где указан другой руководитель, ставится первоначальный. А при создании все хорошо, записывается последний
142. kasper076 103 17.06.21 23:19 Сейчас в теме
(136) Сделал по твоей схеме и тоже работает.
Значит ток внести исправление из (141)
143. kasper076 103 17.06.21 23:36 Сейчас в теме
(136) Проверь еще этот момент.
1. В расширении открыть форму
2. Два раза кликнуть на Форма (расширение)
3. В открывшемся окне свойств в разделе событий должно быть описано событие ПриСозданииНаСервере с такой пиктограмкой.
Прикрепленные файлы:
144. VID1234 109 18.06.21 14:46 Сейчас в теме
(143) Здравствуйте. Хорошо, спасибо! Попробую, напишу результат! Хорошего дня.
134. kasper076 103 17.06.21 15:21 Сейчас в теме
Покажи полный текст процедуры из расширения. С директивами.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот