Перенос кода в общий модуль

1. user1632413 12.10.22 18:15 Сейчас в теме
При написании следующего кода в модуле формы документа всё срабатывает:
...............................................................................
Процедура РассчитатьСтоимостьНаСервере()

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

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

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

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

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

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

.............................................................................
В модуле формы документа вызываю эту процедуру:
..........................................................................
Процедура РассчитатьСтоимостьНаСервере()

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

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

................................................................
Собственно, вопрос: что не так делаю?
По теме из базы знаний
Найденные решения
7. spacecraft 12.10.22 18:44 Сейчас в теме
(4) это работает не так как ожидаете. Создается новый объект документа. В нем изменяются значения. Этот объект никакого прямого отношения в данным формы не имеет и при выходе из процедуры объект удаляется из памяти.
8. spacecraft 12.10.22 18:46 Сейчас в теме
(1) Все проще:

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

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

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

.............................................................................
В модуле формы документа вызываю эту процедуру:
..........................................................................
Процедура РассчитатьСтоимостьНаСервере()

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

КонецПроцедуры
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1826630 12.10.22 18:19 Сейчас в теме
(1)
В общем модуле:
.........................................
Процедура РассчитатьСтоимость(ОбъектДокумент) Экспорт

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


Реально? При передаче прикладного объекта в серверный общий модуль пытаешься использовать методы формы???
3. user1632413 12.10.22 18:21 Сейчас в теме
4. user1632413 12.10.22 18:22 Сейчас в теме
(2)Это работает, если что
5. user1826630 12.10.22 18:30 Сейчас в теме
(4) Видимо, все-таки передаешь форму, а не прикладной объект...
6. user1632413 12.10.22 18:39 Сейчас в теме
(5)Если бы форму передавал, то он бы ругался. Я ж говорю, смотрел в отладке, всё в порядке,вроде, Объект.Прибыль изменяется
7. spacecraft 12.10.22 18:44 Сейчас в теме
(4) это работает не так как ожидаете. Создается новый объект документа. В нем изменяются значения. Этот объект никакого прямого отношения в данным формы не имеет и при выходе из процедуры объект удаляется из памяти.
8. spacecraft 12.10.22 18:46 Сейчас в теме
(1) Все проще:

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

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

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

.............................................................................
В модуле формы документа вызываю эту процедуру:
..........................................................................
Процедура РассчитатьСтоимостьНаСервере()

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

КонецПроцедуры
9. user1632413 12.10.22 18:50 Сейчас в теме
(8) Да-а, замудрил с "ЭтотОбъект" и так далее...Спасибо большое!
10. dehro 5 12.10.22 21:48 Сейчас в теме
Жуть. Нужно два числа, а передают весь Объект (!).

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

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

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

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



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

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

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

КонецПроцедуры
11. user1632413 12.10.22 21:51 Сейчас в теме
(10) Это кусочек того, что нужно, поэтому и весь объект передаю)
Оставьте свое сообщение

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