Имя: Пароль:
1C
1С v8
Обновить Текст
0 nAPACEHAK
 
10.10.18
13:56
Доброго

На форме есть реквизит1 тип мойсправочник
и есть поле ввода. Поле1. Путь к данным - МойСправочник.МойТекст

Если с формы выбираем - открыть Реквизит1, изменяем там МойТекст и сохраняем, то на форме как обновить данные Поле1?

    Если ИмяСобытия = "ЗаявкаИзменена" Тогда
        //ЭтаФорма.ОбновитьОтображениеДанных();    
        //ЭтаФорма.ОтобразитьИзменениеДанных(ЭтаФорма.Элементы.ТекстЗаявки, ВидИзмененияДанных.Изменение);
        //ЗначениеВДанныеФормы(Заявка, ЭтаФорма.Элементы.ТекстЗаявки);
        //ЭтаФорма.ОбновитьОтображениеДанных();
        ЭтаФорма.Элементы.ТекстЗаявки.ОбновитьТекстРедактирования();
        КонецЕсли;

походу где то я заблудился. не обновляется Поле1 ((
1 Cyberhawk
 
10.10.18
14:10
ОбновитьОтображениеДанных вроде только для самих реквизитов формы катит (т.е. для реквизитов "первого уровня")
2 Cyberhawk
 
10.10.18
14:10
Попробуй Прочитать()
3 nAPACEHAK
 
10.10.18
14:17
(2) в смысле в обработке оповещения ЭтаФорма.Прочитать ();
я так тоже пробовал
{ВнешняяОбработка.ДСУ_ЗаявкаНаАвтомобиль.Форма.ФормаЗаявки.Форма(12)}: Метод объекта не обнаружен (Прочитать)
        ЭтаФорма.Прочитать ();
4 DrWatson
 
10.10.18
14:18
Сделал кнопку. Там
ЭтаФорма.ОбновитьОтображениеДанных();
Всё работает.
5 nAPACEHAK
 
10.10.18
14:29
(4) сделал кнопку
&НаКлиенте
Процедура Команда1(Команда)
    ЭтаФорма.ОбновитьОтображениеДанных();
КонецПроцедуры
всё работает

Перенес в обработку оповещения
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
    Если ИмяСобытия = "ЗаявкаИзменена" Тогда
        ЭтаФорма.ОбновитьОтображениеДанных();
    КонецЕсли;
КонецПроцедуры
Нифига не работает :( Хотя в обр.опов. по точке останова тормозится на обновить

Где собака порылась?
6 Cool_Profi
 
10.10.18
14:31
Попробуй через разовую обработку ожидания с задержкой на полсекунды
7 nAPACEHAK
 
10.10.18
14:33
блин. туплю (((

Оповестить () перед записью вызывалось
8 nAPACEHAK
 
10.10.18
14:38
хотя нифига (((
9 Cyberhawk
 
10.10.18
14:47
(3) Основной реквизит формы есть?
10 nAPACEHAK
 
10.10.18
14:48
во. вроде победил. Пока задержку не поставил откуда то старые данные брались


&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
    Если ИмяСобытия = "ЗаявкаИзменена" Тогда
        ПодключитьОбработчикОжидания("ОбновитьДанныеНаФорме", 0.1, Истина);
    КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьДанныеНаФорме()
    ЭтаФорма.ОбновитьОтображениеДанных();    
КонецПроцедуры


&НаКлиенте
Процедура Команда1(Команда)
    ЭтаФорма.ОбновитьОтображениеДанных();
КонецПроцедуры


Вот если без задержки а сразу - то данные не обновляются
Только если честно так и не понял почему так. Может подскажет кто?
11 НЕА123
 
10.10.18
14:50
Реквизит1 = Реквизит1
до обновить()
12 Cyberhawk
 
10.10.18
14:59
С однократным обработчиком ожидания - это фича
13 sitex
 
naïve
10.10.18
15:08
(12) Что за фича такая ? поясните если не сложно.
14 DrWatson
 
10.10.18
15:10
(10) Ну, откуда он может брать эти данные. Их КЭШа, уж, наверное. Предполагаю, что пока они явно не придут с сервера, то так и будет использоваться строе значение.
Вот такой эксперимент:

&НаКлиенте
Процедура КомандаИзменитьПредставление(Команда)
    Сообщить(Реквизит1);
    ИзменитьПредставлениеНаСервере(Реквизит1);
    Сообщить(Реквизит1);
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ИзменитьПредставлениеНаСервере(СсылкаНаОбъект)

    Объект = СсылкаНаОбъект.ПолучитьОбъект();
    Объект.Наименование = Объект.Наименование + "1";
    Объект.Записать();

КонецПроцедуры

Сколько раз не жми кнопку, сообщать будет всегда одно и тоже. Можно даже из обработки выйти, зайти - в поле формы и в сообщить будет старое значение. Только после явного перевыбора, оно поменяется.
15 Cool_Profi
 
10.10.18
15:10
(13) Должно отдаться управление, чтобы оно передалось циклу обработки сообщений приложения.
Тут надо просто знать азы программирования в Windows
16 Cyberhawk
 
10.10.18
15:20
(13) Когда какая-то неведомая куета происходит с формой на клиенте - не так как ожидаешь и вроде бы все должно быть нормально - то бывает полезно разбить исполнение клиенткого кода с помощью вот такого однократного обработчика ожидания
17 sitex
 
naïve
10.10.18
15:31
(15) Я просил более развернуто, если знаете. А не кому что надо знать и какие азы. такие происходит и не только в УФ но и на обычных формах, и было замечено даже в серверной части код, когда переменная уже должна быть с данными но их нет, а появляются только после секундной задержки.
18 Cool_Profi
 
10.10.18
15:33
(17) Для начала вот это прочитай
https://rsdn.org/article/baseserv/api32.xml
19 Cyberhawk
 
10.10.18
15:37
(18) Послал так послал )
20 sitex
 
naïve
10.10.18
15:38
(18) Как это относиться к серверной части ?  Клиентская часть меня не интересует.
21 Cool_Profi
 
10.10.18
15:39
(20) А что, на сервере системные сообщения обрабатывать уже не надо?
22 sitex
 
naïve
10.10.18
15:45
(21)К примеру я не передаю данные на форму. Они как появляются в серверной части кода , так там и остаются. Какие к примеру по вашему там системные сообщения обрабатываются?
23 sitex
 
naïve
10.10.18
15:50
(19) Было бы смешно если бы было не так грустно. Серверная часть стоит на linux-е.
24 sitex
 
naïve
10.10.18
16:09
Куда делись знатоки "системных сообщений" ?
Закон Брукера: Даже маленькая практика стоит большой теории.