Переключение на Главную Страницу Страницы: [1] 2 3 ... 18 ОтправитьПечать
Очень популярная тема (более 25 ответов) Революция - возможность добавления атрибутов!! (число прочтений - 169491 )
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Революция - возможность добавления атрибутов!!
04. Мая 2007 :: 08:59
Печать  
Народ, наконец-то реализована уникальная возможность - добавление стандартных контролов 1С на форму на лету в режиме Предприятия.

В моем варианте ФормЕкс добавлено -
старый метод без формул
РасширениеФормы::ДобавитьАтрибут(Строка ИдНовогоАтрибута, Число ТипНовогоАтрибута, [ Строка ТипВидЗначения = "" ])
новый метод с формулой
РасширениеФормы::ДобавитьАтрибутСФормулой(Строка ИдНовогоАтрибута, Число ТипНовогоАтрибута, Строка Формула, [ Строка ТипВидЗначения = "" ])
Параметры:
 ТипНовогоАтрибута - указан в описании свойства АтрибутФормы::Тип;
 ТипВидЗначения - строка типа "Справочник", "Справочник.НужныйВидСправочника", "Документ", "Документ.НужныйВидДокумента" и др. метаданные. Данный параметр можно не указывать.

По поводу формул более подробно здесь http://www.1cpp.ru/forum/YaBB.pl?num=1178269183/160#160

Все прекрасно работает, новый атрибут появляется.
К нему даже можно обратиться как к обычному - типа Форма.НоваяКнопка.Видимость или через перебор атрибутов в ФормЕкс и т.д.

Например, такой код
Код
Выбрать все
РасширениеФормы = СоздатьОбъект("РасширениеФормы");
РасширениеФормы.УстановитьФорму(Форма);

лАтрибут =	РасширениеФормы.ДобавитьАтрибут("НоваяКнопка", 3);
Сообщить("ТипЗначенияСтр(лАтрибут) = <"+ТипЗначенияСтр(лАтрибут)+">");

// лАтрибут // : АтрибутФормы
Сообщить("лАтрибут.Идентификатор = <"+лАтрибут.Идентификатор+">");
Сообщить("лАтрибут.Видимость = <"+лАтрибут.Видимость+">");
Сообщить("Форма.НоваяКнопка.Видимость() = <"+Форма.НоваяКнопка.Видимость()+">");
лАтрибут.Заголовок = "НоваяКнопка";
 



Причем неважно, в какой момент создается новый атрибут - до или после открытия формы.

Ура, товарищи Улыбка

ЗЫ сегодня постараюсь отправить готовый код Алексею.

ЗЗЫ в следующих постах выложил пример использования
« Последняя редакция: 01. Июля 2007 :: 10:39 - artbear »  

FormEx_artbear.rar ( 144 KB | Загрузки )

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Революция - возможность добавления атрибутов!!
Ответ #1 - 04. Мая 2007 :: 09:10
Печать  
Хочу подчеркнуть добавление СТАНДАРТНЫХ контролов 1С на форму на лету в режиме Предприятия.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Революция - возможность добавления атрибутов!!
Ответ #2 - 04. Мая 2007 :: 09:18
Печать  
Только для тестирования выложил свою сборку ФормЕкс - смотреть первый пост.

Надеюсь, что Алексей ругаться не будет за это Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1537
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Революция - возможность добавления атрибутов!!
Ответ #3 - 04. Мая 2007 :: 09:21
Печать  
Круто! Конечно же не буду ругаться.
Интересно будет посмотреть как ты все же это организовал.
Надеюсь, разрешишь включить этот функционал ко мне? Подмигивание
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Революция - возможность добавления атрибутов!!
Ответ #4 - 04. Мая 2007 :: 09:23
Печать  
Цитата:
Круто! Конечно же не буду ругаться.
Интересно будет посмотреть как ты все же это организовал.
Надеюсь, разрешишь включить этот функционал ко мне? Подмигивание


Изучаем внимательно Улыбка

