<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум компьютерной помощи &mdash; Удаление поля $ref у ответного документа. Сделать документ главным.]]></title>
		<link>https://itpmr.ru/viewtopic.php?id=999</link>
		<atom:link href="https://itpmr.ru/extern.php?action=feed&amp;tid=999&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Удаление поля $ref у ответного документа. Сделать документ главным.».]]></description>
		<lastBuildDate>Thu, 15 Sep 2016 13:14:09 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Удаление поля $ref у ответного документа. Сделать документ главным.]]></title>
			<link>https://itpmr.ru/viewtopic.php?pid=124590#p124590</link>
			<description><![CDATA[<p>Вариант просто удалить $ref у ответного документа - не работает.</p><p>Код кнопки Сделать документ главным.<br /></p><div class="codebox"><pre><code>Sub Click(Source As Button)
    On Error Goto Errh
    
    Dim ns As New NotesSession    
    Dim db As NotesDatabase    
    Dim agent As NotesAgent    
    Dim docRequest As NotesDocument  &#039;Новый документ запрос
    Dim linkdoc As NotesDocument  
    Dim curdoc As NotesDocument &#039;Текущийдок
    Dim Unid As String
    Dim Unid1 As String
    Dim uilinkdoc As NotesUIDocument
    Dim uicurdoc As NotesUIDocument   
    Dim paramid As String 
    Dim nw As New NotesUIworkspace
    
    
    flag=Messagebox (&quot;Сделать документ главным?После переоткрытия документ станет главным&quot;+Chr(13) +&quot;При нажатии на кнопку  Отмена документ останется ответным!!!&quot;,1+64+0+0, &quot;Сообщение...&quot;)
    Const IDCancel=2
    If flag=IDCancel Then
        Exit Sub    
    Else
        
        
        Set db=ns.CurrentDatabase
        Set uicurdoc=nw.CurrentDocument
        Set curdoc=uicurdoc.Document
        
        
    &#039;Создаем новый док(док-запрос) и записываем в него url дока(linkdoca) из которого копируем связь и url дока(текущего) куда вставляем связь
        Set docRequest = db.CreateDocument     
    &#039;
        Set item = docRequest.AppendItemValue(&quot;Field_curdoc_url&quot;, curdoc.NotesURL)
        Set item =docRequest.AppendItemValue(&quot;Field_user_name&quot;, ns.UserName)
        
        Call docRequest.save(True, False)
        
    &#039;Получаем агента(серверного с правами менеджера), передаем ему параметр(Noteid дока-запроса,и запускаем агент)
        Set agent = db.GetAgent(&quot;DelRefto&quot;)
        paramid = docRequest.Noteid
        Call Agent.RunOnServer(paramid)
        
     &#039;&#039;
        Call uicurdoc.Close()
        Set myview = db.GetView(&quot;my&quot;)
        Call myview.Refresh
        Set myview = db.GetView(&quot;myembed&quot;)
        Call myview.Refresh
    End If    
    Exit Sub
errh:
    Msgbox Error &amp; | in line | &amp; Erl(), 64, |Lotus Notes (| &amp; Lsi_info(2) &amp; |)|
    Exit Sub
End Sub</code></pre></div><br /><p>Агент DelRefto<br /></p><div class="codebox"><pre><code>Sub Initialize
    Dim ns As NotesSession    
    Dim db As NotesDatabase    
    Dim docrequest As NotesDocument &#039;--документ-запрос
    Dim curdoc As NotesDocument  
    Dim sdoc As NotesDocument &#039;-- документ в базе links
    Dim item As NotesItem
    Dim agent As NotesAgent    
    Dim url_link_doc As String &#039;-- URL документа откуда копируем связь
    Dim url_cur_doc As String &#039;-- URL документа куда втавляем связь
    Dim user_name As String &#039;-- Имя пользователя кто копирует/вставляет связь
    Dim id_link As String &#039;--Переменная для Unid link документа
    Dim id_curdoc As String &#039;--Переменная для Unid текущего документа    
    Dim session As New NotesSession    
    Set ns = New NotesSession    
    Set db = ns.CurrentDatabase    
    Set agent = ns.CurrentAgent    
    
    
    Dim Noteid As Variant
    
    On Error Goto Errh
    &#039;Получаем параметр, передаваемый в агент, то есть получаем Noteid
    NoteId = agent.ParameterDocID  
    
    &#039;Получаем документ    
    Set docrequest = db.GetDocumentById(NoteId)    
    
    &#039;Получаем url curdoc-a     
    Set item= docrequest.GetFirstItem (&quot;Field_curdoc_url&quot;)
    If (item Is Nothing) Then
        Print &quot;Field_curdoc_url не найдено!&quot;
    Else
        url_cur_doc=item.Text
    End If
    &#039;Получаем user_name
    Set item= docrequest.GetFirstItem (&quot;Field_user_name&quot;)
    If (item Is Nothing) Then
        Print &quot;Field_user_name не найдено!&quot;
    Else
        user_name=item.Text
    End If
    
    &#039;---
    
    id_curdoc=GetUnidFromUrl(url_cur_doc)     &#039;--Получаем Unid текущего документа
    
    Set sdoc=DatabaseGetDocumentByUnid(db,id_curdoc) &#039;--Получаем curdoc-документ в базе 
    If sdoc Is Nothing Then
        &#039;
        Goto Errh
        
    Else 
        
        Dim tt As NotesItem
    &#039;Set tt=sdoc.Getfirstitem(&quot;$Ref&quot;)
    &#039;Call item.Remove()
        sdoc.responce=&quot;&quot;
        sdoc.parent=&quot;&quot;
        sdoc.parent2=&quot;&quot;
        sdoc.isreg=&quot;&quot;
        Call sdoc.Removeitem(&quot;$Ref&quot;)
        Call sdoc.Save(1,0)
    End If
    
 
    &#039;Удаляем док-запрос
    Call docrequest.Remove(True)
    
    Exit Sub
Errh:    
    &#039;Создание документа в БД связей, с номером ошибки , также Print ошибки в базе Log на сервере
    &#039;Call CreateDocError(Cstr(Error) &amp;  &quot; in line &quot; &amp; Cstr(Erl()) &amp; &quot; Lotus Notes (&quot; &amp;Cstr(Lsi_info(12)) &amp; &quot;)&quot;, url_cur_doc )
    Print Error &amp; | in line | &amp; Erl(), 64, |Lotus Notes (| &amp; Lsi_info(2) &amp; |)|
    Exit Sub
End Sub</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Thu, 15 Sep 2016 13:14:09 +0000</pubDate>
			<guid>https://itpmr.ru/viewtopic.php?pid=124590#p124590</guid>
		</item>
	</channel>
</rss>
