Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Вопрос по обновлении элемента управляемой формы

Вопрос по обновлении элемента управляемой формы
Я
   AceVi
 
28.03.19 - 10:10
Я в курсе что при изменении данных реквизитов формы ее надо обновить.
НО, вот нюанс:
на форме есть декорация(надпись) - у ней заголовок. этот заголовок меняется внутри процедуры выбора файла
. и пока процедура не завершена - заголовок не меняеться. при этом если на форме есть декорация (картинка) то в этом же коде меняем картинку и она меняеться прям в момент выполнения кода.
Вывод - декорация картинка меняеться сразу как выполняем код , а декорация надпись только по окончании всей процедуры.
Это так? я прав или нет? и как верно выполнить изменяющийся текст\картинку на форме при нужных действиях, а в нашем случае во время действия(во время выбора файла).
 
 
   oslokot
 
1 - 28.03.19 - 10:14
Как выбирается файл, асинхронно? Тогда все действия производить в процедуре завершения выбора
   AceVi
 
2 - 28.03.19 - 10:24
(1) Вот так
ЭтаФорма.Элементы.КартинкаЗагрузка.Картинка = библиотекакартинок.Удалить;
    ЭтаФорма.Элементы.НадписьИнфо.Заголовок = "Файл не загружен";
    
    ЭтаФорма.ОбновитьОтображениеДанных(ЭтаФорма.Элементы.НадписьИнфо);
    
    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла( РежимДиалогаВыбораФайла.Открытие );
    ДиалогОткрытияФайла.ПолноеИмяФайла = "";
    ДиалогОткрытияФайла.Заголовок = "Выберите файл";
    Фильтр = "Microsoft Excel 97/2000/XP(*.xls;*.xlsx)|*.xls;*.xlsx";
    ДиалогОткрытияФайла.Фильтр = Фильтр;
    
    Если  ДиалогОткрытияФайла.Выбрать() Тогда
        ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла;
        Загрузить(ПутьКФайлу);
    КонецЕсли;


Как видим загрузка файла происходит сразу. надпись(ЭтаФорма.Элементы.НадписьИнфо.Заголовок) обновиться только после завершении процедуры Загрузить.
   oslokot
 
3 - 28.03.19 - 10:30
Вместо Загрузить()

ЭтаФорма.Элементы.НадписьИнфо.Заголовок = "файл еще грузится"
ПодключитьОбработчикОжидания("Загрузить",0.1, Истина)
   Rovan
 
4 - 28.03.19 - 10:33
   AceVi
 
5 - 28.03.19 - 10:49
(3) так работает как надо, спасибо
(4) спасибо, я читал, просто везде "говорят" что асинхронные лучше не использовать - а то в тонком клиенте могут быть проблемы.

я даже встречал в ерп 2.0 в свое время в стандартной конфигурации, документ не проводился, было именно из-за асинхронного кода.
причину ошибки тогда так и не выяснил.
теперь для работы\загрузки файла использовать строго асинхронные методы?
   oslokot
 
6 - 28.03.19 - 11:00
Я бы длительной операцией все это обстряпал. А пока файл грузится крутится гифка-бублик
   AceVi
 
7 - 28.03.19 - 11:50
(6) А можешь подсказать как сделать? потому что файл действительно грузиться может и больше минуты.
   oslokot
 
8 - 28.03.19 - 11:53
В двух словах не расскажешь, лучше почитай https://its.1c.ru/db/v8std/content/2149184291/hdoc
   Mort
 
9 - 28.03.19 - 11:56
Лучше в таких случаях использовать не декорацию, а поле формы с видом "Надпись".

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