Добрый день. В форме документов реализации программно созданы реквизиты, которые заполняются из регистра сведений при открытии формы (через УправлениеПечатью.ПриСозданииНаСервере(), что бы не снимать документ с поддержки, да и нужны эти реквизиты в нескольких видах документов), создана подписка на событие ПриЗаписи для этих документов, которая должна записывать данные с формы в регистр сведений. Вопрос - как достучаться до формы документа, когда есть только сам объект (Источник)?
---
При таком варианте - никак. Что бы переделать вашу доработку с минимальными изменениями - надо записывать регистр самой формой, добавив процедуру "ПриЗаписи" в модуле формы. Если конфа типовая, то такая процедура скорее всего уже есть. Да, это изменение, но никак иначе. Второй вариант - все же реквизиты свои в объект добавить (в документ а не форму). Отследить их при обновлении гораздо проще чем изменения в модуле формы. Назовите ваши реквизиты с префиксом (правило хорошего тона в разработке) и вы никогда не упретесь в то что ваши реквизиты будут заменены при обновлении. А обработку записи уже легко будет реализовать в подписке (реквизиты появятся в источнике). Ну а логику добавления и обработки реквизитов на форме можно оставить динамическую.
---
Вопрос - как достучаться до формы документа, когда есть только сам объект (Источник)?

Зачем Вам форма тогда, берите всё из регистра.
Ваши реквизиты на ней существуют и заполнены пока открыта форма, сами данные по факту живут в регистре.
---
При изменении данных в форме нужно же перезаписать их в регистр.
---
ну так программно и перепишите необходимые данные в регистре, документ источник у Вас есть, для отбора и изменения записей.
---
в этом и вопрос, как достучаться до самих данных? это все происходит на сервере, а данные только в реквизите формы
---
которые заполняются из регистра сведений при открытии формы
Забудьте про форму, у Вас есть регистр, с ним и работайте.
Регистр периодический, Подчинен регистратору?
---
менять логику. Форма на сервере не существует. Раньше было все на клиенте, поэтому в ОФ в модулях можно было такое делать, но если бы такой код был выполнен в регламентном задании, то вывалило бы в ошибку!
---
вариантов попроще много, просто хотелось обойтись наименьшими изменениями стандартного кода, одна строка менялась в процедуре вызова подменю советы в старой редакции бух., в управляемых формах дошел до программного создания реквизитов формы при открытии, их заполнении из регистра сведений, а вот запись измененных данных в регистр через подписку на событие ПриЗаписи реализовать не получается
---
Если обычное приложение, то можно попробовать через ПолучитьФорму, где в параметры формы передать Ключ, ключом будет являться ссылка на документ.
Если управляемые формы, то только на клиенте
---
При таком варианте - никак. Что бы переделать вашу доработку с минимальными изменениями - надо записывать регистр самой формой, добавив процедуру "ПриЗаписи" в модуле формы. Если конфа типовая, то такая процедура скорее всего уже есть. Да, это изменение, но никак иначе. Второй вариант - все же реквизиты свои в объект добавить (в документ а не форму). Отследить их при обновлении гораздо проще чем изменения в модуле формы. Назовите ваши реквизиты с префиксом (правило хорошего тона в разработке) и вы никогда не упретесь в то что ваши реквизиты будут заменены при обновлении. А обработку записи уже легко будет реализовать в подписке (реквизиты появятся в источнике). Ну а логику добавления и обработки реквизитов на форме можно оставить динамическую.
---
Спасибо, уже так и сделал. В таком варианте даже подписка не понадобилась же - реквизиты сами собой сохраняются)
---
да, в самом документе они сохраняются, но если вам надо писать в регистр - то надо либо менять обработчик проведения в модуле объекта, либо в модуле формы "при записи" заполнять регистр. Тут надо еще помнить, что при проведении документа из списка - регистр не будет перезаписываться (т.к. модуль формы не исполняется).
---
в старой редакции регистр и был создан для того, что бы хранить данные вместо реквизитов документа, так что в данной ситуации старые данные из регистра уже были перенесены в документы, а сам регистр - удален.