Переключение на Главную Страницу Страницы: [1] 2 3 4 ОтправитьПечать
Очень популярная тема (более 25 ответов) Обновление реквизитов на форме (число прочтений - 22748 )
ostap
Junior Member
**
Отсутствует



Сообщений: 32
Зарегистрирован: 31. Мая 2006
Пол: Мужской
Обновление реквизитов на форме
26. Июля 2006 :: 12:35
Печать  
когда-то давно писал об этом на итланде, ответа не дождался, а щас найти не могу
суть вот в чем:
на форме есть ТП и Дерево, плюс несколько
реквизитов - поля ввода и текст
в этих реквизитах при определенных событиях надо менять значения
в текстовых - меняется по РасшФормы.Обновить(), а вот в полях ввода значение меняется, а на форме все равно
видно предыдущее
в текст устанавливаю АтрибутФормы.Заголовок, в поле ввода - АтрибутФормы.Значение

ЗЫ:
кстати, интересно, у всех мыргают реквизиты с установленной привязкой при РасшФормы.Обновить()? Нерешительный
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Обновление реквизитов на форме
Ответ #1 - 26. Июля 2006 :: 12:40
Печать  
Это у тебя, скорее всего, форма списка какая-нибудь. Так? И многострочная часть сделана невидимой. Так?
Тогда это глюк 1С. Когда многострочная часть невидима, она форму криво обновляет.
  

FormEx developer
Наверх
www  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Обновление реквизитов на форме
Ответ #2 - 26. Июля 2006 :: 12:41
Печать  
ostap писал(а) 26. Июля 2006 :: 12:35:
кстати, интересно, у всех мыргают реквизиты с установленной привязкой при РасшФормы.Обновить()? Нерешительный

Переведи...
  

FormEx developer
Наверх
www  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Обновление реквизитов на форме
Ответ #3 - 26. Июля 2006 :: 12:43
Печать  
Цитата:
ostap писал(а) 26. Июля 2006 :: 12:35:
кстати, интересно, у всех мыргают реквизиты с установленной привязкой при РасшФормы.Обновить()? Нерешительный

Переведи...

Моргают. Отказался от РасшФормы.Обновить(). Использую Форма.Обновить()
Или слова "с установленной привязкой" заинтересовали?
Моргают все. Особенно противно табличная часть.
  
Наверх
ICQ  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Обновление реквизитов на форме
Ответ #4 - 26. Июля 2006 :: 12:48
Печать  
vip писал(а) 26. Июля 2006 :: 12:43:
Цитата:
ostap писал(а) 26. Июля 2006 :: 12:35:
кстати, интересно, у всех мыргают реквизиты с установленной привязкой при РасшФормы.Обновить()? Нерешительный

Переведи...

Моргают. Отказался от РасшФормы.Обновить(). Использую Форма.Обновить()

Что значит "моргают"? По этому методу просто посылается сообщение WM_PIANT. Штатное обновление делает в дополнение к этому и обмен данными между внутренними переменными и контролами.
  

FormEx developer
Наверх
www  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Обновление реквизитов на форме
Ответ #5 - 26. Июля 2006 :: 12:53
Печать  
Цитата:
Что значит "моргают"? По этому методу просто посылается сообщение WM_PIANT. Штатное обновление делает в дополнение к этому и обмен данными между внутренними переменными и контролами.

Я понимаю, чего ты хотел добиться этим методом.
Но 1С видимо не перерисовывает валидные области формы и срабатывает качественней.
  
Наверх
ICQ  
IP записан
 
ostap
Junior Member
**
Отсутствует



Сообщений: 32
Зарегистрирован: 31. Мая 2006
Пол: Мужской
Re: Обновление реквизитов на форме
Ответ #6 - 26. Июля 2006 :: 12:55
Печать  
то: АЛьФ
нет, не форма списка и Мн.ч. нету вобще
пока это всего лишь внешняя обработка
кстати, пока там не было дерева - все нормально обновлялось

то: vip
действительно, все моргают, просто у меня привязанные наиболее заметные Улыбка
а вот с Форма.Обновить() - тоже ничего не выходит  Печаль,
даже с Текстом - не меняет заголовок, а дописывает (м.б. это проблема АтрибутФормы?)
приходится делать:
АтрибутФормы="";
АтрибутФормы=НормальныйЗаголовок;
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Обновление реквизитов на форме
Ответ #7 - 26. Июля 2006 :: 13:01
Печать  
Цитата:
а вот с Форма.Обновить() - тоже ничего не выходит  , 
даже с Текстом - не меняет заголовок, а дописывает (м.б. это проблема АтрибутФормы?)
приходится делать:
АтрибутФормы="";
АтрибутФормы=НормальныйЗаголовок;

Код чуть подробней можешь показать?
  
Наверх
ICQ  
IP записан
 
