Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как обновить данные открытой формы при изменении объекта на сервере
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
logist
Собственно сабж.
Есть открытая форма документа, из нее открывается обработка которая меняет данные документа на сервере, как после возврата в форму документа "перечитать" ее данные?
MATEVI
ВладелецФормы не?
logist
Допустим smile.gif
А дальше? Можно кодом?
MATEVI
Не. Не знаю. Это Ваше УП smile.gif
ЗЫ Но поковыряю для самообразования
ЗЫЫ Но наверно это не верный подход. Наверно тут надо ДанныеФормыВЗначение и ЗначениеВДанныеФормы
Посмотрите УТ11 там вроде такое реализовано

необходимо зарегистрироваться для просмотра ссылки
alex040269
ОбновитьОтображениеДанных() не оно?
logist
В данном случае не оно.
shurik_shurik
Может в обработке при закрытии вызвать метод Оповестить(<ИмяСобытия>, <Параметр>, <Источник>) , а в форме документа слушать это событие
logist
О каком событии оповещать, вот в чем вопрос...
shurik_shurik
О любом, которые Вы захотите. Вот что мне пришлось раз использовать:

В одной форме
Оповестить("ВыбранФайлОбмена",ТекФайлОбмена,ЭтаФорма);


Во второй форме:
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
    Если ИмяСобытия = "ВыбранФайлОбмена" Тогда
        Если ЗначениеЗаполнено(Параметр) Тогда
            ТекЗаява = ЭлементыФормы.СправочникСписок.ТекущиеДанные.Ссылка.ПолучитьОбъект();
                                          ..............
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
Irina_
Может это поможет?))
Я делала аналог механизма изменения цен в документе УстановкаЦен, как в типовой УТ только на УП.

необходимо зарегистрироваться для просмотра ссылки
logist
Цитата(shurik_shurik @ 12.03.12, 19:29) необходимо зарегистрироваться для просмотра ссылки
О любом, которые Вы захотите.

события Перечитать (как кнопочка в форме) увы нету, больше никакие события не катят...

Цитата(Irina_ @ 12.03.12, 19:31) необходимо зарегистрироваться для просмотра ссылки
Может это поможет?))

Увы, эт не то))
5_kopeek
необходимо зарегистрироваться для просмотра ссылки
Ох уж эти мерседесы...
logist
необходимо зарегистрироваться для просмотра ссылки
Много много лет назад люди и не думали что можно на поезде ездить со скоростью 500 км/ч., например.
pablo
1. я бы попытался изменить концептуальный дуализм "форма документа - форма обработки". Т.е. в обоих случаях нужно использовать либо форму документа, либо форму обработки (причем форма обработки мне кажется более привлекательной из-за более полной свободы в действиях с реквизитами).
2. Если же концептуально менять не с руки, тогда имеет смысл не связывать интересуемые реквизиты с элементами формы напрямую, а через некую процедуру ПеречитатьЗначенияРеквизитов, которую можно вызывать и из формы документа, и из формы обработки.
Sharki
Цитата(logist @ 12.03.12, 20:38) необходимо зарегистрироваться для просмотра ссылки
события Перечитать (как кнопочка в форме) увы нету, больше никакие события не катят...


У формы кнопочка Перечитать вызывается методом Прочитать();
Вызывать в форме после вызова обработки. Должно помочь.

У меня была другая ситуация. При записи документа в модуле самого документа вызывалось движение бизнес-процесса который менял документ, как результат в записи запись существовала и на выходе на форму у объекта была другая версия объекта). Решение - вызов метода Прочитать() у объекта(ЭтотОбъект.Прочитать()) после выполнения кода движения бизнес-процесса.

более глупый вариант решения:
после выполнения действия обработки в форме документа получить объект документа с сервера и поместить его в данные формы с помощью метода ЗначениеВДанныеФормы(). По сути метод Прочитать() так и делает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.