Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Обновить Текст

Обновить Текст
Я
   nAPACEHAK
 
10.10.18 - 13:56
Доброго

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

Если с формы выбираем - открыть Реквизит1, изменяем там МойТекст и сохраняем, то на форме как обновить данные Поле1?
    Если ИмяСобытия = "ЗаявкаИзменена" Тогда
        //ЭтаФорма.ОбновитьОтображениеДанных();    

        //ЭтаФорма.ОтобразитьИзменениеДанных(ЭтаФорма.Элементы.ТекстЗаявки, ВидИзмененияДанных.Изменение);

        //ЗначениеВДанныеФормы(Заявка, ЭтаФорма.Элементы.ТекстЗаявки);

        //ЭтаФорма.ОбновитьОтображениеДанных();

        ЭтаФорма.Элементы.ТекстЗаявки.ОбновитьТекстРедактирования();
        КонецЕсли; 

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

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

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

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


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

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

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


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

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

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

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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует