<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум компьютерной помощи &mdash; Блокировка документов, находящихся у руководителя.]]></title>
		<link>https://itpmr.ru/viewtopic.php?id=1146</link>
		<atom:link href="https://itpmr.ru/extern.php?action=feed&amp;tid=1146&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Блокировка документов, находящихся у руководителя.».]]></description>
		<lastBuildDate>Fri, 06 Oct 2023 11:40:24 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Блокировка документов, находящихся у руководителя.]]></title>
			<link>https://itpmr.ru/viewtopic.php?pid=124927#p124927</link>
			<description><![CDATA[<p>В Counteropen мы даем функции значения <br />Block - если в who есть руководитель<br />NotLock - для людей с такой ролью.<br />Rukovod - у руководителя </p><p>vipuser - у руководителя - первый док в виде signers</p><div class="codebox"><pre><code>Function Counteropen(Source As NotesUIDocument) As String
......
Counteropen = &quot;&quot;
....
If Source.IsNewDoc Then
    Print &quot;НОВЫЙ ДОК&quot;
    Counteropen =&quot;new_doc&quot;
  Else
    
    idopen=Source.Document.UniversalID
    Set strukdb = session.GetDatabase(server, &quot;promdoc\policy.nsf&quot; , False )
    
    Set view = strukdb.GetView(&quot;signers&quot;)
    Set ftdoc = view.GetFirstDocument 
    vipuser = ftdoc.FIO(0)
    Print &quot;В структуре руководитель (vipuser)  &quot;  vipuser
    If user  = vipuser  Then  Counteropen =&quot;vipuser&quot;
    
    Set view = strukdb.GetView(&quot;notespeople&quot;)
    
    Set ftdoc=view.GetDocumentByKey(user)
    If Not(ftdoc Is Nothing) Then
      Set item=ftdoc.GetFirstItem(&quot;idopendoc&quot;)
      Call item.AppendToTextList(idopen)   &#039;Записаsли открытие дока в структуру
      ftdoc.computewithform False, False
      Call ftdoc.Save(True,True)  

      If ftdoc.Defolt(0) = &quot;1&quot; Then   &#039;  Ты руководитель!
      Counteropen = &quot;Rukovod&quot; 
        Else &#039; простой чел
          Set item = Source.Document.GetFirstItem ( &quot;who&quot; )
        If Not item Is Nothing Then
          ForAll v In item.Values
            If v = vipuser  Then Print &quot;Ты обычный чувак   - а РУК рассм док!&quot; :  Counteropen =&quot;Block&quot;
          End ForAll    
        End If          
        End If
    Else
      Msgbox &quot;Пользователь не найден в БД структура! функц. Counteropen&quot;
    End If
    
    n=Null  
    roles = Session.Currentdatabase.QueryAccessRoles(Session.UserName )
    If roles(0)&lt;&gt;&quot;&quot;Then   n=ArrayGetIndex(roles,&quot;[NotLock]&quot;)    
    If  Not IsNull(n)  Then Counteropen =&quot;NotLock&quot;
    
  End If</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Fri, 06 Oct 2023 11:40:24 +0000</pubDate>
			<guid>https://itpmr.ru/viewtopic.php?pid=124927#p124927</guid>
		</item>
		<item>
			<title><![CDATA[Блокировка документов, находящихся у руководителя.]]></title>
			<link>https://itpmr.ru/viewtopic.php?pid=124926#p124926</link>
			<description><![CDATA[<p>Всё что у руководителя - заблокировано у всех сотрудников.</p><p>На событие открытия документа стоит следующий код:</p><p>Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)<br />&nbsp; Dim session As New NotesSession<br />&nbsp; user = session.CommonUserName<br />&nbsp; Print &quot;Queryopen&quot;<br />&nbsp; Dim ruk As String<br />&nbsp; ruk = Counteropen(Source) <br />&nbsp; Print&nbsp; &quot;Counteropen:&quot;&nbsp; &nbsp;ruk<br />&nbsp; If ruk&nbsp; = &quot;Block&quot; Then Msgbox &quot;Документ у Руководителя!&quot;&nbsp; : continue=False</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Fri, 06 Oct 2023 11:37:43 +0000</pubDate>
			<guid>https://itpmr.ru/viewtopic.php?pid=124926#p124926</guid>
		</item>
	</channel>
</rss>
