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



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Класс ПоставщикДанныхЖурналРегистрацииSQL
17. Февраля 2009 :: 11:21
Печать  
После долгих и безуспешных поисков чего-то подобного начал писать свой класс ПоставщикДанныхЖурналРегистрацииSQL
Как ясно из названия он предназначен для хранения ЖР в SQL и работы с ним. Стараюсь реализовать весь функционал базового класса ПоставщикДанныхЖурналРегистрации, который идет в комплекте с 1С++
Если это кому-нибудь кроме меня интересно, постараюсь в ближайшее время его "причесать" и выложить для тестирования....
  
Наверх
ICQ  
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #1 - 18. Февраля 2009 :: 09:05
Печать  
Ну вот в первом приближении готов Subj
Внутри архива ReadMe.txt в котором, вкратце, сказано что с этим делать.
Пробовал на чужой конфигурации "Demo_RiK" - вроди-как работает
Если что непонятно - спрашивайте здесь.
  

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



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #2 - 19. Февраля 2009 :: 15:50
Печать  
Хотел сделать контроль дупов и столкнулся с такой проблемой - вот такой вот запрос работает нормально

Код
Выбрать все
	|declare @Date datetime
	|declare @Mode char (1)
	|declare @UserName char (50)
	|declare @UserId char (13)
	|declare @EventType varchar (50)
	|declare @Event varchar (250)
	|declare @EventCategory int
	|declare @Comment varchar (8000)
	|declare @ObjectId char (23)
	|declare @ObjectDescr varchar (100)
	|
	|set @Date = CONVERT(datetime, ?, 120)
	|set @Mode = ?
	|set @UserName = ?
	|set @UserId = ?
	|set @EventType = ?
	|set @Event = ?
	|set @EventCategory = ?
	|set @Comment = ?
	|set @ObjectId = ?
	|set @ObjectDescr = ?
	|	INSERT INTO [dbo].["+ИмяТаблицы+"] (EventDateTime, Mode, UserName, UserId, EventType, Event, EventCategory, Comment, ObjectId, ObjectDescr)
	|	 VALUES (@Date, @Mode, @UserName, @UserId, @EventType, @Event, @EventCategory, @Comment, @ObjectId, @ObjectDescr)
 



а стОит добавить перед INSERT проверку на дупы

Код
Выбрать все
	|IF (SELECT count(*) FROM [dbo].["+ИмяТаблицы+"] WHERE EventDateTime = @Date and  Mode = @Mode and UserName = @UserName  and UserId = @USerId and  EventType = @EventType and
	|	Event = @Event and  EventCategory = @EventCategory and  Comment = @Comment  and ObjectId = @ObjectId and  ObjectDescr = @ObjectDescr) = 0
 



как ODBC орет нечеловеческим голосом
"Подключение занято до получения результатов для другого hstmt"

1С при этом падает замертво.... И что с этим делать - не знаю Печаль
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #3 - 19. Февраля 2009 :: 17:32
Печать  
avgreen писал(а) 19. Февраля 2009 :: 15:50:
"Подключение занято до получения результатов для другого hstmt"

1С при этом падает замертво.... И что с этим делать - не знаю Печаль


сегодня ловил такую же х#рь... в чем дело не знаю но победил
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #4 - 19. Февраля 2009 :: 21:22
Печать  
vandalsvq писал(а) 19. Февраля 2009 :: 17:32:
avgreen писал(а) 19. Февраля 2009 :: 15:50:
"Подключение занято до получения результатов для другого hstmt"

1С при этом падает замертво.... И что с этим делать - не знаю Печаль


сегодня ловил такую же х#рь... в чем дело не знаю но победил


А как именно победил? Или сам не понял как?  Улыбка
  
Наверх
ICQ  
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #5 - 20. Февраля 2009 :: 11:57
Печать  
УРА! Я тоже победил! Улыбка

SET NOCOUNT ON помогло

Потом уже, когда начал рыть инет - нашел
"SET NOCOUNT ON обязателен в любой хп (триггере), имеющей более 1 инструкции."

Но блин один полноценный день работы убил  Злой
  
Наверх
ICQ  
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #6 - 23. Февраля 2009 :: 14:31
Печать  
Версия 1.01
     1. Изменены КлючПорядка и ИдПоле на "ДатаВремя" вместо составного поля "EventDateTime + Row_Id"
     2. Добавлен индекс на EventDateTime
     3. В результате 1 и 2 значительно увеличилась скорость "прокрутки" ТП. Из-за этого-же необходимо пересоздать таблицу SysLog
     4. Доделана загрузка из файла с контролем дублей строк - теперь "флажок" на форме работает а не просто торчит там
     5. Выгрузка в файл работает частично - а именно пока не выгружается "Объект"
     6. В ТипыСобытия и События добавлены пользовательские "типы" и "события" но пока не работает отбор по ним
     7. Пользовательские ТипыСобытий теперь записываться в базу без лидирующего "$". То что это пользовательский Тип можно определить ТипыСобытий.Получить("ИмяТипа").Системный = 0
     8. Для Событий аналогично ТипамСобытий (см. пред. пункт) Для этих изменений необходимо заменить Событие_ЗаписьСобытияЖурналаРегистрации в ГМ
  

SysLog_SQL_v1_01.rar ( 94 KB | Загрузки )
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #7 - 23. Февраля 2009 :: 17:50
Печать  
avgreen писал(а) 19. Февраля 2009 :: 21:22:
vandalsvq писал(а) 19. Февраля 2009 :: 17:32:
avgreen писал(а) 19. Февраля 2009 :: 15:50:
"Подключение занято до получения результатов для другого hstmt"

1С при этом падает замертво.... И что с этим делать - не знаю Печаль


сегодня ловил такую же х#рь... в чем дело не знаю но победил


А как именно победил? Или сам не понял как?  Улыбка


Кстати перекопал форум и четком могу сказать, чтобы такой беды не было поле УстИДПоле должно быть обязательно уникальным. Иначе проблемы.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #8 - 24. Февраля 2009 :: 14:47
Печать  
Версия 1.02
     1. Наконец-то сделан нормальный КлючПорядка, а именно datetime, без преобразования в сhar. Соответственно он начал попадать в индекс и прокрутка ТП стала работать действительно нормально. Проверено на таблице с 400'000 строк
     2. Теперь работает отбор по пользовательским ТипамСобытий и Событиям. Не работает пока по ВидамОбъектов и ТипамОбъектов

Часть проблем была с головой - описана здесь  http://www.1cpp.ru/forum/YaBB.pl?num=1235457869 Улыбка

Как видно оттуда, для нормальной работы работы класса необходима 1С++ версии не ниже 3.0.1.22. Проверку пока не сделал так-что следите сами

Еще замечание - если положить в каталог 1С или в каталог базы компоненту UsersDef.dll то имя пользователя не нужно будет набирать руками, можно будет выбрать из списка
  

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



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #9 - 24. Февраля 2009 :: 14:53
Печать  
vandalsvq писал(а) 23. Февраля 2009 :: 17:50:
Кстати перекопал форум и четком могу сказать, чтобы такой беды не было поле УстИДПоле должно быть обязательно уникальным. Иначе проблемы.


Да это и так понятно. Он у меня всегда был уникальным что породило мне некоторое количество проблем Улыбка (см. пред. пост) Но IMHO матюк "Подключение занято до получения результатов для другого hstmt" с этим никак не связан. С чем он у меня был связан первый раз я уже сказал (2-3 поста выше), а вот второй раз снова вылез, в другом месте ...... Пока пытаюсь разобраться , а когда упрусь в стену, буду здесь спрашивать  Улыбка
  
