Пришлось столкнуться с синтаксисом 8.2.

В модуля формы есть такая процедура
Код
&НаКлиенте
Процедура РМПриИзменении() Экспорт
    Для каждого стр из Объект.РабочееМесто Цикл
        стр.пометка = Ложь;
    КонецЦикла;

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

    ЗаполнитьСтраницу("Операции");
КонецПроцедуры
Показать полностью
Данная процедура нужня для перезаполнения формы.

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

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

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

Только чтение.
Описание:

Тип: ДанныеФормыСтруктура; ДанныеФормыЭлементКоллекции; ДанныеФормыЭлементДерева.
Представляет доступ к текущим данным (данным текущей строки).

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.
---
mymyka, может эти процедуры в отдельный модуль поместить, мне их нужно просто еще раз вызвать но из модуля дока))
---
Да хоть куда ты их помести. У тебя неверный алгоритм в процедуре, находящиейся в модуле документа. Он выполняется НаСервере, и ТекущиеДанные там использовать нельзя. Опиши в чем конкретно задача стоит?
---
mymyka, (4) starjevschik,
Суть такая: создаю документ путем ввода на основании. Вновь созданный документ является по идее чистой копией ранее сущетсвующего за исключением, что в новом введенном на основании есть конечная дата. Тоесть требуется чтобы введеный на основании документ заполнялся данными из своего "основателя".
 В документе основании стоят как раз эти процедуры которые запоняют при разных условиях, а т.к. обработка заполнения идет в модуле документа, то и приходистя их вызывать. Суть такая
---
Manticor, ну так направление вызова должно быть обратное. У тебя есть форма, из которой вызывается создание нового документа, там надо все заполнить и потом открыть новый док. Все должно вызываться из формы.
---
starjevschik,

```1c
    Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

    Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.РегистрацияВарки") Тогда
    // Заполнение шапки
    Исполнитель = ДанныеЗаполнения.Исполнитель;
    Комментарий = ДанныеЗаполнения.Комментарий;
    НомерВарки = ДанныеЗаполнения.НомерВарки;
    Операция = ДанныеЗаполнения.Операция;

    Для Каждого ТекСтрокаРабочееМесто Из ДанныеЗаполнения.РабочееМесто Цикл
    НоваяСтрока = РабочееМесто.Добавить();
    НоваяСтрока.Значение = ТекСтрокаРабочееМесто.Значение;
    НоваяСтрока.Пометка = ТекСтрокаРабочееМесто.Пометка;
    РМПриИзменении();
    КонецЦикла;
```

тоесть мне ОбработкаЗаполнения делать не в модуле объекта а в модуле формы?
---
Вызывается ОбработкаЗаполнения сама при вводе на основании или использовании метода .Заполнить(). А описана она должна быть в модуле объекта, т.е. в твоем случае в модуле документа.
---
обработка заполнения делается, естественно, в модуле документа. Но из нее не нужно и невозможно вызывать процедуры модуля формы. Объект заполнил - потом управление переходит в форму - открываешь форму нового объекта.
Конкретно в твоем случае все верно, кроме вызова
РМПриИзменении();
этот вызов должен быть в форме после заполнения объекта.
точнее даже не так. Эта процедура написана неправильно:
&НаКлиенте
Процедура РМПриИзменении() Экспорт
    Для каждого стр из Объект.РабочееМесто Цикл
        стр.пометка = Ложь;
    КонецЦикла;

//эта часть должна быть на сервере в обработке заполнения, она относится к созданию нового объекта

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

    ЗаполнитьСтраницу("Операции");
КонецПроцедуры
---
starjevschik,
тоесть у меня в модуле формы есть проц-ра
&НаКлиенте Процедура РМПриИзменении() Экспорт
я ее меняю на &НаСервере и оставляю только

Для каждого стр из Объект.РабочееМесто Цикл
  стр.пометка = Ложь;
 КонецЦикла;
а все остальное куда толкать?)))
---
а остальное надо цеплять к событию элемента формы, когда пользователь там что-то нажимает. Пометку он у тебя ставит, что ли. При заполнении нового это все зачем? Ты новый объект заполнил? заполнил. Его форму пользователю открыл? открыл. Все, новый объект готов к взаимодействию с пользователем, дальше он уже пусть сам нажимает кнопки, тогда и события появятся.
---
starjevschik, как ни странно, но до банальности все так и нужно было))
а вот как доступность в ТЧ убрать можно?
http://forum.infostart.ru/forum26/topic74233/
---
Все равно не понимаю для чего нужен ТекущиеДаныне. Перебор строк любой ТЧ организуется одинаково:

```1c
    Для Каждого Стр из ТчИсходногоДока Цикл
    НовСтр = ТчНовогоДока.Добавить();
    ЗаполнитьЗначенияСвойств(НовСтр,Стр);
    КонецЦикла;
```

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