ostap
Junior Member
**
Отсутствует



Сообщений: 32
Зарегистрирован: 31. Мая 2006
Пол: Мужской
Re: Обновление реквизитов на форме
Ответ #8 - 26. Июля 2006 :: 13:07
Печать  
нет, вру, даже так не работает  Злой

вобщем все просто:

Процедура ОбновлениеФормы(сзАтрибутов)
Для ъ=1 По сзАтрибутов.РазмерСписка() Цикл
     ИмяАтрибута="";
     Значение=сзАтрибутов.ПолучитьЗначение(ъ,ИмяАтрибута);
     АтрФормы.УстановитьАтрибут(Форма,ИмяАтрибута);
     Если АтрФормы.Тип=1 Тогда //Текст
           АтрФормы.Заголовок="";
           АтрФормы.Заголовок=Значение;
     ИначеЕсли АтрФормы.Тип=2 Тогда //Поле ввода
           АтрФормы.Значение=Значение;
     КонецЕсли;
КонецЦикла;
     Форма.Обновить(); <- здесь 1,0,пусто - однофигственно
//      РасширениеФормы.Обновить();
КонецПроцедуры

кстати, где-то промелькивало давно уже, что если обновление вызывается из процедур
типа ТабПолеПриАктивизацииЯчейки - возникают проблемы, вот не помню, какое там решение было
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Обновление реквизитов на форме
Ответ #9 - 26. Июля 2006 :: 13:09
Печать  
ostap писал(а) 26. Июля 2006 :: 12:55:
то: АЛьФ
нет, не форма списка и Мн.ч. нету вобще
пока это всего лишь внешняя обработка
кстати, пока там не было дерева - все нормально обновлялось

Дерево видимо всегда?
  

FormEx developer
Наверх
www  
IP записан
 
ostap
Junior Member
**
Отсутствует



Сообщений: 32
Зарегистрирован: 31. Мая 2006
Пол: Мужской
Re: Обновление реквизитов на форме
Ответ #10 - 26. Июля 2006 :: 13:13
Печать  
Да, как создано ПослеОткрытия, так даже не обновлялось
обновление реквизитов нужно после событий:
ПриНажатииЛевойКнопкиНадДеревом
ТабПолеПриАктивизацииЯчейки

сейчас посмотрел: если вызвать из других процедур, Поле ввода обновляется, а
с текстом проблема остается с Форма.Обновить()
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Обновление реквизитов на форме
Ответ #11 - 26. Июля 2006 :: 13:36
Печать  
to ostap
Вот это неправильно.
Значение=сзАтрибутов.ПолучитьЗначение(ъ,ИмяАтрибута);
Посмотри, что оно возвращает.
  
Наверх
ICQ  
IP записан
 
ostap
Junior Member
**
Отсутствует



Сообщений: 32
Зарегистрирован: 31. Мая 2006
Пол: Мужской
Re: Обновление реквизитов на форме
Ответ #12 - 26. Июля 2006 :: 13:40
Печать  
почему неправильно?
все нормально возвращает и даже устанавливает
вот только не показывает Печаль
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Обновление реквизитов на форме
Ответ #13 - 26. Июля 2006 :: 13:43
Печать  
Вот так попробуй.
Код
Выбрать все
Процедура ОбновлениеФормы(сзАтрибутов)
АтрФормы=СоздатьОбъект("АтрибутФормы");
Для ъ=1 По сзАтрибутов.РазмерСписка() Цикл
     ИмяАтрибута="";
//     Значение=сзАтрибутов.ПолучитьЗначение(ъ,ИмяАтрибута);
ИмяАтрибута=сзАтрибутов.ПолучитьЗначение(ъ);
Значение=ИмяАтрибута;
     АтрФормы.УстановитьАтрибут(Форма,ИмяАтрибута);
     Если АтрФормы.Тип=1 Тогда //Текст
	     АтрФормы.Заголовок="";
	     АтрФормы.Заголовок=Значение;
     ИначеЕсли АтрФормы.Тип=2 Тогда //Поле ввода
	     АтрФормы.Значение=Значение;
     КонецЕсли;
КонецЦикла;
     Форма.Обновить();// <- здесь 1,0,пусто - однофигственно
//	РасширениеФормы.Обновить();
КонецПроцедуры
 

  
Наверх
ICQ  
IP записан
 
ostap
Junior Member
**
Отсутствует



Сообщений: 32
Зарегистрирован: 31. Мая 2006
Пол: Мужской
Re: Обновление реквизитов на форме
Ответ #14 - 26. Июля 2006 :: 13:43
Печать  
во, нашел:
http://www.vtools.ru/forum/viewtopic.php?t=127&start=15&sid=4e9a7ca8e7ac4766803a...
только проблемы это не решает... совсем тупой я, наверно  Озадачен
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 4
ОтправитьПечать