Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Горячая тема (более 10 ответов) Класс ПоставщикДанныхЖурналРегистрацииSQL (число прочтений - 18193 )
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Наконец, после долгого перерыва вторая версия
Ответ #15 - 03. Августа 2009 :: 08:00
Печать  
Версия 2.02
1. Для ТиповСобытий и Событий создана таблица SysLog_Events и связана с основной по полям EventsType и Events
2. В основной таблице изменены типы полей EventsType и Events на char(15) что позволило создать по ним индекс. Нет, по varchar(250) тоже можно конечно создать индекс, но какой у него буедт размер при таблице хотя-бы в 500 тыс строк Улыбка
3. ДозаполнитьТипыСобытий() теперь берет их из SysLog_Events что значительно ускорило инициализацию класса
4. Ускорился отбор по ТипамСобытий и Событиям из-за наличия индекса по ним
5. В ТП теперь отображаются описания Событий и ТиповСобытий а не их краткое название (индекс) что значительно удобнее
6. Исправлена процедура CreateEvents_SysLog .... а то там такой бред был Печаль  (имеется ввиду в весии 2.0)
7. Добавлена возможность сохранения состояния Объекта, что позволяет например:
  Сохранить состояние Отчета через класс "Расшифровка", а потом, через время, повторно сформировать отчет с теми-же условиями отбора (например для сравннения с предыдущим результатом) ...
  Сохранить состояние Объекта (Документа или Элемента) до записи (ну или список измененных реквизитов), что позволит восстановить (сделать откат) для Документов/Элементов на любую Дату/Время.....
  Сохранить mxl-файл при выводе Отчета/Документа на принтер, что даст возможность для Отчетов сравнивать сформированные в разное время отчеты за прошлый период (не знаю как у вас, а у меня любят некоторые личности полазить в заднем числе а потом приходится вылавливать следы их "жизнедеятельности" Улыбка в виде изменившихся остатков)  а для документов посмотреть что-же там юзверь в действительности напечатал - то что сформировалось, или таки полазил "шаловливыми ручками" в печатной форме
 Полностью закрыть как "прошлые периоды" так и редактирование mxl для меня невозможно не по техническим а по "организационным" причинам Печаль и вполне возможно я не одинок в своем горе Улыбка .....
  Работать вся эта радость будет при наличии дополнительных классов "ХранениеОбъектовВБазе" а так-же "Расшифровка", "РазностьОбъектов" и т.п.
8. В Обработку "Просмотр журнала регистрации" добавлена функция ДобавитьОбъектВСписокОтбора() что позволяет добавлять Объекты отбора снаружи, через контекст открытой формы. Вот как я ее использую  из  меню  "Действия"  по
правой клавише мыши в Документах,  Журналах и Справочниках
Код
Выбрать все
   ИначеЕсли лВыбранноеДействие="ЖурналРегистрации" Тогда
        лСписокПараметров.ДобавитьЗначение(?(лТипОбъекта = "Справочник", Конт.ТекущийЭлемент(), ?(лТипОбъекта = "Документ", Конт.ТекущийДокумент(), Конт.ТекущийДокумент)), "Объект");
        Если ТипЗначения(КонтекстОбработкиЖурналРегистрации) = 100 Тогда
               в);
                ОткрытьФорму("Обработка.ЖурналРегистрации", лСписокПараметров); // при уже открытой форме это просто актиивизирует ее
        Иначе
                ОткрытьФорму("Обработка.ЖурналРегистрации", лСписокПараметров);
                КонтекстОбработкиЖурналРегистрации = лСписокПараметров;
        КонецЕсли;
   ИначеЕсли .................
 


КонтекстОбработкиЖурналРегистрации - это глобальная переменная

По п.7 - если это кому-нибудь вообще нужно, могу выложить сопутствующие классы после соответствующего "причесывания". В частности класс ХранениеОбъектовВБазе. Класс "Расшифровка" не мой, нужно просто вспомнить откуда я его взял ..... или может автор, ув. ACSENT  сам поможет мне развеять склероз Улыбка
  

