|   |   | 
| 
 | Запись документа из обработки проведения | ☑ | ||
|---|---|---|---|---|
| 0
    
        Tester 05.09.17✎ 16:50 | 
        Всем привет.
 Так уж случилось, что в обработке проведения документа выполняется код, который изменяет некоторые данные этого документа и записывает его. Как следствие при проведении не по кнопке ОК, а по кнопке Провести после проведения необходимо перечитать данные объекта на форме. Пользователи этого не делают и продолжают работать с формой документа получая в итоге сообщение о необходимости перечитать данные. Есть ли выход из ситуации? | |||
| 1
    
        Джинн 05.09.17✎ 16:52 | 
        Не самое лучшее архитектурное решение. При каждом перепроведении у Вас будут меняться данные в документе.     | |||
| 2
    
        spiller26 05.09.17✎ 16:59 | 
        (0) Используй обновление данных на форме, при проведении.     | |||
| 3
    
        тарам пам пам 05.09.17✎ 17:01 | 
        (0) все равно странно, что объект не перечитывается - при проведении выполняется событие ПередЗаписью и форма должна перечитать объект после транзакции в любом случае.     | |||
| 4
    
        lodger 05.09.17✎ 17:02 | 
        (3) а если ПередЗаписью пустое? или не взводит флаг Модифицированность?     | |||
| 5
    
        spiller26 05.09.17✎ 17:02 | 
        (3) Форма статическая, пока не дашь принка, так и будет отображать.     | |||
| 6
    
        тарам пам пам 05.09.17✎ 17:06 | 
        (3)+ проверил - событие ПриЧтенииНаСервере не вызывается, даже если в ПередЗаписью модифицировать объект. Похоже на косяк платформы. 
 Тогда можно принудительно перечитать объект в ПослеЗаписиНаСервере. | |||
| 7
    
        Tester 05.09.17✎ 17:07 | 
        Забыл сказать, что форма обычная )
 Пробовал выкрутить через Форма.ДокументОбъект.Прочитать(), но тогда нормально работает если проводишь по кнопке Провести и возникает косяк с модифицированностью при проведении по кнопке ОК. | |||
| 8
    
        тарам пам пам 05.09.17✎ 17:09 | 
        (7) там тоже есть событие ПослеЗаписи     | |||
| 9
    
        Tester 06.09.17✎ 10:35 | 
        (8) Спасибо, так и сделал!
 В ПослеЗаписи() модуля формы документа добавил Прочитать(). Теперь при проведении или сохранении без закрытия формы после записи объект перечитывается и отображает все изменения, произошедшие в нем. Почему в платформе нельзя было такое сделать по умолчанию? Обязательно надо пинать форму... | |||
| 10
    
        craxx 06.09.17✎ 10:37 | 
        (1) я даже бы сказал - решение хуже не придумаешь     | |||
| 11
    
        Heckfy 06.09.17✎ 10:39 | 
        (10) Придумаешь. Можно Предупреждение() еще запихнуть. :)     | |||
| 12
    
        Tester 06.09.17✎ 10:42 | 
        (10) (11) А куда пихать код изменения данных объекта, в ПередЗаписью()?     | |||
| 13
    
        craxx 06.09.17✎ 13:30 | 
        (12) именно туда     | |||
| 14
    
        rudnitskij 06.09.17✎ 16:25 | 
        (9) "Почему в платформе нельзя было такое сделать по умолчанию? Обязательно надо пинать форму..." - может потому, что разрабы как-то не ожидали, что данные будут меняться при проведении...
 Все равно, что вы в макдональдсе в момент начала печати чека крикнете "...и еще Бигмак" - вам удивительно, что в чеке бигмак не появился? На момент проведения события ПередЗаписью и ПриЗаписи уже отработали. Что происходит в них - отразится на форме автоматически. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |