Есть функция которая возвращает Дата, результат которой передается в переменную, переменную определяю в процедуре которая выполняется после процедуры "ПриСозданииНаСервере", в итоге выдает ошибку, что переменная не определена? Подскажи те в чем ошибка, почему он не определяет параметр?

&НаСервере
Функция Расш_ДатаПоследнегоСобытияПриСозданииНаСервереФункция(Дата)

 Запрос = Новый Запрос;

 // 4. Последнее событие

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

 Выборка = Запрос.Выполнить().Выбрать();
 Если Выборка.Следующий() Тогда
  Дата = Выборка.Дата;
  Возврат Дата;
 Иначе
  Возврат "Ошибка";
 КонецЕсли;

КонецФункции

&НаСервере
&После("ПриСозданииНаСервере")
Процедура Расш_ДатаПоследнегоСобытияПриСозданииНаСервере()
 ДатаПоследнегоСобытия = Расш_ДатаПоследнегоСобытияОбщийМодуль1.Расш_ДатаПоследнегоСобытияПриСозданииНаСервереФункция(Дата)
КонецПроцедуры
---
&НаСервере
Функция Расш_ДатаПоследнегоСобытияПриСозданииНаСервереФункция(Контрагент)

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Контрагент", Контрагент);

// 4. Последнее событие

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

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Дата = Выборка.Дата;
Возврат Дата;
Иначе
Возврат "Ошибка";
КонецЕсли;

КонецФункции

&НаСервере
&После("ПриСозданииНаСервере")
Процедура Расш_ДатаПоследнегоСобытияПриСозданииНаСервере()

КакойтоКонтрагент = "Его надо задать... либо переменная, либо реквизит";
ДатаПоследнегоСобытия = Расш_ДатаПоследнегоСобытияОбщийМодуль1.Расш_ДатаПоследнегоСобытияПриСозданииНаСервереФункция(КакойтоКонтрагент)
КонецПроцедуры
---
Зачем ты передаешь в Ф параметр Дата, который потом не используешь? Почему не устанавливаешь параметр Контрагент?
---
Почему не использую, Дата у меня и есть как результат функции которую я хочу поместить в переменную
---
Не путай результат с аргументом.
---
Напиши просто, не нужно ее передавать в функцию. Лучше Контрагента передай, у тебя же по нему отбор в запросе
```1c
    Если Выборка.Следующий() Тогда
    Возврат Выборка.Дата;
    Иначе
    Возврат "Ошибка";
    КонецЕсли;
```
---
Имеете ввиду в функции оставить, только запрос, передать Контрагент, а в процедуре уже написать Если Выборка.Следующий() Тогда
Возврат Выборка.Дата;
Иначе
Возврат "Ошибка";
КонецЕсли;
---
Так откуда берется переменная Дата? Что это вообще такое? Откуда она известна процедуре Расш_ДатаПоследнегоСобытияПриСозданииНаСервере()??
(Нейминг, конечно, на нобеля тянет)
---
Дата = Выборка.Дата;
Возврат Дата;

Описывается в функции, а почему я она не известна, я и хочу узнать, я же ее передаю из функции, почему он ее не определяет?
---
Я тебе для чего имя процедуры указал??? Меня не интересует функция. Процедура про твою дату знать ничего не знает!
Брысь на курсы, основы изучать! Потом уже до расширений доберешься. Может быть.
---
ошибка в не корректном использовании понятия функция.

функции работают так:

РезультатФункции = НашаФункция(входящиеПараметры);
---
процедуры работают так:

ВоднаяПроцедураССушкойИГлажением(ГрязноеБелье);

В результате неких событий внутри процедуры - получим в переменной ГрязноеБелье - то- что некую обработку, заложенную алгоритмами процедурами.
---
&НаСервере
Функция Расш_ДатаПоследнегоСобытияПриСозданииНаСервереФункция(Контрагент)

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Контрагент", Контрагент);

// 4. Последнее событие

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

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Дата = Выборка.Дата;
Возврат Дата;
Иначе
Возврат "Ошибка";
КонецЕсли;

КонецФункции

&НаСервере
&После("ПриСозданииНаСервере")
Процедура Расш_ДатаПоследнегоСобытияПриСозданииНаСервере()

КакойтоКонтрагент = "Его надо задать... либо переменная, либо реквизит";
ДатаПоследнегоСобытия = Расш_ДатаПоследнегоСобытияОбщийМодуль1.Расш_ДатаПоследнегоСобытияПриСозданииНаСервереФункция(КакойтоКонтрагент)
КонецПроцедуры