Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Вопрос по ПриЗагрузкеФормы/Модуля (число прочтений - 7529 )
jbond
Full Member
***
Отсутствует


1С++ Programmer

Сообщений: 140
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Вопрос по ПриЗагрузкеФормы/Модуля
13. Июня 2006 :: 11:30
Печать  
Вопрос первый:
Можно ли событиями заменить ТурбоМД.

Пытался заменить на путь к внешнему файлу - не получилось. ТурбоМД не загружен.

     ПутьВнешнийШаблон = глКаталогТМД + СтрЗаменить(ИмяОбъекта,".","\") + "\Диалог.txt";
     
     Если ФС.СуществуетФайл(ПутьВнешнийШаблон) <> 0 Тогда  // Если таблица формы выгружалась
           Если глВремяПоследнЗаписи(ПутьВнешнийШаблон) > глВремяМД Тогда
                 Сообщить("Загружен " + ПутьВнешнийШаблон);
                 ИмяОбъекта = ПутьВнешнийШаблон; - Выполняется
           КонецЕсли
     КонецЕсли


2) Нужно реализовать статистику по использованию форм конфигурации по пользователям.

Прежде чем изобретать велосипед(???), кто-нибудь реализовывал такое.
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопрос по ПриЗагрузкеФормы/Модуля
Ответ #1 - 13. Июня 2006 :: 11:36
Печать  
Заменить этим TurboMD не получится.
По поводу статистики: у меня просто пишется в журнал регистрации кто и чего открывал.
Код
Выбрать все
Процедура ПриЗагрузкеФормы(Имя)
	ЗаписьЖурналаРегистрации("Открыта форма: "+СокрЛП(Имя));
КонецПроцедуры

Процедура ПриЗагрузкеВнешнегоОтчета(ИмяФайла)
	ЗаписьЖурналаРегистрации("Открыт внешний отчет: "+СокрЛП(ИмяФайла));
КонецПроцедуры	// ПриЗагрузкеВнешнегоОтчета 

  

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


1С++ Programmer

Сообщений: 140
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопрос по ПриЗагрузкеФормы/Модуля
Ответ #2 - 13. Июня 2006 :: 11:44
Печать  
Т.е. подмена пути загрузки возможна только внутри конфигурации?

По поводу статистики:
Гхм.... Все гениальное - просто.
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопрос по ПриЗагрузкеФормы/Модуля
Ответ #3 - 13. Июня 2006 :: 11:46
Печать  
jbond писал(а) 13. Июня 2006 :: 11:44:
Т.е. подмена пути загрузки возможна только внутри конфигурации?

На данный момент да.
  

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


1С++ Programmer

Сообщений: 140
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопрос по ПриЗагрузкеФормы/Модуля
Ответ #4 - 14. Июня 2006 :: 07:04
Печать  
Очень классно потом статистический анализ проводить:
элементарые:
1) кто каким отчетом/документом пользуется - для реорганизации меню и улучшения конфы в целом (этим отчетом никто не пользуется, ту же инфу можно взять из другого отчета)

2) Крутая задача на теор вер и мат стат и программированию вообще:
Найти вероятность того, что ни у одного из пользователей не открыто ни одно окно (можно спокойно выгонять из базы для реструктуризации ИБ) - функция от времени, пользователя и типа формы (форма отчета/форма хранимого объекта).
Ну или мат ожидание числа открытых окон.
  
Наверх
 
IP записан
 
jbond
Full Member
***
Отсутствует


1С++ Programmer

Сообщений: 140
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопрос по ПриЗагрузкеФормы/Модуля
Ответ #5 - 15. Июня 2006 :: 05:15
Печать  
Отлавливаю момент закрытия формы.
Иногда выlдает: Конт.Форма - не найден атрибут Форма.

Переписал вроде бы:
Процедура ПослеЗакрытия(Конт)
     Если ТипЗначенияСтр(Конт) = "ГрупповойКонтекст" Тогда
           РФ = СоздатьОбъект("РасширениеФормы");
           РФ.УстановитьФорму(Конт.Форма);
           ЗаписьЖурналаРегистрации("Закрыта форма: " + РФ.ПолныйТипОбъекта());
     КонецЕсли;
КонецПроцедуры
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопрос по ПриЗагрузкеФормы/Модуля
Ответ #6 - 15. Июня 2006 :: 06:57
Печать  
Цитата:
По поводу статистики: у меня просто пишется в журнал регистрации кто и чего открывал.
Код
Выбрать все
Процедура ПриЗагрузкеФормы(Имя)
	ЗаписьЖурналаРегистрации("Открыта форма: "+СокрЛП(Имя));
КонецПроцедуры

Процедура ПриЗагрузкеВнешнегоОтчета(ИмяФайла)
	ЗаписьЖурналаРегистрации("Открыт внешний отчет: "+СокрЛП(ИмяФайла));
КонецПроцедуры	// ПриЗагрузкеВнешнегоОтчета 



А можно как-нибудь поподробнее? Тема очень интересная, но я начинающий 1с++. Что это за функции? Глобальные или в каждой форме писать? Ну, в общем, если можно расскажи...
  
Наверх
 
IP записан
 
jbond
Full Member
***
Отсутствует


1С++ Programmer

Сообщений: 140
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопрос по ПриЗагрузкеФормы/Модуля
Ответ #7 - 15. Июня 2006 :: 07:05
Печать  
Это предопределенные ф-кции глобального модуля.
1С++ начиная с 2.0.2

Статистика использования форм:
     ПДЖР = СоздатьОбъект("ПоставщикДанныхЖурналРегистрации");
     ИндТабл = СоздатьОбъект("ИндексированнаяТаблица");
     ИндТабл.НоваяКолонка("ИмяФормы");
     ИндТабл.НоваяКолонка("Колво");
     Рез = ПДЖР.ОткрытьФайл();
     // ПДЖР.УстановитьПериод(НачДата,КонДата);
     ПДЖР.ИзменитьФильтр(139,"Открыта форма");
     ПДЖР.УстановитьФильтр(1);
     ПДЖР.ВыбратьСтроки();
     ОчиститьОкноСообщений();
     Пока ПДЖР.ПолучитьСтроку() = 1 Цикл
           Если ПДЖР.Пользователь <> "Администратор" Тогда
                 Комментарий = ПДЖР.Комментарий;
                 ИмяФормы = Сред(Комментарий, Найти(Комментарий,":") + 2);
                 ИндТабл.НоваяСтрока();
                 ИндТабл.ИмяФормы = ИмяФормы;
                 ИндТабл.Колво = 1;
                 //Сообщить(Строка() + " " + Строка(ПДЖР.Время) + " " + ПДЖР.Комментарий);
           КонецЕсли;
     КонецЦикла;
     ИндТабл.Свернуть("ИмяФормы","Колво");
     ИндТабл.Сортировать("Колво-");
     ИндТабл.Показать();

Зы. Может у кого-нибудь есть готовая обработка по всестороннему анализу?
Или нужно писать?
  
Наверх
 
IP записан
 
tav13
1c++ donor
Отсутствует



Сообщений: 108
Местоположение: Donetsk
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Вопрос по ПриЗагрузкеФормы/Модуля
Ответ #8 - 15. Июня 2006 :: 07:14
Печать  
У меня работает нечто подобное, есть справочник в который пишется суммарная информация - какой пользователь, какие формы открывает. И есть обработка которая анализирует эту информацию, если интересно могу выложить
  
Наверх
ICQ  
IP записан
 
jbond
Full Member
***
Отсутствует


1С++ Programmer

Сообщений: 140
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопрос по ПриЗагрузкеФормы/Модуля
Ответ #9 - 15. Июня 2006 :: 07:25
Печать  
Выложи, если можно.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопрос по ПриЗагрузкеФормы/Модуля
Ответ #10 - 15. Июня 2006 :: 07:31
Печать  
Немного непонятно с точки зрения контекста работы подменной формы.
Вопрос:
если я подменю форму допустим элемента справочника и расположу на ней поля,
которые есть в этом справочнике, нарисую стандартную кнопку с формулой "#Записать"
Отредактирую поля и нажму на кн записать, все поля сохранятся?
Имеется ввиду подменная форма "понимает" нужный контекст исполнения?
  
Наверх
IP записан
 
tav13
1c++ donor
Отсутствует



Сообщений: 108
Местоположение: Donetsk
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Вопрос по ПриЗагрузкеФормы/Модуля
Ответ #11 - 15. Июня 2006 :: 07:38
Печать  
Держи:
  

reg.zip ( 9 KB | Загрузки )
Наверх
ICQ  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопрос по ПриЗагрузкеФормы/Модуля
Ответ #12 - 16. Июня 2006 :: 05:23
Печать  
trdm писал(а) 15. Июня 2006 :: 07:31:
Немного непонятно с точки зрения контекста работы подменной формы.
Вопрос:
если я подменю форму допустим элемента справочника и расположу на ней поля,
которые есть в этом справочнике, нарисую стандартную кнопку с формулой "#Записать"
Отредактирую поля и нажму на кн записать, все поля сохранятся?
Имеется ввиду подменная форма "понимает" нужный контекст исполнения?

Если ты в этих предопределенных процедурах задашь новое имя формы, она будет загружена и воспринята как родная. Т.е. атрибуты формы будут сопоставлены с реквизитами объекта по идентификатору, контекст будет воспринимать эту форму, как родную. Надо только не забывать следить за соответствием формы и модуля.
У меня так в одной конфиге сделано разделение прав и интерфейсов: для каждого отдела под форму элемента справочника сделана обработка и она в глобальнике подхватывается вместе с модулем. Получается очень удобно, т.к. не надо следить за видимостью и доступностью запрещенных реквизитов (их просто нет на форме) и за "дырками" на форме, которые возникают если использовать одну форму для всех.
  

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



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопрос по ПриЗагрузкеФормы/Модуля
Ответ #13 - 16. Июня 2006 :: 10:23
Печать  
Цитата:
trdm писал(а) 15. Июня 2006 :: 07:31:
skip on bip
Надо только не забывать следить за соответствием формы и модуля.

) Класно )
т.е. имеешь ввиду что нужно окромя фомы подключить и модуль, т.к. формочка отделена от модуля...
а пользоваться надо: "ПриЗагрузкеМодуляФормы".
ЗЫ. Вот так люди и познают мир....
  
Наверх
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопрос по ПриЗагрузкеФормы/Модуля
Ответ #14 - 16. Июня 2006 :: 10:35
Печать  
trdm писал(а) 16. Июня 2006 :: 10:23:
Цитата:
trdm писал(а) 15. Июня 2006 :: 07:31:
skip on bip
Надо только не забывать следить за соответствием формы и модуля.

) Класно )
т.е. имеешь ввиду что нужно окромя фомы подключить и модуль, т.к. формочка отделена от модуля...
а пользоваться надо: "ПриЗагрузкеМодуляФормы".
ЗЫ. Вот так люди и познают мир....

Ну, если у тебя модуль работоспособен для всех форм (например, формы отличаются только размещением реквизитов), то можно использовать один модуль и не подменять его вместе с формой.
  

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