Переключение на Главную Страницу Страницы: 1 [2] 3 4  ОтправитьПечать
Очень популярная тема (более 25 ответов) ДобавитьАтрибут (число прочтений - 12640 )
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут
Ответ #15 - 06. Октября 2010 :: 07:45
Печать  
RuporAbsurda писал(а) 06. Октября 2010 :: 07:39:
У меня тоже переключает фокус ввода, при этом поле остается серым и значение, которое в нем записано не появляется. В этот весь трабл. Причем, если щелкнуть на кнопке выбора мышью, поле становится белым и появляется значение!

стандартный реквизит внешнего отчета ( созданный в конфирураторе ) правильно реагирует на метод активизировать.
Твои реквизиты созданные динамически чем то отличаются от стандартных.
Либо надо выявлять и устранять эти отличия
Либо надо писать метод аналогичный Активизировать который будет переключать фокус ввода не динамически созданные реквизиты.
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: ДобавитьАтрибут
Ответ #16 - 06. Октября 2010 :: 07:57
Печать  
Давайте разберемся, что такое фокус ввода. Если курсор находится в поле, но поле не активно - это считается сфокусированным на этом реквизите или нет.
Тут проблема с разрешением редактирования, т.е. с клавиатуры после создания ввести ничего нельзя, только кнопкой выбора.
Пока не соображу как это можно исправить.
  
Наверх
 
IP записан
 
nicolas
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Зарегистрирован: 24. Мая 2006
Re: ДобавитьАтрибут
Ответ #17 - 06. Октября 2010 :: 08:06
Печать  
Скорее всего это фича Formex. Еще обнаружил. Если есть реквизит справочника, но он не выводился на форме, и его ставим динамически, то позволяет делать все, но не сохраняет. Проверял разные DLL остановился на 69-м.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут
Ответ #18 - 06. Октября 2010 :: 08:23
Печать  
RuporAbsurda писал(а) 06. Октября 2010 :: 07:57:
Давайте разберемся, что такое фокус ввода. Если курсор находится в поле, но поле не активно - это считается сфокусированным на этом реквизите или нет.
Тут проблема с разрешением редактирования, т.е. с клавиатуры после создания ввести ничего нельзя, только кнопкой выбора.
Пока не соображу как это можно исправить.

если поле курсор перескакивает то элемент находиться в поле ввода.
При этом на этом элементе может быть как запрещен так и разрешен ввод ( для стандартного элемента флаг СделатьНедоступным )
Так вот Активизировать отвечает только за перемещение фокуса ввода.( только что проверил тест тот что выше работает для недоступного реквизита )
по каким причинам недоступен твой реквизит это уже второй вопрос.
Может тебе надо сделать так
Форма.ИмяРеквизита.Доступность(1); перед тем как выполнять
метод активизировать?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут
Ответ #19 - 06. Октября 2010 :: 08:25
Печать  
nicolas писал(а) 06. Октября 2010 :: 08:06:
Скорее всего это фича Formex. Еще обнаружил. Если есть реквизит справочника, но он не выводился на форме, и его ставим динамически, то позволяет делать все, но не сохраняет. Проверял разные DLL остановился на 69-м.

так конечно этот же реквизит воспринимается 1c программой как реквизит формы а не как реквизит справочника(документа).
Вот и не сохраняется.
Так не сложно же самому сделать проверку и сохранить или вообще как-то избегать такого использования.
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: ДобавитьАтрибут
Ответ #20 - 06. Октября 2010 :: 08:34
Печать  
Вообщем пришлось сделать через ж...

СсылкаНовыйАтрибут=Форма.ПолучитьАтрибут("Z"+ИндКартинки);
СсылкаНовыйАтрибут.Редактирование(1);

нО все равно записаное значение не отображается  Злой

ФУ ну вроде пока поборол
Вот это не катит :
     ФормаРасш.Обновить();
Нужно:
             Форма.Обновить();

Одно из двух или нужно что-то в formex поправить, или существует какой то не описанный в мануале метод.

Теперь еще одни грабли тип числа по умолчанию 1.0 т.е выставить,  например, 34.45 невозможно!   Злой Злой

Снова решать пришлось через тоже место
СсылкаНовыйАтрибут.НазначитьТип("Число",10,0);

