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


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

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

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