Методика переноса кода из формы в модуль объекта или менеджера в типовых конфигурациях

1. frkbvfnjh 811 20.12.21 14:21 Сейчас в теме
Всем привет! Столкнулся с тем, что часто приходится переносить какие то процедуры и функции (далее просто методы) из формы объекта (к примеру документа) в модуль объекта или менеджера. К примеру для того, что бы создать документ программно и вызвать соответствующие обработчики при изменении определенных реквизитов, что бы все рассчиталось. Но проблема в том, что в типовых конфигурациях, в частности в ЗУП 3.1, в качестве одного из параметров во все типовые методы передается форма. Иногда это делается просто что бы получить доступ к реквизиту Объект, а иногда, что еще более ужасно, идет привязка к интерактивным свойствам, типа текущая строка или текущие данные. И тут начинается проблема, что просто так эти методы не вызовешь, на сервере, т.к. доступа к форме объекта естественно нет и получить его не возможно. Я не вижу другого способа, кроме как копировать все эти методы и переписывать их без привязки к форме, но одно дело когда нужно заменить Форма.Объект на просто Объект, и совсем другое "корячиться" с переписыванием методов которые привязываются к текущим данным, так же это вызывает проблему если нужно скрыть элемент на форме, но при этом все должно считаться также, а если элемент скрыт то и текущих данных нет. Аналогов методов в тех же модулях для выполнения аналогичных действий без привязке к форме я не увидел. Вот и хочу спросить, как умные люди в таких ситуациях поступают? Тоже переписывают методы на новый лад? Или есть какая я то методология? Или есть где то аналоги методов не интерактивных? Заранее спасибо!
Oldsad; alex_bob; +2 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alex_bob 258 20.12.21 14:28 Сейчас в теме
Тоже с этим сталкивался и тоже хотел бы для себя прояснить этот вопрос.
Oldsad; frkbvfnjh; +2 Ответить
3. МимохожийОднако 142 20.12.21 14:28 Сейчас в теме
Универсального рецепта нет. Многое зависит от конкретной задачи. Практика показывает, что копирование методов в лоб малоэффективно. При создании документа форма и соответственно обработке на форме не нужны. Используется метод Копировать() в модуле документа и соответственно процедуры заполнения.
Логичнее понять, что нужно при создании документа без обращения к форме.
4. alex_bob 258 20.12.21 14:38 Сейчас в теме
Я с этим столкнулся, когда хотел программно изменить определенное начисление в документе Начисления и программно вызвать пересчет зависимых начислений/удержаний
6. frkbvfnjh 811 20.12.21 17:06 Сейчас в теме
(4) Да, у меня примерно такая же задача была, одна из...
5. starjevschik 20.12.21 14:39 Сейчас в теме
Да именно так и поступают. Ничего чудодейственного не придумано пока, а 1С продолжает гнать все ту же гадость в качестве стандартных конфигураций.
frkbvfnjh; +1 Ответить
Оставьте свое сообщение

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