SysLog_SQL_v2_02.rar ( 99 KB | Загрузки )
Наверх
ICQ  
IP записан
 
grayrat
Junior Member
**
Отсутствует



Сообщений: 99
Местоположение: Russia, Moscow
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #16 - 16. Декабря 2009 :: 09:15
Печать  
Назрело... А можно взглянуть на сопутствующие классы?
  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #17 - 17. Декабря 2009 :: 10:55
Печать  
grayrat писал(а) 16. Декабря 2009 :: 09:15:
Назрело... А можно взглянуть на сопутствующие классы?

Постараюсь в ближайшие день-два привести их в порядок и выложить, а пока новая версия! А то сделал изменения больше месяца назад и все никак не соберусь выложить Улыбка
  
Наверх
ICQ  
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #18 - 17. Декабря 2009 :: 10:57
Печать  
Версия 2.03
1. Исправлен отбор по ТипамСобытий и Событиям (очень много мелких исправления и дополнений)
2. Для режима работы ODBCRecordSet т.е. для процедур ВыбратьЗаписи, ПолучитьЗапись и т.п. добавлены публичные свойства ПорядокВыборки и ВыбратьЗаписей
Код
Выбрать все
// Работает только в режиме работы ODBCRecordSet, т.е. влияет на процедуры ВыбратьЗаписи и ПолучитьЗапись
// "1" - По возрастанию ДатыВремениСобытия, т.е. в прямом порядке
// "-1" - В обратном порядке
Перем ПорядокВыборки Экспорт;

// Сколько записей выбирать в режиме работы ODBCRecordSet, т.е. влияет на процедуры ВыбратьЗаписи и ПолучитьЗапись
// На отображение в ТП не влияет. Подставляется в запрос SELECT TOP(ВыбиратьЗаписей) .....
Перем ВыбратьЗаписей Экспорт;
 


  

SysLog_SQL_v2_03.rar ( 93 KB | Загрузки )
Наверх
ICQ  
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #19 - 25. Декабря 2009 :: 14:44
Печать  
Ну вот сподобился таки .... не то чтобы довести до ума, но хотя-бы заставить работать в сторонней конфигурации класс "ХранениеОбъектовВБазе". Если кому-то еще будет интересно - может вместе и доведем это до ума Улыбка
А пока получайте то что есть. Для совместной работы с ПоставщикДанныхЖурналРегистрацииSQL нужен еще класс "Расшифровка" от acsent который я и допаковал в архив.
Как это заставить взлететь. В ГМ добавляется еще одна процедура (помимо того что описано в ReadMe.txt) к классу ПоставщикДанныхЖурналРегистрацииSQL
Код
Выбрать все
Процедура глЗаписьЖурналаРегистрации(Знач лКоммент, Знач лТипСобытия = "", Знач лСобытие = "", Знач лОбъект = 0, Знач лКатегория = 3, лДопПараметр = 0) Экспорт
	Если ЖурналРегистрации = 0 Тогда
		ЗаписьЖурналаРегистрации(лКоммент, лТипСобытия, лСобытие, лОбъект, лКатегория);
	Иначе
		//Знач EventType, Знач Event, Знач EventCategory, Знач Comment, Знач ObjectId, Знач ObjectDescr, Знач Mode = "E", binObject = 0
		ЖурналРегистрации.ЗаписатьНовоеСобытие(лТипСобытия, лСобытие, лКатегория, лКоммент, лОбъект, Строка(лОбъект), , лДопПараметр);
	КонецЕсли;
КонецПроцедуры
 



Теперь можно во все отчеты сразу перед (или после) вызова Таб.Показать(...)
дописать
Код
Выбрать все
	Расшифровка = СоздатьОбъект("Расшифровка");
	Расшифровка.СохранитьЗначения(Контекст);
	глЗаписьЖурналаРегистрации("Подготовка печатной формы отчета  ""ИмяОтчета""", "Print", "PrePrint", "ИмяОтчета", , Расшифровка);
 


