|   |   | 
| 
 | Запись объекта из модуля формы | ☑ | ||
|---|---|---|---|---|
| 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) так я же перед тем как записать форму справочника передал ей переменную с объектом справочника, в которую вносил изменения.. но из БД вроде всё равно старые данные тянутся, так что на добавил запись объекта перед передачей в форму, так работает     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |