|
Запись объекта из модуля формы | ☑ | ||
---|---|---|---|---|
0
seraf
20.12.19
✎
14:20
|
Я что-то порядок не помню.
Если из модуля формы делаю ЭтотОбъект.Записать(), это же приводит к записи формы и по идее её основного реквизита, спр.объект. А если до этого изменил СпрОбъект в коде, то я должен явно передать Объект через ЗначениеВДанныеФормы чтобы этот измененный, но еще не записанный объект обновился и для УФ, это правильный подход? |
|||
1
Momus
20.12.19
✎
14:29
|
(0) Я правильно понимаю, что есть какой-то объект СпрОбъект, который меняется в коде, и есть независимый от него, но такого же типа, основной реквизит формы?
|
|||
2
seraf
20.12.19
✎
14:47
|
Короче я в модуле формы справочника.
У него основной реквизит СправочникОбъект. Далее хочу изменить некоторые данные объекта. Если меняю непосредственно в БД, то ошибка о несоответсвии форме. Правильно как менять, передать СправочникОбъект через ДанныеФормыВ значение, изменить, вернуть через ЗначениеВДанныеФормы и далее записать форму, это должно поместить всё данные в БД? или надо было записать объект до ЗначениеВДанныеФормы |
|||
3
Momus
20.12.19
✎
14:59
|
(2) для этого, если не ошибаюсь, есть метод формы "ОбновитьОтображениеДанных". Можно в СП почитать о нем
|
|||
4
seraf
20.12.19
✎
15:21
|
(3) вижу такое, да.
Так а когда форма открыта, она знает только ссылку на свой объект. Когда я делаю ДанныеФормыВЗначение(Объект, Тип) что происходит, то же что и при Объект.Ссылка.ПолучитьОбъект()? После определенные манипуляции с объектом и могу вернуть обновленное состояние с помощью ЗначениеВДанныеФормы, либо ОбновитьОтображениеДанных примерно то же сделает? Вроде всё получилось, так для понимания разницы спрашиваю, как правильнее |
|||
5
RomanYS
20.12.19
✎
15:28
|
(2) Зачем ДанныеФормыВзначение, ЗначениеВДанныеФормы?
Просто меняешь Объект(реквизит форму) и "записываешь форму" |
|||
6
Cyberhawk
20.12.19
✎
15:29
|
"После определенные манипуляции с объектом и могу вернуть обновленное состояние с помощью ЗначениеВДанныеФормы, либо ОбновитьОтображениеДанных примерно то же сделает?" // Прочитать()
|
|||
7
seraf
20.12.19
✎
15:35
|
(5) не знаю, тренируюсь, по разному пробую, а в каких случаях эти методы использовать тогда
|
|||
8
RomanYS
20.12.19
✎
15:37
|
(7) Если тебе нужно вызвать методы объекта (ДокументОбъект). Для непосредственного изменения полей они не нужны - просто меня данные формы
|
|||
9
seraf
20.12.19
✎
15:39
|
в общем я могу с формы на сервере менять её объект напрямую и запись формы будет эквивалентна записи объекта в БД
(8) да кстати процедурку в модуле объекта хочу вызвать, значит в этом случае через ДанныеФормыВЗначение |
|||
10
RomanYS
20.12.19
✎
15:45
|
(9)
1. Да (при этом не получишь ошибки не соответствия..) 2. Да |
|||
11
seraf
20.12.19
✎
16:19
|
Благодарю
|
|||
12
singlych
20.12.19
✎
16:20
|
Че-то ты там мутишь...
Надеюсь, понимаешь, что данные об элементе справочника в БД, объект справочника, объект-основной реквизит формы справочника и сам объект формы справочника - это все немного разные вещи. Запись формы это не то же самое что запись объекта. Ну то есть, при записи формы с основным реквизитом, конечно, произойдет запись объекта (при этом того экземпляра объекта, который подразумевается основным реквизитом, а не какого-нибудь левого экземпляра, который ты мог получить хз где), но не наоборот. Ну плюс в форме при записи еще может много чего происходить чего не происходит при записи объекта. Если запишешь объект справочника, данные объекта лягут в БД, но форма про это ничего знать не будет (пока не попытаешься записать эту форму и она не заругается). Если запишешь форму справочника, данные объекта из формы лягут в БД, но про это ничего не узнает твоя переменная с объектом справочника. Если хочешь синхронизировать форму справочника или объект справочника с данными из БД, то есть метод Прочитать (а в форме еще выполнится ПриЧтенииНаСервере и все такое). Если хочешь синхронизировать реквизит формы с объектом справочника, то есть ЗначениеВРеквизитФормы или там ЗначениеВДанныеФормы. |
|||
13
seraf
20.12.19
✎
16:30
|
(13) спасибо за подробный ответ!
|
|||
14
seraf
20.12.19
✎
16:44
|
Но когда у меня на руках измененный, но не записаный в БД СправочникОбъект и я отдают его в форму через ЗначениеВДанныеФормы и после в форме делаю ЭтотОбъект.Записать(), СправочникОбъект должен же записаться?
|
|||
15
seraf
20.12.19
✎
16:46
|
судя по моему примеру нет..
|
|||
16
singlych
20.12.19
✎
16:50
|
(14) Не должен. Плохо читал. "Если запишешь форму справочника, данные объекта из формы лягут в БД, но про это ничего не узнает твоя переменная с объектом справочника."
|
|||
17
singlych
20.12.19
✎
16:52
|
Действуют разные экземпляры объектов, между ними нет никакой трансцендентой связи, это тебе не запутанные кварки.
|
|||
18
seraf
20.12.19
✎
18:06
|
(16) так я же перед тем как записать форму справочника передал ей переменную с объектом справочника, в которую вносил изменения.. но из БД вроде всё равно старые данные тянутся, так что на добавил запись объекта перед передачей в форму, так работает
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |