<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум компьютерной помощи &mdash; Копирование нужных полей документа и атачей с "базы 1" в "базу 2".]]></title>
	<link rel="self" href="https://itpmr.ru/extern.php?action=feed&amp;tid=864&amp;type=atom" />
	<updated>2014-06-19T06:21:08Z</updated>
	<generator>PunBB</generator>
	<id>https://itpmr.ru/viewtopic.php?id=864</id>
		<entry>
			<title type="html"><![CDATA[Копирование нужных полей документа и атачей с "базы 1" в "базу 2".]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124188#p124188" />
			<content type="html"><![CDATA[<p>Пример кнопки, которая отсылает документ с докоборота в промежуточную базу Р.<br />Причем есть 5 вариантов копирования поля &quot;ПРИЛОЖЕНИЯ_&quot; с атачами, и только последний коректно работает.<br />У всех остальных атач в доке в базе &quot;Р&quot; есть, но не отображается в поле &quot;ПРИЛОЖЕНИЯ_&quot;.</p><div class="codebox"><pre><code>Sub Click(Source As Button)
    Dim Session As New NotesSession    
    Dim uiworkspace As New NotesUIWorkspace    
    Dim CurDataBase As NotesDataBase
    
    server$ = &quot;M&quot;
    databaseFileName$ = &quot;Docoborot\R.nsf&quot;
    Dim db2 As NotesDatabase&#039;Межмин
    Set db2 = session.GetDatabase(server$, databaseFileName$)
    If Not db2.Isopen Then&#039;проверка доступа к базе Межмин&#039;
        Messagebox &quot;Нет доступа к Базе Р!&quot;
        Exit Sub
    End If
    
    Dim dt As New NotesDateTime(&quot;Nothing/null&quot;)
    Dim item As NotesItem
    Dim View As NotesView
    Dim DocColl As NotesDocumentCollection    
    Dim CurDoc As NotesDocument &#039;документ   М&#039;
    Dim docR As NotesDocument&#039;документ Межмин&#039;
    Dim doc As NotesDocument
    
    Set CurDoc=uiworkspace.CurrentDocument.Document
    Set CurDataBase=Session.CurrentDataBase
    
    
    If  CurDoc.Server_id(0) &lt;&gt; &quot;&quot; Then
        Messagebox &quot;Документ уже был отправлен в Р&quot;
        Exit Sub
    End If    
    
    If  CurDoc.РЕГИСТРАЦИОННЫЙ_НОМЕР(0) = &quot;&quot; Then
        Messagebox &quot;Документ не зарегистрирован в ведомственном документообороте!&quot;
        Exit Sub
    End If    
    
    Set View=db2.getView(&quot;org&quot;) 
    If View Is Nothing Or Isnull(View) Then
        Messagebox ErrorMessag$+Chr(13) +&quot;Не найдено представление Организации-межмин&quot;         
        Exit Sub
    End If        
    Set DocColl = uiworkspace.PickListCollection(PICKLIST_CUSTOM, False, server$, databaseFileName$, View.Name, &quot;Выбор Адресата&quot;,&quot;раскройте список&quot;)
    
    If DocColl.Count=0 Then
        Exit Sub
    End If
    
    Set doc = DocColl.GetFirstDocument &#039; док в базе кор-адресаты
    CurDoc.Server_id = doc.Server_id  &#039;записали ID получателя
    
    
    
    Set docR = New NotesDocument( db2 ) &#039; создали новый док в базе роутер
    
        &#039; копируем нужные поля            
    
    Set item = CurDoc.GetFirstItem( &quot;ОРГАНИЗАЦИЯ&quot; )
    Call docR.CopyItem (item,&quot;ОРГАНИЗАЦИЯ&quot;)
    
    Set item = CurDoc.GetFirstItem( &quot;ЗАГОЛОВОК&quot; )
    Call docR.CopyItem (item,&quot;ЗАГОЛОВОК&quot;)
    
    Set item = CurDoc.GetFirstItem( &quot;АДРЕСАТ&quot; )
    Call docR.CopyItem (item,&quot;АДРЕСАТ&quot;)</code></pre></div><p>&nbsp; &nbsp; <br />&nbsp; &nbsp; ......<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; &#039;Вариант1<br />&nbsp; &nbsp; </p><div class="codebox"><pre><code>Set item = CurDoc.GetFirstItem( &quot;ПРИЛОЖЕНИЯ_&quot; )
    Call docR.CopyItem (item,&quot;ПРИЛОЖЕНИЯ_&quot;)</code></pre></div><p>&nbsp; &nbsp; <br />&nbsp; &nbsp; &#039;Вариант2<br /></p><div class="codebox"><pre><code>    Set rtitem_R = New NotesRichTextItem ( docR, &quot;ПРИЛОЖЕНИЯ_&quot; )
    If Not Isempty(CurDoc.ПРИЛОЖЕНИЯ_) Then 
    Call rtitem_R.AppendRTItem( CurDoc.GetFirstItem(&quot;ПРИЛОЖЕНИЯ_&quot; ))
    End If    </code></pre></div><p>&nbsp; &nbsp; <br />&nbsp; &nbsp; &#039;Вариант3<br /></p><div class="codebox"><pre><code>    Dim rtitemA As NotesRichTextItem
    Dim rtitemB As NotesRichTextItem
    Set rtitemA = CurDoc.GetFirstItem(&quot;ПРИЛОЖЕНИЯ_&quot; )
    Set rtitemB  = New NotesRichTextItem( docR, &quot;ПРИЛОЖЕНИЯ_&quot; )
    Call rtitemB.AppendRTItem( rtitemA )
    Call rtitemB.Update</code></pre></div><p>&nbsp; &nbsp; <br />&nbsp; &nbsp; &#039;Вариант 4<br />&nbsp; &nbsp; </p><div class="codebox"><pre><code>datapatch$= {C:\XML\}   
    Dim rtitemA As NotesRichTextItem
    Dim rtitem As NotesRichTextItem
    Set rtitem = New NotesRichTextItem( docR, &quot;ПРИЛОЖЕНИЯ_&quot; )
    Dim object As NotesEmbeddedObject
    If CurDoc.HasEmbedded Then    
        Set rtitemA = CurDoc.GetFirstItem(&quot;ПРИЛОЖЕНИЯ_&quot; )
        Forall obj In rtitemA.EmbeddedObjects        
            If  ( obj.Type = EMBED_ATTACHMENT ) Then
                Call obj.ExtractFile( datapatch$ &amp; obj.Source )
                Set object = rtitem.EmbedObject  (EMBED_ATTACHMENT,  &quot;&quot;, datapatch$ &amp; obj.Source)        
                Kill     datapatch$ &amp; obj.Source 
            End If
        End Forall
    End If</code></pre></div><p>&nbsp; &nbsp; <br />&nbsp; &nbsp; &#039;Вариант 5<br /></p><div class="codebox"><pre><code>Dim itemA As NotesItem
    Set itemA = CurDoc.GetFirstItem( &quot;ПРИЛОЖЕНИЯ_&quot; )
    Call itemA.CopyItemToDocument(docR, &quot;ПРИЛОЖЕНИЯ_&quot;)
    
    Set item=CurDoc.GetFirstItem( &quot;СОДЕРЖАНИЕ_&quot; )
    Call docR.copyitem(item, &quot;СОДЕРЖАНИЕ_&quot;) </code></pre></div><p>&nbsp; &nbsp; </p><p>Окончание основного скрипта<br />&nbsp; &nbsp; </p><div class="codebox"><pre><code>Set item = CurDoc.GetFirstItem( &quot;ФАМИЛИЯ&quot; )
    Call docR.CopyItem (item,&quot;ФАМИЛИЯ&quot;)
    Set item = CurDoc.GetFirstItem( &quot;ТЕЛЕФОН&quot; )
    Call docR.CopyItem (item,&quot;ТЕЛЕФОН&quot;)
    
    Set item = CurDoc.GetFirstItem( &quot;Server_id&quot; )
    Call docR.CopyItem (item,Server_id)
&#039; ----------------            
    docR.Form=&quot;fmejved&quot;
    docR.fxml=&quot;0&quot;
    Call docR.Save(True, True)
    
    CurDoc.Server_id=&quot;отправлено&quot;
    Call CurDoc.Save(True,True)    
End Sub</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2014-06-19T06:21:08Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124188#p124188</id>
		</entry>
</feed>