и в ЖР будет писаться не только само событие но и состояние очета сохраняемое в Расшифровке. При двойном клике на этой строке в просмотрщике ЖР откроется форма отчета со всеми запомненными настройками.
У меня все это делается через переопределенный класс "Таблица", поэтому все отчеты сохраняются автоматически. Так-же перехватывается вывод на принтер через событие СобытиеГМ_ПриПечатиТаблицы() что дает возможность сохранять MXL всего что напечатано...
  

BinObjectsInSQL_v3_00.rar ( 23 KB | Загрузки )
Наверх
ICQ  
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #20 - 19. Мая 2010 :: 10:41
Печать  
Версия 2.04      
1. Подправил функцию СоздатьТаблицу на предмет получиени типа и длинны полей Event и EventType
Т.е. с этой ошибкой в пустой базе таблицы не создавались вообще Печаль
  

SysLog_SQL_v2_04.rar ( 102 KB | Загрузки )
Наверх
ICQ  
IP записан
 
Aletar
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 22. Апреля 2014
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #21 - 22. Апреля 2014 :: 09:33
Печать  
Подскажите, пожалуйста, при запуске базы получаю такую ошибку:

ЖурналРегистрации = СоздатьОбъект("ПоставщикДанныхЖурналРегистрацииSQL");
{Глобальный модуль(4695)}: ПоставщикДанныхЖурналРегистрацииSQL::Конструктор() : ПоставщикДанныхЖурналРегистрацииSQL::УстановитьФильтр(Число Фл=0) : Значение не представляет агрегатный объект
Сам().Поля.Добавить("СсылкаНаБинОбъект").Автоудаление = 0;
{\\Dataserver\bases1c77\ТД_Разработка\ЖурналРегистрации\SysLog.ert(342) }

Сам().УстановитьФильтр();
{\\Dataserver\bases1c77\ТД_Разработка\ЖурналРегистрации\SysLog.ert(208) }

Что я делаю не так?
  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #22 - 08. Мая 2014 :: 12:41
Печать  
Aletar писал(а) 22. Апреля 2014 :: 09:33:
Подскажите, пожалуйста, при запуске базы получаю такую ошибку:

ЖурналРегистрации = СоздатьОбъект("ПоставщикДанныхЖурналРегистрацииSQL");
{Глобальный модуль(4695)}: ПоставщикДанныхЖурналРегистрацииSQL::Конструктор() : ПоставщикДанныхЖурналРегистрацииSQL::УстановитьФильтр(Число Фл=0) : Значение не представляет агрегатный объект
Сам().Поля.Добавить("СсылкаНаБинОбъект").Автоудаление = 0;
{\\Dataserver\bases1c77\ТД_Разработка\ЖурналРегистрации\SysLog.ert(342) }

Сам().УстановитьФильтр();
{\\Dataserver\bases1c77\ТД_Разработка\ЖурналРегистрации\SysLog.ert(208) }

Что я делаю не так?


Странно! Такое впечатление что не подключен класс ХранениеОбъектовВБазе
Хотя с другой стороны там проверка есть - если не подключен то этот кусок  и не должно выполняться, а значит и ругаться не должно.
Кстати - а класс ХранениеОбъектовВБазе  таки подключен или нет? Без него проверял на сторонних базах - вроде-бы все работало нормально.
  
Наверх
ICQ  
IP записан
 
Aletar
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 22. Апреля 2014
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #23 - 10. Декабря 2014 :: 03:52
Печать  
avgreen писал(а) 08. Мая 2014 :: 12:41:
Странно! Такое впечатление что не подключен класс ХранениеОбъектовВБазе
Хотя с другой стороны там проверка есть - если не подключен то этот кусок  и не должно выполняться, а значит и ругаться не должно.
Кстати - а класс ХранениеОбъектовВБазе  таки подключен или нет? Без него проверял на сторонних базах - вроде-бы все работало нормально.


Класс не был подключен, как-то я умудрился его пропустить, попробую ещё раз.
Спасибо за помощь.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать