Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Как правильно подменить форму документа при использовани призагрузкеформы() (число прочтений - 4324 )
cushe
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 8
Зарегистрирован: 15. Июня 2006
Как правильно подменить форму документа при использовани призагрузкеформы()
29. Марта 2010 :: 18:54
Печать  
добавил в глобальный модуль
Код
Выбрать все
procedure призагрузкеформы(name)
   name = "обработка.МояФорма.Форма";
endprocedure 

в обработки указанную форму тоже добавил, только для того что бы посмотреть работу процедуры в действии, но к сожалению так и не смог добиться хотя бы какого нибудь эффекта. Можете ли дать рабочий пример с перезагрузкой формы.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Как правильно подменить форму документа при использовани призагрузкеформы()
Ответ #1 - 30. Марта 2010 :: 04:19
Печать  
ФормЭкс Загружен? Какие еще компоненты загружены? Порядок загрузки какой?
Если в твой процедуру добавишь:
  Сообщить(name);
будут сообщения выходить?
Если в пустую конфу добавить один справочник и одну обработку и организовать вызов - проблема останется?
  
Наверх
ICQ  
IP записан
 
cushe
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 8
Зарегистрирован: 15. Июня 2006
Re: Как правильно подменить форму документа при использовани призагрузкеформы()
Ответ #2 - 30. Марта 2010 :: 06:17
Печать  
Версия formex 2.0.5.92.
Formex загружается в глобальном модуле в момент открытия конфигурации.
В тестовой базе присутствует 2 объекта документ Приход (реквизиты только стандартные ДатаДок,НомерДок) и обработка МояФорма (реквизитов формы нет, кроме текстовой метки).
Если изменить процедуру на
Код
Выбрать все
procedure ПриЗагрузкеФормы(ИмяОбъекта)
	message(ИмяОбъекта);
	ИмяОбъекта = "Обработка.МояФорма.Форма";
	message(ИмяОбъекта);
endprocedure 

Вывод при открытии документа будет
Документ.Приход .Форма
Обработка.МояФорма.Форма
При это открывается форма документа Приход.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Как правильно подменить форму документа при использовани призагрузкеформы()
Ответ #3 - 30. Марта 2010 :: 07:01
Печать  
Ну если есть тестовая база, то выложи сюда МД-шник, можно будет и посмотреть
  
Наверх
ICQ  
IP записан
 
cushe
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 8
Зарегистрирован: 15. Июня 2006
Re: Как правильно подменить форму документа при использовани призагрузкеформы()
Ответ #4 - 30. Марта 2010 :: 07:11
Печать  
Вот
  

11.RAR ( 190 KB | Загрузки )
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как правильно подменить форму документа при использовани призагрузкеформы()
Ответ #5 - 30. Марта 2010 :: 07:15
Печать  
cushe писал(а) 30. Марта 2010 :: 06:17:
обработка МояФорма (реквизитов формы нет, кроме текстовой метки).

Форма самой обработки через Операции-Обработки-МояФорма открывается?
могу ошибаться, но если на форме только текстовая метка, форма не показывается вроде как на экране Печаль - но могу ошибаться Улыбка
  

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


I Love YaBB 2!

Сообщений: 8
Зарегистрирован: 15. Июня 2006
Re: Как правильно подменить форму документа при использовани призагрузкеформы()
Ответ #6 - 30. Марта 2010 :: 07:41
Печать  
Та нет, сама форма обработки открывается
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как правильно подменить форму документа при использовани призагрузкеформы()
Ответ #7 - 30. Марта 2010 :: 08:02
Печать  
в 92 релизе не работает..
в 99 работает, только вот типа того воткни:
Код
Выбрать все
procedure ПриЗагрузкеФормы(ИмяОбъекта)
	Если Найти(ИмяОбъекта,"Документ")>0 Тогда
		ИмяОбъекта = "Обработка.МояФорма.Форма";
	КонецЕсли;
endprocedure 



А то поимеешь болт при подмене всех форм.. типа открытия журнала - 1с-ина будет валиться при открытии системных форм (например, журнал Прочие)
  
Наверх
 
IP записан
 
cushe
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 8
Зарегистрирован: 15. Июня 2006
Re: Как правильно подменить форму документа при использовани призагрузкеформы()
Ответ #8 - 30. Марта 2010 :: 11:22
Печать  
Спс, на 2.0.5.99 работает

Продолжаем тему, можно ли в обработке использовать ТабличнуюЧасть документа
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как правильно подменить форму документа при использовани призагрузкеформы()
Ответ #9 - 30. Марта 2010 :: 12:24
Печать  
Можно использовать ТабличноеПоле , которое будет иммитировать ТабличнуюЧасть документа..
Ты там чего хоть творишь то ?..

  
Наверх
 
IP записан
 
cushe
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 8
Зарегистрирован: 15. Июня 2006
Re: Как правильно подменить форму документа при использовани призагрузкеформы()
Ответ #10 - 30. Марта 2010 :: 12:25
Печать  
пока ничего, просто экспериментирую.
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как правильно подменить форму документа при использовани призагрузкеформы()
Ответ #11 - 30. Марта 2010 :: 13:07
Печать  
Формы лучше все же подменять формами от того же объекта. Т.е. Для Документа - брать от Документа, для Обработки - от Обработки и т.д.
  

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


I Love YaBB 2!

Сообщений: 35
Зарегистрирован: 22. Мая 2006
Re: Как правильно подменить форму документа при использовани призагрузкеформы()
Ответ #12 - 13. Июля 2010 :: 14:35
Печать  
Перечитал документацию и ветки форума по субжевому вопросу, все равно никак не могу добится результата, грубо говоря делаем:
Код
Выбрать все
Процедура ПриЗагрузкеФормы(ИмяОбъекта)  Экспорт
Сообщить("="+ИмяОбъекта+"=");
Если Константа.ПодменятьФормы = Да Тогда
		ОткрываемаяФорма = СокрЛП(ИмяОбъекта);
		СпрНастройкиПодмен = СоздатьОбъект("Справочник.НастройкиФорм");
		Если СпрНастройкиПодмен.НайтиПоНаименованию(ОткрываемаяФорма) = 1 Тогда
			ИмяОбъекта = СокрЛП(СпрНастройкиПодмен.ЗаменяемаяФорма);
		КонецЕсли;
	КонецЕсли;
	Сообщить("="+ИмяОбъекта+"=");
КонецПроцедуры
 


При выполнении вылетает следующее:
=Справочник.ТМЦ.ФормаСписка.ФормаСписка=
=Справочник.ТМЦ.ФормаСписка.ФормаСпискаАльт=
Если ПустоеЗначение(МестоХранения<<?>>) = 0 Тогда
{Справочник.ТМЦ.ФормаСписка.ФормаСписка.Модуль(214)}: Переменная не определена (МестоХранения)
СчетТМЦ = ?(ОстаткиПоСчетуУчета <<?>>= 1, Счет, СчетОстатков);
... и дальше идут ошибки.
Т.е. параметр подменяется, а форма открывается все равно старая (стандартная), к тому же еще и ругается на реквизиты которые лежат на форме.
Версия формекс = 2.0.5.99
1с++ = 3.2.1.0,
порядок загрузки:
Код
Выбрать все
ПриНачалеРаботы...
ЗагрузитьВнешнююКомпоненту("1cpp.dll");
ЗагрузитьВнешнююКомпоненту("formex.dll");
УправлениеНастройками = СоздатьОбъект("УправлениеНастройками");
УправлениеНастройками.Установить("EnableTurboBL", 1);
ЗагрузитьВнешнююКомпоненту("SpreadSheet.dll");
 


Куда дальше копать, не знаю...
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как правильно подменить форму документа при использовани призагрузкеформы()
Ответ #13 - 19. Июля 2010 :: 07:54
Печать  
Надо, наверное, не только форму, но и модуль подменять на альтернативный.
  

FormEx developer
Наверх
www  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать