Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Работа с атрибутом формы без идентификатора (число прочтений - 3588 )
pavel_tr
Senior Member
****
Отсутствует



Сообщений: 278
Местоположение: Казань
Зарегистрирован: 14. Октября 2006
Пол: Мужской
Работа с атрибутом формы без идентификатора
15. Мая 2008 :: 09:54
Печать  
Проблема в следующем: есть документ, в нём в ПриНачалеРедактированияСтроки() для некоторых текстовых колонок многострочной части выполняются действия, в частности открывается форма связанного документа.
При открытии формы документа если текстовым колонкам назначен идентификатор, формулы выполнялись несколько раз, что ощутимо подтормаживало открытие формы. Без идентификаторов формулы выполняются один раз. Теперь в ПриНачале... Форма.ТекущаяКолонка(), само собой, возвращает пустую строку.
Вопрос: как отловить на какой колонке многострочной части документа кликнул пользователь если идентификатор колонки не заполнен? Используется FormEx, пылался с его помощью как-то решить проблему, но подходящего метода не нашёл. Подскажите кто знает пожалуйста!
  
Наверх
 
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Работа с атрибутом формы без идентификатора
Ответ #1 - 28. Мая 2008 :: 04:25
Печать  
М-дя.. К сожалению РасширениеФормы.ПолучитьАтрибутПоКоординатам( Лево, Верх ) возвращает значение типа АтрибутФормы, но значение - МногострочнаяЧасть (тип 16). Если бы возвращался реально атрибут текущей ячейки - можно было бы выловить, что за колонка, по заголовку, примерно так:

Код
Выбрать все
перем Верх, Лево, Низ, Право;
рф = СоздатьОбъект( "РасширениеФормы" );
рф.УстановитьФорму( Форма );
рф.ПолучитьКоординатыТекущейЯчейки( "МногострочнаяЧасть", Верх, Лево, Низ, Право );
аф = рф.ПолучитьАтрибутПоКоординатам( Лево, Верх );
Если ( аф.Заголовок = "ЗаголовокНужнойКолонки" ) Тогда
   ... 


Но - упс :
Цитата:
аф.Заголовок="МногострочнаяЧасть"
аф.Тип = 16

вместо
Цитата:
аф.Заголовок="МояКолонкаБезИдентификатора"
аф.Тип = 9

Печаль

АЛьФ, это баг или фича?

(Проверял на 2.0.5.86)
  
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Работа с атрибутом формы без идентификатора
Ответ #2 - 28. Мая 2008 :: 04:35
Печать  
Сдается мне, что это фича, т.к. Атрибутом формы в данном случае является МногострочнаяЧасть, а колонка - это атрибут этого атрибута. Т.е. хоть эта колонка и может добавляться командой "ДобавитьАтрибут", но полноценным и самостоятельным Атрибутом она не является.
  
Наверх
ICQ  
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Работа с атрибутом формы без идентификатора
Ответ #3 - 28. Мая 2008 :: 04:45
Печать  
У меня аналогичное очуччение. Однако код
Код
Выбрать все
получен = рф.НайтиАтрибут( 1, 9 );
Пока ( получен=1 ) Цикл
	аф = рф.ТекущийАтрибут();
	Сообщить( "" + типЗначенияСтр(аф) + " (" + аф.Тип + ") " + аф.Заголовок );
	получен = рф.ПолучитьСледующийАтрибут();
КонецЦикла; 


Вполне себе пашет, и дает доступ к этим самым "неидентифицированным" колонкам:
Цитата:
АтрибутФормы (9) к1
АтрибутФормы (9) к2
АтрибутФормы (9) к3

Жаль, не говорит, нет ли среди них курсора Улыбка
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Работа с атрибутом формы без идентификатора
Ответ #4 - 28. Мая 2008 :: 04:51
Печать  
Salimbek писал(а) 28. Мая 2008 :: 04:35:
Сдается мне, что это фича

+1
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Работа с атрибутом формы без идентификатора
Ответ #5 - 28. Мая 2008 :: 06:37
Печать  
Вот получал двумя способами :
Код
Выбрать все
// делай "Раз"
рф = СоздатьОбъект( "РасширениеФормы" );
рф.ПолучитьКоординатыТекущейЯчейки( "МногострочнаяЧасть", лево, верх, ширина, высота );
аф1 = рф.ПолучитьАтрибутПоКоординатам( лево, верх );

// делай "два"
рф = СоздатьОбъект( "РасширениеФормы" );
аф2 = рф.ПолучитьАтрибут("МногострочнаяЧасть");
 

аф1 и аф2.

Они одинаковые. То есть через оба АтрибутаФормы можно управлять видимостью, положением и прочими свойствами МногострочнойЧасти.

Но, скажите мне, кто-нибудь реально использует эту возможность *именно* с Атрибутом полученным по координатам?
Я почему-то сомневаюсь.
Или таки фича?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Работа с атрибутом формы без идентификатора
Ответ #6 - 28. Мая 2008 :: 06:57
Печать  
Да, это фича, сделанная Алексеем как раз для подобных целей.
Пользуйтесь Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать