Обновление данных в документе формы

1. gubar 280 12.11.18 16:28 Сейчас в теме
Доброго времени суток. Подскажите пожалуйста ответ на вопрос.

Есть документ, есть кнопка которая открывает форму обработки.
На клиенте в открытой форме обработки получаю через владельца формы ссылку на документ
Передаю эту ссылку в серверную процедуру
В серверной процедуре получаю объект документа (Получитьобъект())
Вношу программно некие измерения в документ.

Перехожу в документ, измененные данные не отображаются, закрываю, открываю документ, данные отображаются.

Как можно реализовать обновление данных сразу после записи? Или возможно я использую не тот подход?

Заранее спасибо за помощь!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
18. spacecraft 12.11.18 17:22 Сейчас в теме
(1) УФ?
ОбновитьОтображениеДанных
19. gubar 280 12.11.18 17:49 Сейчас в теме
(18)

ВладелецФормы. Отображение данных Не помогло.
2. vadim1011985 100 12.11.18 16:30 Сейчас в теме
Вызвать ОповеститьОбИзменении (ссылка на изменяемый объект)
5. gubar 280 12.11.18 16:35 Сейчас в теме
(2)
ОповеститьОбИзменении


Попробую, спасибо.

Не работает)
3. accounting_cons 763 12.11.18 16:31 Сейчас в теме
Не надо получать объект. Работайте с контекстом формы владельца.
4. gubar 280 12.11.18 16:34 Сейчас в теме
(3)

С контекстом формы владельца? Можно пример?
6. accounting_cons 763 12.11.18 16:40 Сейчас в теме
У вас же есть ВладелецФормы.. Этого достаточно.
Посмотрите в отладчике, что через него доступно.
Смысл в том, что вы заполняете форму, а что дальше с этим делать - решает пользователь. Он может закрыть без сохранения - и все пропадет. Или сохранить изменения, тогда это будет сделано естественным образом, ничего перерисовывать не придется.
7. gubar 280 12.11.18 16:41 Сейчас в теме
(6)

Да это все понятно, смысл в том что когда данные пользователь уже перенес в документ, а документ открыт, в нем ничего не отображается пока не закроешь и не откроешь вновь документ.

ОповеститьОбИзменении не помогло
10. alex-l19041 8 12.11.18 16:58 Сейчас в теме
(7)
а документ открыт, в нем ничего не отображается
- как вариант: при открытии обработки закрывать форму документа, после заполнения закрыть форму обработки и открыть форму документа...
11. gubar 280 12.11.18 17:01 Сейчас в теме
(10)

Вот я и хочу понять есть возможность без закрытия и открытия это делать?
16. independ 1521 12.11.18 17:16 Сейчас в теме
(7)
ВладелецФормы.Прочитать();
17. gubar 280 12.11.18 17:20 Сейчас в теме
21. independ 1521 12.11.18 18:00 Сейчас в теме
(17) обновление объекта в УФ
22. accounting_cons 763 12.11.18 18:21 Сейчас в теме
(16) Тогда пропадет все то, что успел ввести в форму пользователь.
23. independ 1521 12.11.18 18:41 Сейчас в теме
(22) пропадет конечно, но если я правильно понял, по Получитьобъект(), то что-то пишется, а потом с большой долей вероятности идет Записать(), и логично чтобы обновить нужно вызвать Прочитать().
26. accounting_cons 763 12.11.18 18:55 Сейчас в теме
(23) Обработки заполнения работают на клиенте, берут данные из формы, обрабатывают их как-то и снова записывают в форму. Все на клиенте.
27. independ 1521 12.11.18 19:32 Сейчас в теме
(22) не пропадет, при вызове обработки заполнения при условии модифицированность = истина, будет диалог, так что можно писать и на сервере, а потом прочитать()
Прикрепленные файлы:
28. accounting_cons 763 12.11.18 19:47 Сейчас в теме
(27)Я имею в виду, что пользователь сначала в форме документа вводит кучу информации - например, заполняет шапку - склад, контрагент и т.д. Потом, не сохраняя изменений, вызывает обработку заполнения табличной части, которая командой Прочитать() перезапишет шапку пустыми значениями, но зато заполнит табличную часть и закроется. Это не есть гуд.
29. independ 1521 12.11.18 20:20 Сейчас в теме
(28) ввод любого реквизита приведет к модифицированности, и вызов внешней обработки заполнения будет не возможен, пока объект не будет записан, т.е.ничего не пропадет
31. accounting_cons 763 13.11.18 07:00 Сейчас в теме
(29)Да, верно. Но обработка заполнения не блокирует форму владельца, и ничто не мешает пользователю ввести туда что-то уже после открытия обработки.
8. accounting_cons 763 12.11.18 16:50 Сейчас в теме
Вот, например, код из обработки заполнения документа-основания в заказе поставщику, УТ 11.3.

ВладелецФормы.Объект.ДокументОснование = ЗаказКлиента;

ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(ВладелецФормы.Элементы, "ГруппаОснование", "Видимость", Истина);

ВладелецФормы.Модифицированность = Истина;

------
Все моментально отображается на форме документа, никаких дополнительных действий делать не пришлось.
9. gubar 280 12.11.18 16:53 Сейчас в теме
(8)

Спасибо, попробую.


К сожалению не помогло. Модифицированность выставил в истина, на форме элемент установлен Видимость = истина;
12. accounting_cons 763 12.11.18 17:07 Сейчас в теме
(9) Процедура, в которой выполняются все действия, должна быть &НаКлиенте.
13. gubar 280 12.11.18 17:09 Сейчас в теме
(12)

Все на клиенте за исключением изменения данных в документе на сервере.
14. accounting_cons 763 12.11.18 17:13 Сейчас в теме
(13) Значит это не тот владелец формы.
15. gubar 280 12.11.18 17:14 Сейчас в теме
(14)

на клиенте
СсылкаНаДокумент = ЭтотОбъект.ВладелецФормы.Объект.Ссылка;


на сервере
СсылкаНаДокумент.ПолучитьОбъект();
ТабличнаяЧасть = Документ.Реестр;


Все получает и изменяет.
20. accounting_cons 763 12.11.18 17:53 Сейчас в теме
(13)
Все на клиенте за исключением изменения данных в документе на сервере.


- а зачем что-то менять в документе на сервере?
24. gubar 280 12.11.18 18:46 Сейчас в теме
(20)
Правильнее на Клиенте?
25. accounting_cons 763 12.11.18 18:53 Сейчас в теме
(24)Только на клиенте. Тогда, во-первых, все будет отображаться на форме, во-вторых, ничего не потеряется из того, что пользователь вввел, и будет естественным и простым переход обратно в форму владельца, ее сохранение и закрытие.

И никакого ПолучитьОбъект(). Только ВладелецФормы. Что доступно через Владельца формы, то и можно изменять.
30. gubar 280 13.11.18 04:52 Сейчас в теме
Всем спасибо за помощь, оставил все через владельцаформы.
Оставьте свое сообщение

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