Наверх
ICQ  
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #10 - 26. Февраля 2009 :: 14:00
Печать  
Версия 1.03
     1. Заработала выгрузка в файл. Выгружаются и загружаются многострочные комментарии. В SQL такой комментарий хранится в виде нескольких строк а при выгрузке в файл преобразуется в строку с разделителями вида "#newS%". При загрузке соответственно преобразуется обратно Единственное "но" - почему-то один раз дупятся строки с многострочными комметариями (именно один раз - при первой выгрузке/загрузке).  Т.е. преобразование получается неточным  Но вот где неточность - пока не нашел. На глаз не видно
     2. Немного доработан отчет по просмотру ЖР, При выборе периода он сразу отражается в отборе ... ну еще какие-то мелочи
     3. Убрал за избыточностью поле Row_Id из таблицы и переписал индексы. Таблицу можно не пересоздавать - будет работать и так
  

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



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #11 - 04. Марта 2009 :: 14:17
Печать  
Версия 1.04
1. Заработал отбор по по ВидамОбъектов и ТипамОбъектов
2. Убрал индексы IX_Object и IX_User потому как не вижу в нех необходимости (по крайней мере пока)
3. Добавил индекс IX_EventType в результате чего немного быстрее стал работать метод ДозаполнитьТипыСобытий() там где
Код
Выбрать все
"select distinct EventType as ТипСобытия, Event as Событие from "+ИмяТаблицы+" order by EventType" 

я так понимаю из-за "order by". Заметно только на больших таблицах в 400-500 тыс строк
4. Из-за последних двух пунктов нужно либо пресоздать таблицу SysLog, либо удалить/создать индексы вручную

А воотбе-то с Event и EventType нужно что-то делать. Может вынести их в отдельные таблицы и связывать по RowId с основной. Вот не знаю не замедлит ли это запись и основную выборку из SysLog. У кого какие мысли по этому поводу...?
  

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


I Love YaBB 2!

Сообщений: 12
Зарегистрирован: 24. Октября 2007
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #12 - 05. Марта 2009 :: 04:58
Печать  
Имхается мне, что контроль дупов не через count(*), а запрос в exists() будет работать быстрее.
  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #13 - 06. Марта 2009 :: 06:30
Печать  
DEVIce писал(а) 05. Марта 2009 :: 04:58:
Имхается мне, что контроль дупов не через count(*), а запрос в exists() будет работать быстрее.


Подожди ..... у меня-ж по моему именно так и написано

Код
Выбрать все
	|"+?(КонтрольДублей = 1,"
		|IF NOT EXISTS (SELECT * FROM [dbo].["+ИмяТаблицы+"] WHERE
		|		Convert(char, EventDateTime, 120) = Convert(char, @Date , 120)
		|		and  Mode = @Mode and UserId = @USerId and  EventType = @EventType and Event = @Event and  EventCategory = @EventCategory
		|		and (UserName = @UserName or @UserName is null and UserName is null)
		|		and (Comment = @Comment or @Comment is null and Comment is null)
		|		and (ObjectId = @ObjectId or @ObjectId is null and ObjectId is null)
		|		and (ObjectDescr = @ObjectDescr or @ObjectDescr is null and ObjectDescr is null))
		|BEGIN
	|","")+"
	|	INSERT INTO [dbo].["+ИмяТаблицы+"] (EventDateTime, Mode, UserName, UserId, EventType, Event, EventCategory, Comment, ObjectId, ObjectDescr)
	|								 VALUES (dbo.getUniqueDateTime_"+ИмяТаблицы+"(@Date), @Mode, @UserName, @UserId, @EventType, @Event, @EventCategory, @Comment, @ObjectId, @ObjectDescr)
	|select 1 NOCOUNT
	|"+?(КонтрольДублей = 1,"
		|END
		|ELSE select 0
	|","")
 

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


I Love YaBB 2!

Сообщений: 12
Зарегистрирован: 24. Октября 2007
Re: Класс ПоставщикДанныхЖурналРегистрацииSQL
Ответ #14 - 12. Марта 2009 :: 09:07
Печать  
Ну если посмотреть ответ №2, то не так  Улыбка
  
Наверх
 
IP записан
 
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] 
ОтправитьПечать