artbear писал(а) 04. Мая 2007 :: 08:59:
ЗЫ сегодня постараюсь отправить готовый код Алексею.


  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Революция - возможность добавления атрибутов!!
Ответ #5 - 04. Мая 2007 :: 09:24
Печать  
Авторство идеи не мое !!

Самый главный код
Код
Выбрать все
// три следующие строки и есть самое главное !!
DWORD dwSize = m_Form->m_GetFieldsArray.GetSize();
m_Form->m_Data1 = (CFormCtrlContext**)realloc((void*)m_Form->m_Data1, dwSize*4);
m_Form->m_Data1[dwSize-1] = 0x0;
 


все остальное почти как у тебя
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1537
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Революция - возможность добавления атрибутов!!
Ответ #6 - 04. Мая 2007 :: 09:30
Печать  
Так... А если сделать поле ввода, значение его можно будет читать/устанавливать?
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Революция - возможность добавления атрибутов!!
Ответ #7 - 04. Мая 2007 :: 09:34
Печать  
Я выложил готовую сборку, проверяйте Улыбка

ЗЫ пока уехал по делам как фри, часа через три-четыре вернусь.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: Революция - возможность добавления атрибутов!!
Ответ #8 - 04. Мая 2007 :: 10:04
Печать  
Интересно кто нить проверил? у кого нить работает ?

или это только у меня ничего не получатеся?! (если так то хоть свалю все пятницу Подмигивание)
  
Наверх
wwwICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Революция - возможность добавления атрибутов!!
Ответ #9 - 04. Мая 2007 :: 10:07
Печать  
Насчет Edit не очень уверен, конечно.
Нужно проверять.
Сейчас создаются контролы любых типов 1С, кроме типа 8 и 9, и указанный выше код работает для любых типов.
Для типов 8 и 9 1С вылетает, что в общем-то логично Улыбка

ЗЫ ну блин, Инет уже везде есть Улыбка
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Революция - возможность добавления атрибутов!!
Ответ #10 - 04. Мая 2007 :: 10:08
Печать  
noprogrammer писал(а) 04. Мая 2007 :: 10:04:
Интересно кто нить проверил? у кого нить работает ?

или это только у меня ничего не получатеся?! (если так то хоть свалю все пятницу Подмигивание)

У меня работает 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 записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: Революция - возможность добавления атрибутов!!
Ответ #11 - 04. Мая 2007 :: 10:12
Печать  
artbear писал(а) 04. Мая 2007 :: 10:08:
[quote author=noprogrammer link=1178269183/0#8 date=1178273067]Интересно кто нить проверил? у кого нить работает ?

Блин, забыл сказать, что в моей сборке метод пока называется ДобавитьАтрибутНаФорму Улыбка


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



Сообщений: 1537
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Революция - возможность добавления атрибутов!!
Ответ #12 - 04. Мая 2007 :: 10:17
Печать  
artbear писал(а) 04. Мая 2007 :: 10:07:
Насчет Edit не очень уверен, конечно.
Нужно проверять.

Хм... Так ведь в этом-то и была главная загвоздка... Создание и совмещение внутренних переменных с создаваемыми контролами.
  

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



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Революция - возможность добавления атрибутов!!
Ответ #13 - 04. Мая 2007 :: 10:21
Печать  
noprogrammer писал(а) 04. Мая 2007 :: 10:04:
Интересно кто нить проверил? у кого нить работает ?

или это только у меня ничего не получатеся?! (если так то хоть свалю все пятницу Подмигивание)

С кнопками все хорошо. И двигаются, и формула в них добавляется. Уже это большое дело. Остальное проверяю.

Просится теперь метод УдалитьАтрибут(). Возможно такое?
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Революция - возможность добавления атрибутов!!
Ответ #14 - 04. Мая 2007 :: 10:24
Печать  
vip писал(а) 04. Мая 2007 :: 10:21:
Просится теперь метод УдалитьАтрибут(). Возможно такое?


Видимость(0)

Улыбка
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 ... 18
ОтправитьПечать