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

Наименование
Строка1
строка2
строка3

Вот, в зависимости от выбранной строки, надо передать ее в параметры запроса?
---
Ну вот смотрите.

Делаете команду на форме списка. В модуле объекта у вас должна быть какая то экспортная процедура

```1c
    &НаКлиенте
    Процедура Команда(Команда)

    КомандаНаСервере();

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

    &НаСервере
    Процедура КомандаНаСервере()

    ТекущаяСтрока = Элементы.Список.ТекущаяСтрока;
    Объект = ТекущаяСтрока.ПолучитьОбъект();
    Объект.ЧтоТоДелает(ТекущаяСтрока);

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

Процедура в модуле объекта

```1c
    Процедура ЧтоТоДелает(СсылкаНаЭлемент)Экспорт
    /// ...........
    КонецПроцедуры
```

Вот если просто то вот так
---
Вот смотрите у вас должна быть функция которая проверяет можно ли редактировать объект или нет по ссылке на элемент справочника. Функция возвращает истина если может и ложь если нет.

Так вот, есть ваша процедура которая все проверяет

```1c
    Функция РедактироватьМожно(СсылкаНаЭлемент)Экспорт
    ////// .... что то тут делается
    Если ..... Тогда
    Возврат Истина
    Иначе
    Возврат Ложь
    Конец
    КонецФункция
```

Эту самую функция вы вызываете на форме списка. И эту жу функцию вызывайте в процедуре ПриЗаписи(Отказ)

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

Делаете команду на форме списка. В модуле объекта у вас должна быть какая то экспортная процедура

```1c
    &НаКлиенте
    Процедура Команда(Команда)

    КомандаНаСервере();

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

    &НаСервере
    Процедура КомандаНаСервере()

    ТекущаяСтрока = Элементы.Список.ТекущаяСтрока;
    Объект = ТекущаяСтрока.ПолучитьОбъект();
    Объект.ЧтоТоДелает(ТекущаяСтрока);

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

Процедура в модуле объекта

```1c
    Процедура ЧтоТоДелает(СсылкаНаЭлемент)Экспорт
    /// ...........
    КонецПроцедуры
```

Вот если просто то вот так
---
Это все я сделал, Все работает, все проверяется, но, теперь в модуле объекта есть Процедура ПриЗаписи(Отказ)
Мне надо там вызвать эту функцию, и в зависимости от ее результата, ставить отказ = истина.
Но я не знаю что туда передавать в качестве параметра? Как мне быть?

или же надо вызвать процедуру из модуля формы в модуле объекта
---
Вот смотрите у вас должна быть функция которая проверяет можно ли редактировать объект или нет по ссылке на элемент справочника. Функция возвращает истина если может и ложь если нет.

Так вот, есть ваша процедура которая все проверяет

```1c
    Функция РедактироватьМожно(СсылкаНаЭлемент)Экспорт
    ////// .... что то тут делается
    Если ..... Тогда
    Возврат Истина
    Иначе
    Возврат Ложь
    Конец
    КонецФункция
```

Эту самую функция вы вызываете на форме списка. И эту жу функцию вызывайте в процедуре ПриЗаписи(Отказ)

```1c
    Процедура ПриЗаписи(Отказ)
    Отказ = Не РедактироватьМожно(Ссылка)
    КонецПроцедуры
```
---
вроде Получилось, спасибо!!!
---
ну и отлично что все получилось
---
Спасибо!!!
---
&НаСервере
Процедура КомандаНаСервере()

    ТекущаяСтрока = Элементы.Список.ТекущаяСтрока;
    Объект = ТекущаяСтрока.ПолучитьОбъект();
    Объект.ЧтоТоДелает(ТекущаяСтрока);

КонецПроцедуры
Эту процедуру надо вызвать в модуле объекта, сделал Экспорт, не помогает.
---
у вас в модуле объекта должна вызываться процедура ЧтоТоДелает, она вызывается???
---
Да, но я не знаю какие туда параметры передавать, ведь я уже туда передал текущую строку?
---
Вообще опишу всю суть того, что надо сделать. может будет полезно.
В иерархическом справочнике, при создании группы, указывается своего рода ответственный за эту группу, ее подгруппы, и все подчиненные элементы.
Человек указанный в самой верхней группе, получает доступ на редактирование этих групп, элементов и тд.
и получается если человек выбрал какую то группу, надо эту группу(Строку) передать в параметры запроса, получить для этой группы ее самую верхнюю группу, проверить указан ли этот человек там в поле ответственый, если не указан, то не давать ему редактировать подгруппы и элементы.
---
либо если через выбор

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

```1c
    &НаСервере
    Процедура ПолучитьТекущуюСтроку()
    ТекущаяСтрока = Элементы.Список.ТекущаяСтрока;
    Объект = ТекущаяСтрока.ПолучитьОбъект();
    Объект.ВозможностьРедактированияУслуг(ТекущаяСтрока);
    КонецПроцедуры
```

Функция в модуле объекта:

```1c
    Функция ВозможностьРедактированияУслуг(СсылкаНаЭлемент) экспорт
    // Обработчик
    КонецФункции
```

Процедура в модуле объекта в которой надо вызвать функцию " ВозможностьРедактированияУслуг(СсылкаНаЭлемент) "

```1c
    Процедура ПриЗаписи(Отказ)
    ВозможностьРедактированияУслуг(ЧтоСюдапередавать??????????);
    КонецПроцедуры
```