При написании следующего кода в модуле формы документа всё срабатывает:
...............................................................................

```1c
    Процедура РассчитатьСтоимостьНаСервере()

    Проценты = 100;
    Объект.Прибыль = Объект.ПолнаяСебестоимость * Объект.РентабельностьЗаказа / Проценты;

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

.............................................................................
Но когда я пишу это в общем модуле, то ничего не происходит, хотя в отладке показывает нужные значения, ошибок нет, просто не меняются цифры в документе.

В общем модуле:
.........................................

```1c
    Процедура РассчитатьСтоимость(ОбъектДокумент) Экспорт

    Объект = ОбъектДокумент.РеквизитФормыВЗначение("Объект");
    Проценты = 100;
    Объект.Прибыль = Объект.ПолнаяСебестоимость * Объект.РентабельностьЗаказа / Проценты;

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

.............................................................................
В модуле формы документа вызываю эту процедуру:
..........................................................................

```1c
    Процедура РассчитатьСтоимостьНаСервере()

    НазваниеОбщегоМодуля. РассчитатьСтоимость(ЭтотОбъект);

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

................................................................
Собственно, вопрос: что не так делаю?
---
это работает не так как ожидаете. Создается новый объект документа. В нем изменяются значения. Этот объект никакого прямого отношения в данным формы не имеет и при выходе из процедуры объект удаляется из памяти.
---
Все проще:

В общем модуле:
.........................................

```1c
    Процедура РассчитатьСтоимость(Объект) Экспорт

    Проценты = 100;
    Объект.Прибыль = Объект.ПолнаяСебестоимость * Объект.РентабельностьЗаказа / Проценты;

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

.............................................................................
В модуле формы документа вызываю эту процедуру:
..........................................................................

```1c
    Процедура РассчитатьСтоимостьНаСервере()

    НазваниеОбщегоМодуля. РассчитатьСтоимость(Объект);

    КонецПроцедуры
```
---
В общем модуле:
.........................................
Процедура РассчитатьСтоимость(ОбъектДокумент) Экспорт

Объект = ОбъектДокумент.РеквизитФормыВЗначение("Объект");

Реально? При передаче прикладного объекта в серверный общий модуль пытаешься использовать методы формы???
---
Да.
---
Это работает, если что
---
Видимо, все-таки передаешь форму, а не прикладной объект...
---
Если бы форму передавал, то он бы ругался. Я ж говорю, смотрел в отладке, всё в порядке,вроде, Объект.Прибыль изменяется
---
это работает не так как ожидаете. Создается новый объект документа. В нем изменяются значения. Этот объект никакого прямого отношения в данным формы не имеет и при выходе из процедуры объект удаляется из памяти.
---
Все проще:

В общем модуле:
.........................................

```1c
    Процедура РассчитатьСтоимость(Объект) Экспорт

    Проценты = 100;
    Объект.Прибыль = Объект.ПолнаяСебестоимость * Объект.РентабельностьЗаказа / Проценты;

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

.............................................................................
В модуле формы документа вызываю эту процедуру:
..........................................................................

```1c
    Процедура РассчитатьСтоимостьНаСервере()

    НазваниеОбщегоМодуля. РассчитатьСтоимость(Объект);

    КонецПроцедуры
```
---
Да-а, замудрил с "ЭтотОбъект" и так далее...Спасибо большое!
---
Жуть. Нужно два числа, а передают весь Объект (!).

В общем модуле:

```1c
    Функция РассчитатьСтоимость(аПолнаяСебестоимость, аРентабельностьЗаказа) Экспорт

    возврат аПолнаяСебестоимость * аРентабельностьЗаказа / 100;

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

В модуле формы

```1c
    Процедура РассчитатьСтоимостьНаСервере()

    Объект.Прибыль = НазваниеОбщегоМодуля.РассчитатьСтоимость(Объект.ПолнаяСебестоимость, Объект.РентабельностьЗаказа);

    КонецПроцедуры
```
---
Это кусочек того, что нужно, поэтому и весь объект передаю)