Имя: Пароль:
1C
1C 7.7
v7: Активизировать("") В данной формуле не может быть вызвана эта процедура(функция)
0 oslokot
 
26.11.12
13:21
Документ, табличная часть.
Управляю видимостью некоторых колонок флажком.
Хочется спозиционироваться на колонку после включения ее видимости, но получаю сабж.
Как это обойти?
1 Ork
 
26.11.12
13:23
(0) Нельзя такие весчи вызывать из предопределенных процедур.

Пока не завершилось выполнение предопределенной - система не может перевести фокус.
2 oslokot
 
26.11.12
13:24
(1) да, это я понимаю, а как извернуться?
3 Godofsin
 
26.11.12
13:25
(2)Вызови непредопределенную
4 Ork
 
26.11.12
13:25
(2) Убирать в процедуры, вызываемые нажатиями на кнопки.
5 1Сергей
 
26.11.12
13:25
Ложное закрытие, не?
6 oslokot
 
26.11.12
13:27
(4) у меня так и есть. Вот процедура (упрощенно), вызываемая с флажка:
// ===============================
Процедура ПриВыбореВидимостиГрузополучателя()
   Форма.Грузополучатель.Видимость(1);
   Активизировать("Грузополучатель",);
КонецПроцедуры // ПриВыбореВидимостиГрузополучателя
(5) не понял
7 Voronve
 
26.11.12
13:28
(1) Псдеж. Посмотри как сделано в ТиС типовом ПриЗаписи в Контрагентах
8 1Сергей
 
26.11.12
13:29
(6)>> не понял

Гоголь в помощь
9 oslokot
 
26.11.12
13:31
(8) ааа, круто, ща попробую сей изврат
10 Ork
 
26.11.12
13:31
(6) Вместо флажка - положи кнопку. Для пущего понту можещь менять текст заголовка. Типа "Показать грузоплучаетля" / "скрыть грузополучателя".
11 Ork
 
26.11.12
13:33
+(10) Такой себе "графический чекбокс".
12 oslokot
 
26.11.12
13:44
(8) работает! спасибо, не знал.
Правда тормозит активизация, если в документе много строк
13 Ёпрст
 
гуру
26.11.12
13:54
(0) почитай первоисточники, что ли
http://my1c-archive.narod.ru/knowhow/getskod.html
14 oslokot
 
26.11.12
13:59
(13) благодарю! примерно так и сделал
15 oslokot
 
26.11.12
14:11
я тут подумал... разрешите использовать формекс?
Процедура ПослеОбновленияФормы()
   Если ВидГрузополучатель = 1 Тогда
       Активизировать("Грузополучатель",0);
   КонецЕсли;
КонецПроцедуры

Работает, гораздо быстрее ложного закрытия формы.
16 Ёпрст
 
гуру
26.11.12
14:12
(15) воткни туда сообщить и ужаснись, что ты натворил
17 oslokot
 
26.11.12
14:22
(16) согласен. А если так:

Процедура ПослеОбновленияФормы()
   // Если мы стоим на флажке "ВидГрузополучатель"
   Если Форма.АктивныйЭлемент() = "ВидГрузополучатель" Тогда
       Если ВидГрузополучатель = 1 Тогда
           Активизировать("Грузополучатель",0);
       КонецЕсли;
   КонецЕсли;
   // В остальных случаях, мимо
КонецПроцедуры