<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум компьютерной помощи &mdash; Запись истории изменения полей и других действий в базу логирования]]></title>
	<link rel="self" href="http://itpmr.ru/extern.php?action=feed&amp;tid=1120&amp;type=atom" />
	<updated>2022-10-18T12:33:51Z</updated>
	<generator>PunBB</generator>
	<id>http://itpmr.ru/viewtopic.php?id=1120</id>
		<entry>
			<title type="html"><![CDATA[Re: Запись истории изменения полей и других действий в базу логирования]]></title>
			<link rel="alternate" href="http://itpmr.ru/viewtopic.php?pid=124877#p124877" />
			<content type="html"><![CDATA[<p>%REM<br />&nbsp; &nbsp; Sub WriteInDocLog<br />&nbsp; &nbsp; Description: запись в лог (используется другими процедурами данной библиотеки) <br />%END REM<br />Sub WriteInDocLog(cd As NotesDocument, header As String, info As String, flag As Boolean)<br />&nbsp; &nbsp; Dim session As New NotesSession, item As NotesItem<br />&nbsp; &nbsp; Dim db_log As NotesDatabase, view_log As NotesView, doc_log As NotesDocument&nbsp; &nbsp; <br />&nbsp; &nbsp; Dim arr_history_date As Variant, arr_history_info As Variant, arr_history_Name As Variant<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; Set db_log = session.GetDatabase(Logserv_name, Logdb_name)<br />&nbsp; &nbsp; If Not db_log.Isopen Then<br />&nbsp; &nbsp; &nbsp; &nbsp; Print &quot;Нет доступа к БД логов!&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; Exit Sub<br />&nbsp; &nbsp; End If&nbsp; &nbsp; <br />&nbsp; &nbsp; Set view_log=db_log.Getview(&quot;log_system_&quot;+Logflag_db)<br />&nbsp; &nbsp; If view_log Is Nothing Then<br />&nbsp; &nbsp; &nbsp; &nbsp; Print &quot;Нет доступа к представлению логов!&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; Exit Sub<br />&nbsp; &nbsp; End If<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; Set doc_log=view_log.Getdocumentbykey(cd.Universalid)<br />&nbsp; &nbsp; If doc_log Is Nothing Then<br />&nbsp; &nbsp; &nbsp; &nbsp; GoSub CreateDocLog&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Else<br />&nbsp; &nbsp; &nbsp; &nbsp; If doc_log.Size&gt;Logmax_value_bytes Then<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; doc_log.flag=1<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Call doc_log.Save(True, False)&nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GoSub CreateDocLog<br />&nbsp; &nbsp; &nbsp; &nbsp; Else<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; arr_history_date=ArrayAppend( doc_log.history_date, Now ) <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; arr_history_info=ArrayAppend( doc_log.history_info, info )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; arr_history_Name=ArrayAppend( doc_log.history_Name, session.UserName ) <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; doc_log.history_date=arr_history_date<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; doc_log.history_info=arr_history_info<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; doc_log.history_Name=arr_history_Name&nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; End If&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; End If&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &#039;будем или нет перезаписывать инфу о документе<br />&nbsp; &nbsp; If flag And doc_log.header(0)&lt;&gt;header Then doc_log.header=header&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; <br />&nbsp; &nbsp; Call doc_log.Save(True, False)&nbsp; &nbsp; <br />&nbsp; &nbsp; Exit Sub<br />&nbsp; &nbsp; <br />CreateDocLog:<br />&nbsp; &nbsp; Set doc_log = db_log.CreateDocument&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; doc_log.form=&quot;LogAccessHistory&quot;<br />&nbsp; &nbsp; doc_log.header=header<br />&nbsp; &nbsp; doc_log.history_UNID=cd.Universalid<br />&nbsp; &nbsp; doc_log.flag=0<br />&nbsp; &nbsp; doc_log.flag_db=Logflag_db<br />&nbsp; &nbsp; doc_log.Author=&quot;*&quot;<br />&nbsp; &nbsp; doc_log.Reader=&quot;*&quot;<br />&nbsp; &nbsp; Set item=doc_log.Getfirstitem(&quot;Author&quot;)<br />&nbsp; &nbsp; item.Isauthors=True<br />&nbsp; &nbsp; Set item=doc_log.Getfirstitem(&quot;Reader&quot;)<br />&nbsp; &nbsp; item.isreaders=True<br />&nbsp; &nbsp; doc_log.history_date=Now<br />&nbsp; &nbsp; doc_log.history_info=info<br />&nbsp; &nbsp; doc_log.history_Name=session.UserName<br />&nbsp; &nbsp; Return<br />End Sub</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>http://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-10-18T12:33:51Z</updated>
			<id>http://itpmr.ru/viewtopic.php?pid=124877#p124877</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запись истории изменения полей и других действий в базу логирования]]></title>
			<link rel="alternate" href="http://itpmr.ru/viewtopic.php?pid=124876#p124876" />
			<content type="html"><![CDATA[<p>%REM<br />&nbsp; &nbsp; Sub LogPostSave<br />&nbsp; &nbsp; Description: логирование изменений полей в документе<br />&nbsp; &nbsp; вызвается в событии PostSave формы<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; сравниваем значения полей м исходными данными и если были изменения - записываем в лог<br />аргументы<br />&nbsp; &nbsp; header - указываем инфу о документе(по этой информации будут категоризироваться для пользователя документы)<br />&nbsp; &nbsp; flag - True/False (True - перезаписывать header<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; False - не перезаписывать header)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; но в любом случае не зависимо от значения flag(True/False), как минимум один раз, при создании документа лога header запишется<br />%END REM<br />Sub LogPostSave(header As String, flag as boolean)<br />&nbsp; &nbsp; If Not Loginitial Then Exit sub<br />&nbsp; &nbsp; Dim workspace As New NotesUIWorkspace, cd As NotesDocument&nbsp; &nbsp;&nbsp; &nbsp; <br />&nbsp; &nbsp; Dim history_info As String, item As NotesItem, tmp As String, IsSave As Boolean<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; Set cd=workspace.CurrentDocument.Document<br />&nbsp; &nbsp; IsSave=false<br />&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; For i%=0 To UBound(LogMassivU)<br />&nbsp; &nbsp; &nbsp; &nbsp; Set item = cd.GetFirstItem( LogMassivS(i%) ) &#039; Системное лотусовое имя поля<br />&nbsp; &nbsp; &nbsp; &nbsp; If Not (item Is nothing) Then<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If LogMassivV(i%)&lt;&gt;item.Text Then&nbsp; &nbsp;&#039; старое значение поля &lt;&gt; текущему<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tmp=LogMassivU(i%)+&quot; (&quot;+LogMassivS(i%)+&quot;)&quot;+Logsep+&quot;Было: &quot;+Replace(LogMassivV(i%),Chr(13)+Chr(10),Logsep)+Logsep+&quot;Стало: &quot;+Replace(item.Text,Chr(13)+Chr(10),Logsep)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If history_info=&quot;&quot; Then<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; history_info=tmp<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Else<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; history_info=history_info+Logsep+&quot; &quot;+Logsep+tmp&nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IsSave=true<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If<br />&nbsp; &nbsp; &nbsp; &nbsp; End If&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Next<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; If IsSave Then Call WriteInDocLog(cd, header, history_info, flag)<br />End Sub</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>http://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-10-18T12:33:44Z</updated>
			<id>http://itpmr.ru/viewtopic.php?pid=124876#p124876</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запись истории изменения полей и других действий в базу логирования]]></title>
			<link rel="alternate" href="http://itpmr.ru/viewtopic.php?pid=124875#p124875" />
			<content type="html"><![CDATA[<p>%REM<br />&nbsp; &nbsp; Sub LogPostOpen<br />&nbsp; &nbsp; Description: логирование изменений полей в документе<br />&nbsp; &nbsp; вызвается в событии PostOpen формы<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; записываем в массивы исходную информацию при открытии документа<br />%END REM<br />Sub LogPostOpen<br />&nbsp; &nbsp; Dim workspace As New NotesUIWorkspace, session As New NotesSession, db As NotesDatabase<br />&nbsp; &nbsp; Dim view As NotesView, cd As NotesDocument, doc As NotesDocument, item As NotesItem, item1 As NotesItem<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; Set db = session.CurrentDatabase&nbsp; &nbsp; <br />&nbsp; &nbsp; Set view = db.GetView(&quot;SettingsLogHistory&quot;)&nbsp; &nbsp; <br />&nbsp; &nbsp; If view Is Nothing Then<br />&nbsp; &nbsp; &nbsp; &nbsp; Print &quot;Нет доступа к представлению настроек логов!&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; Exit Sub<br />&nbsp; &nbsp; End If&nbsp; &nbsp; <br />&nbsp; &nbsp; Set cd = workspace.CurrentDocument.document<br />&nbsp; &nbsp; Set doc = view.GetFirstDocument&nbsp; &nbsp; <br />&nbsp; &nbsp; Do While Not(doc Is Nothing)<br />&nbsp; &nbsp; &nbsp; &nbsp; If doc.forma(0)=cd.form(0) Then<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If doc.monitor(0)=&quot;1&quot; Then<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Logserv_name=doc.server_name_log(0)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Logdb_name=doc.db_name_log(0)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Logflag_db=doc.flag_db(0)&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; d%=0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Set item1=doc.GetFirstItem(&quot;fields&quot;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ForAll v In item1.Values&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If StrRightBack( v, &quot;|&quot; )=&quot;да&quot; Then&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ReDim Preserve LogMassivS(d%) &#039; Системное лотусовое имя поля<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ReDim Preserve LogMassivU(d%) &#039; Имя поля на русском<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ReDim Preserve LogMassivV(d%) &#039; значение поля<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LogMassivS(d%)=StrLeft( v, &quot;|&quot; )&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LogMassivU(d%)=StrLeft(Replace(v, StrLeft( v, &quot;|&quot; )+&quot;|&quot;, &quot;&quot;), &quot;|&quot; )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If cd.HasItem( LogMassivS(d%) ) Then<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Set item = cd.GetFirstItem( LogMassivS(d%) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LogMassivV(d%)=item.Text&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; d%=d%+1<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Loginitial=True&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End ForAll&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Exit sub<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End if<br />&nbsp; &nbsp; &nbsp; &nbsp; End If&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; Set doc = view.GetNextDocument(doc)<br />&nbsp; &nbsp; Loop<br />End Sub</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>http://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-10-18T12:33:38Z</updated>
			<id>http://itpmr.ru/viewtopic.php?pid=124875#p124875</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запись истории изменения полей и других действий в базу логирования]]></title>
			<link rel="alternate" href="http://itpmr.ru/viewtopic.php?pid=124874#p124874" />
			<content type="html"><![CDATA[<p>%REM<br />&nbsp; &nbsp; Sub LogEvents<br />&nbsp; &nbsp; Description: логирование любых действий с документом<br />&nbsp; &nbsp; вызвается в любом месте кода<br />аргументы <br />&nbsp; &nbsp; info - указываем информацию о совершаемом действии<br />&nbsp; &nbsp; header - указываем инфу о документе(по этой информации будут категоризироваться для пользователя документы)<br />&nbsp; &nbsp; flag - True/False (True - перезаписывать header<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; False - не перезаписывать header)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; но в любом случае не зависимо от значения flag(True/False), как минимум один раз, при создании документа лога header запишется&nbsp; &nbsp; <br />%END REM<br />Sub LogEvents(info As String, header As String, flag As Boolean)<br />&nbsp; &nbsp; Dim session As New NotesSession, workspace As New NotesUIWorkspace, cd As NotesDocument<br />&nbsp; &nbsp; Dim view As NotesView, doc As NotesDocument<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; Set db = session.CurrentDatabase<br />&nbsp; &nbsp; Set cd = workspace.CurrentDocument.document<br />&nbsp; &nbsp; Set view = db.GetView(&quot;SettingsLogHistory&quot;)&nbsp; &nbsp; <br />&nbsp; &nbsp; If view Is Nothing Then<br />&nbsp; &nbsp; &nbsp; &nbsp; Print &quot;Нет доступа к представлению настроек логов!&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; Exit Sub<br />&nbsp; &nbsp; End If&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Set doc = view.GetFirstDocument&nbsp; &nbsp; <br />&nbsp; &nbsp; Do While Not(doc Is Nothing)<br />&nbsp; &nbsp; &nbsp; &nbsp; If doc.forma(0)=cd.form(0) Then<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If doc.monitor(0)=&quot;1&quot; Then<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GoTo cont&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If<br />&nbsp; &nbsp; &nbsp; &nbsp; End If&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; Set doc = view.GetNextDocument(doc)<br />&nbsp; &nbsp; Loop<br />&nbsp; &nbsp; Set doc = view.GetFirstDocument<br />cont:<br />&nbsp; &nbsp; Logserv_name=doc.server_name_log(0)<br />&nbsp; &nbsp; Logdb_name=doc.db_name_log(0)<br />&nbsp; &nbsp; Logflag_db=doc.flag_db(0)&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; <br />&nbsp; &nbsp; Call WriteInDocLog(cd, header, info, flag)<br />End Sub</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>http://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-10-18T12:33:30Z</updated>
			<id>http://itpmr.ru/viewtopic.php?pid=124874#p124874</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запись истории изменения полей и других действий в базу логирования]]></title>
			<link rel="alternate" href="http://itpmr.ru/viewtopic.php?pid=124873#p124873" />
			<content type="html"><![CDATA[<p>Декларации</p><p>Dim LogMassivU() As String&nbsp; &#039;наименования полей для пользователя<br />Dim LogMassivS() As String&nbsp; &#039;наименования полей системные<br />Dim LogMassivV() As String&nbsp; &#039;значения полей при открытии документа<br />Dim Loginitial As Boolean<br />Dim Logserv_name As String<br />Dim Logdb_name As String<br />Dim Logflag_db As String</p><p>Const Logsep=&quot;{***}&quot;<br />Const Logmax_value_bytes=25000 &#039;max кол-во байт которое должно быть в документе</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>http://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-10-18T12:33:20Z</updated>
			<id>http://itpmr.ru/viewtopic.php?pid=124873#p124873</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Запись истории изменения полей и других действий в базу логирования]]></title>
			<link rel="alternate" href="http://itpmr.ru/viewtopic.php?pid=124872#p124872" />
			<content type="html"><![CDATA[<p>Библиотека LogEvents.</p><p>%REM<br />пишет историю изменения полей и других действий в базу логирования<br />1. нужна данная библитека,ее необходимо подключить в глобалах формы по которой док будет создаваться<br />2. прописать вызов AccessPostOpen в событии LogPostOpen нужной формы&nbsp; &nbsp; <br />3. прописать вызов AccessPostSave в событии LogPostSave нужной формы<br />(пункты 2 и 3 нужны для мониторинга изменений полей)<br />4. нужна вьюшка SettingsLogHistory<br />5. нужна форма LogAccessHistory<br />6. ну и для заполнения полей которые нужно мониторить, для удобства, в outline сделать доступ к вышеуказанной вьюшке<br />7. процедура LogEvents нужна для логирования других действий</p><p>Описание процедур см. в каждой процедуре <br />%END REM<br />Option Public</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>http://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-10-18T12:32:46Z</updated>
			<id>http://itpmr.ru/viewtopic.php?pid=124872#p124872</id>
		</entry>
</feed>