Вопрос к разработчикам - а нельзя ли это сделать непосредственно в formex?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ДобавитьАтрибут
Ответ #21 - 06. Октября 2010 :: 09:40
Печать  
Ты всё это делаешь через ДобавитьАтрибут ?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ДобавитьАтрибут
Ответ #22 - 06. Октября 2010 :: 09:48
Печать  
Нормально всё работает:
Код
Выбрать все
Процедура Сформировать()
	РасшФ = СоздатьОбъект("РасширениеФормы");
	РасшФ.УстановитьФорму(Форма);
	Атр = РасшФ.ДобавитьАтрибут("Вася",2,"Число");
	Атр.ИмеетКнопкуВыбора =1;
	Атр.Значение = 34.5002;
	СсылкаНовыйАтрибут=Форма.ПолучитьАтрибут("Вася");
	СсылкаНовыйАтрибут.Редактирование(1);
	СсылкаНовыйАтрибут.НазначитьТип("Число",10,5);
	Активизировать("Вася",0);
КонецПроцедуры 

  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: ДобавитьАтрибут
Ответ #23 - 06. Октября 2010 :: 09:58
Печать  
Это то и у меня работает, вопрос в том, чтобы этого добиться сразу при создании атрибута, ну хотя-бы задать параметры числа.
Типа того
Атр = РасшФ.ДобавитьАтрибут("Вася",2,"Число",10,2);
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут
Ответ #24 - 06. Октября 2010 :: 10:00
Печать  
RuporAbsurda писал(а) 06. Октября 2010 :: 09:58:
Это то и у меня работает, вопрос в том, чтобы этого добиться сразу при создании атрибута, ну хотя-бы задать параметры числа.

Тебе дают универсальный инструмент, делай с ним что хочешь.
  

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут
Ответ #25 - 06. Октября 2010 :: 10:07
Печать  
в als файле есть методы Видимость и доступность ( свойства на чтение и запись )
Код
Выбрать все
РасшФ = СоздатьОбъект("РасширениеФормы");
РасшФ.УстановитьФорму(Форма);
Атр = РасшФ.ДобавитьАтрибут("Вася",2,"Число");
Атр.Доспупность =1;
Атр.Видимость = 1; 


так что все что нужно уже есть
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: ДобавитьАтрибут
Ответ #26 - 06. Октября 2010 :: 10:07
Печать  
Как раз он не универсальный. Ну да бог с ним. Этот вопрос хоть криво, но решен.
Меня сейчас больше волнует перетаскивание картинок
Код
Выбрать все
Процедура ПриДвиженииМыши(сост, X, Y)
Если (сост=1) и (ПустоеЗначение(ИндКартинки)=0) и (ИндКартинки<>"корзина") и (Лев(ИндКартинки,1)<>"Z")Тогда
	   АтрФормы.УстановитьАтрибут(Форма,ИндКартинки);
	   ТекущиеКоординатыАтрибута();
	   Если (ТекАттрX1< ФормаX1) или (ТекАттрX2 > ФормаX2) или (ТекАттрY1< ФормаY1) или  (ТекАттрY3 > ФормаY3) Тогда

	     ТащимВКорзину=0;
	     УстановкаАттрибутаВНачальнуюТочку();
	     Возврат;
	  Иначе    
		ТащимВКорзину=1;
		  АтрФормы.УстановитьКоординаты(X,Y,,);
		 КонецЕсли;
	    
	  
	   Иначе
		ТащимВКорзину=0;
	   КонецЕсли;
КонецПроцедуры
 



Смысл в том, что если картинка выходит за границы формы, она должна возвращаться на свое начальное место.

Так и происходит, но если тащить медленно. Если же сделать это резко, например, стащить ее вниз, она просто исчезает с формы.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут
Ответ #27 - 06. Октября 2010 :: 10:11
Печать  
RuporAbsurda писал(а) 06. Октября 2010 :: 09:58:
Это то и у меня работает, вопрос в том, чтобы этого добиться сразу при создании атрибута, ну хотя-бы задать параметры числа.
Типа того
Атр = РасшФ.ДобавитьАтрибут("Вася",2,"Число",10,2);

так это же есть в #22
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ДобавитьАтрибут
Ответ #28 - 06. Октября 2010 :: 10:22
Печать  
RuporAbsurda писал(а) 06. Октября 2010 :: 10:07:
Смысл в том, что если картинка выходит за границы формы, она должна возвращаться на свое начальное место.

Так и происходит, но если тащить медленно. Если же сделать это резко, например, стащить ее вниз, она просто исчезает с формы.


В приОтжатииЛевойКнопки проверь, где находится атрибут, и ежели за фомой - верни его на место.

  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ДобавитьАтрибут
Ответ #29 - 06. Октября 2010 :: 10:29
Печать  
RuporAbsurda писал(а) 06. Октября 2010 :: 10:07:
Как раз он не универсальный. Ну да бог с ним. Этот вопрос хоть криво, но решен.

"Универсальный" - это про ФормЕкс в целом!
Про криво ты не прав 100% Печаль
  

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