|   |   | 
| 
 | Обновить Текст | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Куда делись знатоки "системных сообщений" ?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |