<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум компьютерной помощи]]></title>
		<link>http://itpmr.ru/index.php</link>
		<atom:link href="http://itpmr.ru/extern.php?action=feed&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние темы раздела «Форум компьютерной помощи».]]></description>
		<lastBuildDate>Wed, 04 Feb 2026 11:24:53 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Открытие баз Domino в браузере.]]></title>
			<link>http://itpmr.ru/viewtopic.php?id=1176&amp;action=new</link>
			<description><![CDATA[<p>Как сделать в домино, чтобы запрашивался логин/пароль или ид файл при открытии сервера с браузера?<br />1. Configuration → Servers → All Server Documents. Internet Protocols → HTTP.<br />Allow HTTP clients to browse databases: - ДА.</p><p>2. Вкладка Domino&nbsp; Web Engine, раздел HTTP Sessions,&nbsp; поле&nbsp; Session authentication: Single Server.</p><p>3. Вкладка&nbsp; Security - Security Settings.<br />Allow anonymous Notes connections: - НЕТ.<br />Check passwords on Notes IDs: - ДА.</p><p>4. В профиле юзера указываем Internet password.</p><p>5. В свойствах базы данных у Anonymous - нет доступа.<br />В дополнительных свойствах базы указываем доступ по интернету - например эдитор.</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Wed, 04 Feb 2026 11:24:53 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?id=1176&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Работа со строками в LotusScript. Извлечение подстрок.]]></title>
			<link>http://itpmr.ru/viewtopic.php?id=1175&amp;action=new</link>
			<description><![CDATA[<p>Возврат количества символов.<br /></p><div class="codebox"><pre><code>Left (string, n) – первые n символов строки.


Right (string, n) – последние n символов.


Instr ([start,] string, substring) – ищет substring в строке, возвращает позицию.
s = &quot;Hello LotusScript&quot;
pos = Instr(s, &quot;Lotus&quot;)   &#039; ищем &quot;Lotus&quot;
Messagebox pos   &#039; результат: 7



Mid (string, start [, length]) – подстрока &quot;string&quot; начиная с позиции start, длиной length.
Пример.
Print Mid$(&quot;InterTrust&quot;, 1,5) &#039; Выводит Inter
Print Mid$(&quot;InterTrust&quot;, 6) &#039; Выводит Trust</code></pre></div><p>Еще есть Третий параметр &quot;Количество вхождений, которые необходимо сопоставить&quot;.<br />ПО умолчанию - 1. Первое вхождение.</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Wed, 01 Oct 2025 06:26:37 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?id=1175&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Последовательность событий NotesSAXParser]]></title>
			<link>http://itpmr.ru/viewtopic.php?id=1174&amp;action=new</link>
			<description><![CDATA[<p>У NotesSAXParser в LotusScript есть стандартный набор событий, которые он вызывает при последовательном разборе XML. <br />Ты сам задаёшь имена функций-обработчиков, а парсер их вызывает.</p><br /><p>StartDocument<br />Вызывается один раз в начале разбора.<br />Обычно тут инициализируют глобальные переменные, буферы.</p><br /><p>StartElement(ByVal name As String, ByVal attrs As Variant)<br />Вызывается каждый раз при открытии нового XML-элемента (&lt;tag ...&gt;).<br />name – имя тега.<br />attrs – массив атрибутов вида (&quot;attr1&quot;, &quot;value1&quot;, &quot;attr2&quot;, &quot;value2&quot;, …).</p><br /><p>Characters(ByVal chars As String) <br />Вызывается для текстового содержимого между тегами.<br />Может вызываться несколько раз подряд для одного элемента (парсер дробит данные).</p><br /><p>EndElement(ByVal name As String)<br />Вызывается при закрытии элемента (&lt;/tag&gt;).</p><br /><p>EndDocument<br />Вызывается один раз в конце разбора.<br />Обычно здесь можно обработать накопленные данные.</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Tue, 30 Sep 2025 10:37:14 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?id=1174&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[DOMParser не может распарсить результат NotesDXLExporter.]]></title>
			<link>http://itpmr.ru/viewtopic.php?id=1173&amp;action=new</link>
			<description><![CDATA[<p>Я не знал такой нюанс.<br />Что результат NotesDXLExporter (DXL) не всегда подходит для загрузки в NotesDOMParser напрямую.<br />Если DXL содержит гигантские вложения в &lt;rawitemdata&gt;/&lt;filedata&gt;, DOMParser может падать.<br />Остается NotesSAXParser использовать вместо NotesDOMParser.<br /></p><div class="codebox"><pre><code>    &#039; ---------------- DXL: экспортим, ----------------
    Dim exporter As NotesDXLExporter
    Dim importer As NotesDXLImporter
    Dim dxl As String
    
    Set exporter = session.CreateDXLExporter()
    exporter.RichTextOption=DXL_RICHTEXTOPTION_DXL
    exporter.OmitRichtextAttachments=1
    
    dxl = exporter.Export(docR) &#039; получаем DXL как строку
        &#039; Msgbox dxl
    Call streamIn.open (&quot;C:\XML\DXL.xml&quot;)       &#039;   СОЗДАЛИ ФАЙЛ DXL.xml
    Call streamIn.Truncate()
    streamIn.WriteText (dxl)
    
        &#039; ================== DOMParser  ==================
    
    Dim domParser As NotesDOMParser
    Dim docNode As NotesDOMDocumentNode
    Dim nodelist As NotesDOMNodeList
    Dim itemNode As NotesDOMElementNode
    Dim rawNode As NotesDOMElementNode
    Dim rawData As String
    Dim i As Long
    Dim bodyCount As Integer
    Dim children As NotesDOMNode
    Print &quot;1111111111111111111111111111&quot;
    
    Set domParser=session.CreateDOMParser(streamIn) 
    Print &quot;222222222222222222222&quot;
    domParser.Process
    Print &quot;domParser.Process&quot;
    
    Set docNode = domParser.Document
    Call streamIn.Close
    Print &quot;docNode&quot;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Thu, 25 Sep 2025 12:37:46 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?id=1173&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Работа с MIME в Lotus]]></title>
			<link>http://itpmr.ru/viewtopic.php?id=1172&amp;action=new</link>
			<description><![CDATA[<p>Есть у&nbsp; меня кнопка для переименования вложений, которая дергает мою функцию GetEmbedObject - в которой я хочу переименовать вложение с помощью NotesMIMEEntity.</p><div class="codebox"><pre><code>Sub Click(Source As Button)     &#039;  Через МИМЕ - не пашет
    On Error Goto ErrH
    Dim session As New NotesSession, ws As New NotesUIWorkspace, db As NotesDatabase, sview As NotesView, dc As NotesDocumentCollection
    Dim uidoc As NotesUIDocument, doc As NotesDocument, templdoc As NotesDocument, DocTemp As NotesDocument
    Dim picklist As Variant, mes As String
    Dim rtitem As NotesRichTextItem
    Dim Name_Stncl_List()  &#039; все имена вложений
    
    
    
    Set doc = ws.CurrentDocument.Document
    Set uidoc=ws.CurrentDocument
    Call uidoc.save
    
    Set rtitem = doc.GetFirstItem(&quot;attach&quot;)
    
    Dim xxxx As  Integer
    i=0
    If ( rtitem.Type = RICHTEXT ) Then 
        If Not Isempty(rtitem.EmbeddedObjects) Then  
            Forall obj In rtitem.EmbeddedObjects
                If obj.Type = EMBED_ATTACHMENT Then   &#039; шаг 1 имена вложений в массив
                    If obj.FileSize=0 Then
                        xxxx =     Messagebox     ({&quot;Приложение:  } &amp; obj.Source &amp; { имеет размер 0 байт.} &amp; Chr(13) &amp; Chr(13)   &amp; {Удалить?&quot;}, 1 , &quot;Удаление нулевого вложения.&quot; ) 
                        If xxxx = 1 Then
                            doc.history= Cstr(Now)   + &quot; &quot;+ session.CommonUserName + &quot; удалено приложение размером 0 байт (&quot;  + obj.Source + &quot;) &quot;   &amp;Chr(13) &amp; &quot; &quot;&amp;Chr(13) &amp;  doc.history(0)
                            Call  obj.Remove
                            doc.ReplaceItemValue({SaveOptions},{0}).SaveToDisk=False
                            Call doc.save (True,False)
                            Call uidoc.Close
                            Call ws.EditDocument(True, doc)  &#039;  False - чтение
                            Exit Sub
                        End If
                        
                    Else
                        Redim Preserve Name_Stncl_List(i)        
                        Name_Stncl_List(i)=    obj.Source    &amp;  {|}&amp;   obj.Name &#039;    в Name_Stncl_List вносим имена вложений (Source) и   альясы (Name)
                        
                        i=i+1
                    End If
                End If                
            End Forall
        End If
    End If        
    
    If i&gt;0 Then        &#039;есть  хоть одно вложение в поле атач
        Set DocTemp = doc.ParentDatabase.CreateDocument
        DocTemp.ReplaceItemValue  &quot;Name_ListAttach&quot;, Name_Stncl_List   &#039; скрытое поле Name_ListAttach на диалог формне с  Source   |  Name
        
        If Not    ws.DialogBox(&quot;ChooseDlg&quot;,True,True,False,False,False,False,&quot;Переименовать &quot;,doctemp, True) Then Exit Sub
        
        nameobj2 =  doctemp.ListAttach(0)
        Print &quot;---&quot;
        Print nameobj2         &#039;  псевдоним Name
    End If
    
    datapatch$ = &quot;C:\XML\&quot;
    If  Dir$ (datapatch$ ,16 )=&quot;&quot; Then 
        Mkdir datapatch$
    End If
    
    i=1 
    Forall obj In rtitem.EmbeddedObjects
        If obj.Name = nameobj2  Then   &#039; nameobj2 - ямя выбранного вложения (псевдоним)
            Dim object3 As NotesEmbeddedObject
            Set object3 =     rtitem.GetEmbeddedObject(nameobj2)
            Print &quot;object3.Source &quot; object3.Source
            new_nameobj=Trim(Inputbox$(&quot;Введите новое имя приложения &quot;  &amp; i ,&quot;Ввод названия приложения&quot;,Strleftback(object3.Source,&quot;.&quot;)   ))       &#039;  строка слева от первой точки ( без расширения)
            If new_nameobj=&quot;&quot; Then Exit Sub
            
            new_nameobj = new_nameobj &amp; &quot;.&quot; &amp; Strrightback (object3.Source,&quot;.&quot;)    &#039;   имя + расширение файла
            
            If new_nameobj&lt;&gt;nameobj2 Then   &#039;  надо переименовать
                Call obj.ExtractFile( datapatch$ &amp; nameobj2) 
                Name datapatch$ &amp; nameobj2   As  datapatch$ &amp; new_nameobj   &#039;  переименовать файл nameobj на диске в new_nameobj
                
                &#039;Call rtitem.EmbedObject ( EMBED_ATTACHMENT, &quot;&quot;, datapatch$ &amp; new_nameobj)    СЛЕТАЕТ ИКОНКА
                Call    GetEmbedObject (&quot;attach&quot;,   datapatch$ &amp; new_nameobj, doc )
                
            &#039;    Msgbox object.Name 
            &#039;    Call  object.Remove
                Kill  datapatch$ &amp; new_nameobj
            End If
            
        End If
        i=i+1 
    End Forall
    
    Call doc.ComputeWithForm(False, False)
    
    Call    doc.Save(1,0)
    Call uidoc.save
    Print &quot;11.&quot;
&#039;    Set rtitem = doc.GetFirstItem(&quot;attach&quot;)
&#039;    Forall obj In rtitem.EmbeddedObjects
&#039;        Print  object.Source
&#039;        For i = 1 To Len(object.Source)
&#039;            ch = Mid$(object3.Source, i, 1)
&#039;            Print &quot;Символ=&quot; &amp; ch &amp; &quot;,  Код(Asc)=&quot; &amp; Asc(ch)
&#039;        Next    
&#039;    End Forall
    
    
    Print &quot;Сохранили.&quot;
&#039;    doc.history= Cstr(Now)      + &quot; &quot;+  session.CommonUserName + &quot; переименовано  приложение (&quot;  + nameobj  + &quot;) &quot;   &amp;Chr(13) &amp; &quot; &quot;&amp;Chr(13) &amp;  doc.history(0)
    
&#039;    doc.ReplaceItemValue({SaveOptions},{0}).SaveToDisk=False
&#039;    Call doc.save (True,False)
&#039;    Call uidoc.Close
&#039;    Call ws.EditDocument(True, doc)  &#039;  False - чтение
    Exit Sub
ErrH:
    Print &quot;Ошибка &quot; &amp; Error(Err) &amp; &quot; в строке &quot; &amp; Erl    
    Exit Sub
End Sub</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Thu, 18 Sep 2025 12:07:09 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?id=1172&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Заполнение инициалов ФИО на основе фамилии на языке формул (@ Formula)]]></title>
			<link>http://itpmr.ru/viewtopic.php?id=1171&amp;action=new</link>
			<description><![CDATA[<p>Была довольно тривиальная задача.<br />Есть на форме поле &quot;FIO&quot; - в которое вводиться &quot;Фамилия Имя Отчество/организация&quot; , организации может не быть.<br />и нужно в поля:<br />&quot;notesname&quot;&nbsp; автоматически ввести - &quot;Фамилия Имя Отчество&quot;,<br />&quot;FIO_1&quot; автоматически ввести -&quot;И.О. Фамилия&quot;.</p><p>я добавил в&nbsp; &quot;FIO&quot; на событие Input Translation (инпут трансляция) следующий код - это с отладочной инфой:</p><div class="codebox"><pre><code>x:=@Explode(@ProperCase(@Trim(@ThisValue)); &quot;/&quot;);
@Prompt([OK];&quot;x[1]&quot;;x[1] );
FIELD notesname:=x[1];
@Prompt([OK];&quot;@Elements x[1] &quot;; @Text(@Elements(  @Explode(@Trim(x[1])))  ) );

@If(
@Elements(  @Explode(@Trim(x[1]))  ) &gt;1;  

@do(
y:=@Explode(@Trim(x[1]); &quot; &quot;);
@Prompt([OK];&quot;y&quot;;@Implode(y) );
f:=y[1]; i:=y[2]; o:=y[3];
FIELD  FIO_1  := @Left(i;1) + &quot;.&quot; + @Left(o;1)  + &quot;.&quot; + f);
@ThisValue
);

x[1]</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Wed, 20 Aug 2025 07:45:54 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?id=1171&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Программное прикрепление файла с иконкой в рич поле на LotusScript.]]></title>
			<link>http://itpmr.ru/viewtopic.php?id=1170&amp;action=new</link>
			<description><![CDATA[<p>Есть известный глюк лотуса, при прикреплении файла в лотус-документ пропадает окинка у файла.<br />Call rtitem.EmbedObject ( EMBED_ATTACHMENT, &quot;&quot;, путь и имя файла C:\XML\документ.doc)</p><br /><p>Хочу програмно на лотус-скрипте (LotusScript) прикреплять в поле файлы, но чтобы при этом не исчезала иконка.</p><p>Для этого решил попробовать использовать класс NotesMIMEEntity (Multipurpose Internet Mail Extensions - многоцелевое расширение интерне почты)</p><br /><p>MIME - это API-объект, который позволяет читать, изменять, создавать и удалять MIME-содержимое внутри письма или любого документа, где поле хранится в MIME-формате.</p><p>doc.CreateMIMEEntity(&quot;Body&quot;) — создаёт MIME-представление в поле Body вместо RichTextItem.<br />Заголовки (Content-Type, Content-Disposition, Content-Transfer-Encoding) задаются вручную.</p><br /><p>multipart/mixed&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ← Корневой MIME-узел (письмо целиком)<br />│<br />├─ multipart/alternative&nbsp; &nbsp; &nbsp;← Варианты отображения тела письма<br />│&nbsp; ├─ text/plain&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ← Версия письма в чистом тексте (на случай старых клиентов)<br />│&nbsp; └─ text/html&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;← HTML-версия письма (ссылки на картинки через CID)<br />│<br />├─ multipart/related&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ← Блок HTML + встроенные картинки<br />│&nbsp; ├─ text/html&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;← HTML-код письма<br />│&nbsp; ├─ image/png (Content-ID: &lt;img1&gt;) ← Встроенная картинка<br />│&nbsp; └─ image/jpeg (Content-ID: &lt;img2&gt;)← Ещё картинка<br />│<br />└─ application/pdf&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ← Обычное вложение (файл.pdf)</p><br /><p>Каждый блок MIME (multipart/…, text/html, application/pdf) — это отдельный объект NotesMIMEEntity.<br />У каждого есть заголовки (NotesMIMEHeader) и тело (данные в NotesStream).<br />Чтобы пройти по всей структуре, используют:<br />.GetFirstChildEntity — первый &quot;вложенный&quot; MIME-блок<br />.GetNextSiblingEntity — соседний MIME-блок<br />.GetParentEntity — родительский блок.</p><br /><p>Хочу вложить файл в поле attach через MIMEEntity:</p><p>Примерный код, кнопка test1.</p><div class="codebox"><pre><code> 

Sub Click(Source As Button)
    Sub Click(Source As Button)
    On Error Goto ErrH
    
    Dim ses As New NotesSession, ws As New NotesUIWorkspace
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    Dim uidoc As NotesUIDocument
    
    ses.ConvertMIME = False
    Set db = ses.Currentdatabase
    Set doc = ws.CurrentDocument.Document
    Set uidoc=ws.CurrentDocument
    
    Dim body As NotesMIMEEntity, header As NotesMIMEHeader ,  child As NotesMIMEEntity  &#039;  body  child  неисп пока
    
    Dim mime As NotesMIMEEntity
    Set mime = doc.CreateMIMEEntity(&quot;attach&quot;)
    
    Set header = mime.CreateHeader(&quot;Content-Type&quot;)    &#039;   создали хедер штмл
    Call header.SetHeaderVal(&quot;application/vnd.ms-excel&quot;)
    Call header.SetHeaderValAndParams({multipart/alternative;charset=&quot;UTF-8&quot;})
    
&#039; Открываем файл
    Dim Stream As NotesStream
    Set Stream = ses.Createstream()
    Call Stream.Open(&quot;С:/Temp/excel.xlsx&quot;, &quot;UTF-8&quot;) 
    
&#039; Записываем содержимое в MIMEEntity
    Call mime.SetContentFromBytes(Stream, &quot;application/vnd.ms-excel&quot;, ENC_BASE64)
    
 &#039; Сохраняем документ
    Call doc.Save(True, False)
    
    ses.ConvertMIME = True
    Call Stream.Close()
    
    Call uidoc.Close
    Call ws.EditDocument(True, doc)  &#039;  False - чтение
    
    Exit Sub
ErrH:
    Print &quot;Ошибка &quot; &amp; Error(Err) &amp; &quot; в строке &quot; &amp; Erl    
    Exit Sub
End Sub</code></pre></div><p>Но!<br />Set mime = doc.CreateMIMEEntity(&quot;attach&quot;)<br />не работает, так как в документе уже есть такое поле, на форме например.</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Tue, 12 Aug 2025 06:20:23 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?id=1170&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Переименование приложения (кнопка на LotusScript)]]></title>
			<link>http://itpmr.ru/viewtopic.php?id=1169&amp;action=new</link>
			<description><![CDATA[<p>Вот код кнопки, которая берет все вложения в поле и можно вводить новое имя для поля.<br />Чтобы не перетаскивать приложение на рабочий стол, переименовывать его и потом опять крепить в лотус карточку.<br />Версия 1 кнопки на LotusScript.<br />Но есть недостаток, некорректно именует приложения с одинаковыми именами файлов.<br />И слетает иконка после прикрепления вложения.</p><div class="codebox"><pre><code>Sub Click(Source As Button)
    On Error Goto ErrH
    Dim session As New NotesSession, ws As New NotesUIWorkspace, db As NotesDatabase, sview As NotesView, dc As NotesDocumentCollection
    Dim uidoc As NotesUIDocument, doc As NotesDocument, templdoc As NotesDocument, DocTemp As NotesDocument
    Dim picklist As Variant, mes As String
    Dim rtitem As NotesRichTextItem
    Dim rtitem2 As NotesRichTextItem
    Dim Name_Stncl_List()  As Variant  &#039; все имена вложений
    
    Set doc = ws.CurrentDocument.Document
    Set uidoc=ws.CurrentDocument
    Set rtitem = doc.GetFirstItem(&quot;attach&quot;)
    
    Dim xxxx As  Integer
    i=0
    If ( rtitem.Type = RICHTEXT ) Then 
        If Not Isempty(rtitem.EmbeddedObjects) Then  
            Forall obj In rtitem.EmbeddedObjects
                If obj.Type = EMBED_ATTACHMENT Then   &#039; шаг 1 имена вложений в массив
                    If obj.FileSize=0 Then
                        xxxx =     Messagebox     ({&quot;Приложение:  } &amp; obj.Source &amp; { имеет размер 0 байт.} &amp; Chr(13) &amp; Chr(13)   &amp; {Удалить?&quot;}, 1 , &quot;Удаление нулевого вложения.&quot; ) 
                        If xxxx = 1 Then
                            doc.history= Cstr(Now)   + &quot; &quot;+ session.CommonUserName + &quot; удалено приложение размером 0 байт (&quot;  + obj.Source + &quot;) &quot;   &amp;Chr(13) &amp; &quot; &quot;&amp;Chr(13) &amp;  doc.history(0)
                            Call  obj.Remove
                            doc.ReplaceItemValue({SaveOptions},{0}).SaveToDisk=False
                            Call doc.save (True,False)
                            Call uidoc.Close
                            Call ws.EditDocument(True, doc)  &#039;  False - чтение
                            Exit Sub
                        End If
                        
                    Else
                        Redim Preserve Name_Stncl_List(i)        
                        Name_Stncl_List(i)= obj.Source &#039; в Name_Stncl_List вносим имена вложений
                        Print Name_Stncl_List(i)
                        i=i+1
                    End If
                End If                
            End Forall
        End If
    End If        
    
    If i&gt;0 Then        &#039;есть  хоть одно вложение в поле атач
        
        nameobj = ws.Prompt (PROMPT_OKCANCELLIST,     &quot;Переименовать&quot;, &quot;Выберите вложение&quot;,     Name_Stncl_List(0), Name_Stncl_List)
        If nameobj=False Then    Exit Sub
    End If
    
    datapatch$ = &quot;C:\XML\&quot;
    If  Dir$ (datapatch$ ,16 )=&quot;&quot; Then 
        Mkdir datapatch$
    End If
    
    i=1 
    Forall obj In rtitem.EmbeddedObjects
        If obj.Source = nameobj Then   &#039; nameobj - ямя выбранного вложения
            
            new_nameobj=Trim(Inputbox$(&quot;Введите новое имя приложения &quot;  &amp; i ,&quot;Ввод названия приложения&quot;,nameobj))        
            If new_nameobj&lt;&gt;nameobj Then   &#039;  надо переименовать
                Call obj.ExtractFile( datapatch$ &amp; nameobj) 
                Name datapatch$ &amp; nameobj   As  datapatch$ &amp; new_nameobj   &#039;  переименовать файл nameobj на диске в new_nameobj
                Call rtitem.EmbedObject ( EMBED_ATTACHMENT, &quot;&quot;, datapatch$ &amp; new_nameobj)
                Call  obj.Remove
                Kill  datapatch$ &amp; new_nameobj
            End If
            
        End If
        i=i+1 
    End Forall
    
    Call    doc.Save(1,0)
    Print &quot;Сохранили.&quot;
    doc.history= Cstr(Now)      + &quot; &quot;+  session.CommonUserName + &quot; переименовано  приложение (&quot;  + nameobj  + &quot;) &quot;   &amp;Chr(13) &amp; &quot; &quot;&amp;Chr(13) &amp;  doc.history(0)
    
    doc.ReplaceItemValue({SaveOptions},{0}).SaveToDisk=False
    Call doc.save (True,False)
    Call uidoc.Close
    Call ws.EditDocument(True, doc)  &#039;  False - чтение
    
    
    Exit Sub
    
ErrH:
    Print &quot;Ошибка &quot; &amp; Error(Err) &amp; &quot; в строке &quot; &amp; Erl    
    Exit Sub
End Sub</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Wed, 06 Aug 2025 06:19:27 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?id=1169&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Гаснет и снова включается монитор]]></title>
			<link>http://itpmr.ru/viewtopic.php?id=1168&amp;action=new</link>
			<description><![CDATA[<p>Доброго времени суток ,у меня имеется древний комп приобретенный ещё в 2013 году Монитор BQ соединен HDMI кабелем с системником.</p><p>Розетки в паре комнат в одной сети расположены ,и как только вкл/откл сплит ,стиралка, водяной насос ,или судя по всему как я прдозреваю скачки напряжения - гаснет и затем включается монитор.<br /> Погас включился ,погас включился Как с этим бороться ? Просто я крайне деревянный в этом направлении ,в целом редко пользуюсь. до этого монитор был соединён через кабель via, но вдруг перестал работать ,родключил HDMI и понеслось.</p>]]></description>
			<author><![CDATA[null@example.com (kasini16)]]></author>
			<pubDate>Sun, 20 Jul 2025 16:55:26 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?id=1168&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Отправка уведомлений в BIMOID с LotusScript.]]></title>
			<link>http://itpmr.ru/viewtopic.php?id=1167&amp;action=new</link>
			<description><![CDATA[<p>Вызываем в кнопке отправки документа функцию<br />&nbsp; &nbsp; Call BIMOID (curdoc, picklist, strukdb, user , db&nbsp; )</p><p>Создаем функцию&nbsp; BIMOID&nbsp; в какой-либо библиотеке, и передаем в неё параметры - для отправки уведомлений в мессенджер BIMOID через серверный агент BIMOID.</p><br /><div class="codebox"><pre><code>Sub BIMOID (curdoc As NotesDocument, picklist As Variant, strukdb As NotesDatabase, user As String, db As NotesDatabase )
    On Error GoTo Errh   &#039; для отправк уведомлений в месседжер BIMOID серез серверный агент
    Dim item As NotesItem
    Dim strukview As NotesView
    Set strukview = strukdb.GetView(&quot;notespeople&quot;)
    
    Dim paramid As String 
    Dim agent As NotesAgent    
    Dim docRequest As NotesDocument 
    Dim docstrukt As NotesDocument
    Dim BIMOID As Variant
    
    BIMOID =&quot;&quot;
    str1=&quot;&quot;
    ForAll v In picklist   &#039;Найти в БД Структура и взять chatid
        Set docstrukt =    strukview.GetDocumentByKey(v)
        BIMOID = BIMOID +  docstrukt.chatid(0) + Chr(10)
    End ForAll    
    Print &quot;BIMOID &quot; BIMOID
    
    mes= &quot;Вам пришел документ &quot; + CStr(curdoc.datereg(0)) + &quot; №&quot; + CStr(curdoc.fullregnom(0))   +Chr(10) + &quot; от  &quot;  + user
    
    Set docRequest = db.CreateDocument     
    Set item = docRequest.AppendItemValue(&quot;doc_mes&quot;, mes) 
    Set item = docRequest.AppendItemValue(&quot;FIO&quot;, BIMOID) 
    Call docRequest.save(True, False)
    
    Print &quot;stsrt agent BIMOID&quot;
    Set agent = db.GetAgent(&quot;BIMOID&quot;)
    paramid = docRequest.Noteid
    Print &quot;paramid=&quot; + paramid
    If Not agent.RunOnServer(paramid) = 0 Then
        Print &quot;не могу запустить агент&quot;
    End If
    Print &quot;end agent BIMOID&quot;

    Exit Sub
Errh:    
    Print &quot;Ошибка BIMOID: &quot; &amp; Error(Err) &amp; &quot; в строке &quot; &amp; Erl
    Exit Sub
End Sub</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Mon, 09 Jun 2025 07:58:39 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?id=1167&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[МЕГА? МОРИАРТИ? ССЫЛКИ 2024-2025 Список всех рабочих ссылок и зеркал д]]></title>
			<link>http://itpmr.ru/viewtopic.php?id=1166&amp;action=new</link>
			<description><![CDATA[]]></description>
			<author><![CDATA[null@example.com (DexterDexter)]]></author>
			<pubDate>Mon, 24 Feb 2025 16:22:49 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?id=1166&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Кнопки Скопировать / Вставить на форме документа.]]></title>
			<link>http://itpmr.ru/viewtopic.php?id=1165&amp;action=new</link>
			<description><![CDATA[<p>Нужно сделать две кнопки на форме, при нажатии &quot;Скопировать&quot;, в буфе попадает значение последнего поля.<br />А при нажатии &quot;Вставить&quot; - вставляется значение с последнего поля.</p><p>Вот реализация данного функционала на лотус-скркрипте.</p><p>Кнопка &quot;Скопировать&quot;</p><div class="codebox"><pre><code>Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim ws As New notesuiworkspace
    Dim uidoc As NotesUIDocument
    Set uidoc = ws.CurrentDocument
    Dim st As String
    st=session.GetEnvironmentString( &quot;FieldDoc&quot;)
    Print &quot;Скопировано значение  &quot; st
    
    Call uidoc.FieldSetText(&quot;empty&quot;,st)
    
    
End Sub</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Fri, 14 Feb 2025 09:39:55 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?id=1165&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Думаете где сегодня можно купить ссылки навсегда?]]></title>
			<link>http://itpmr.ru/viewtopic.php?id=1164&amp;action=new</link>
			<description><![CDATA[]]></description>
			<author><![CDATA[null@example.com (sonnick84)]]></author>
			<pubDate>Sun, 02 Feb 2025 06:06:46 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?id=1164&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Что означают Chr(7), Chr(10), Chr(9) и Chr(13)]]></title>
			<link>http://itpmr.ru/viewtopic.php?id=1163&amp;action=new</link>
			<description><![CDATA[<p>Что означают Chr(7), Chr(10), Chr(9) и Chr(13)?<br />Chr(n) - это функция, которая возвращает символ, соответствующий указанному числовому коду (n) в определенной кодовой таблице, обычно это ASCII. Каждый из указанных вами кодов представляет собой специальный непечатаемый символ, выполняющий определенную функцию:</p><p>Chr(7): Звуковой сигнал. Этот код обычно используется для привлечения внимания пользователя путем издания звукового сигнала.<br />Chr(10): Перевод строки (Line Feed, LF). Этот символ указывает на конец строки и начало новой строки. В некоторых системах используется совместно с Chr(13) для обозначения перехода на новую строку.<br />Chr(9): Горизонтальная табуляция (Tab). Этот символ используется для создания отступов в тексте. Курсор перемещается на следующую позицию табуляции.<br />Chr(13): Возврат каретки (Carriage Return, CR). Исторически этот символ использовался для возврата каретки печатающего устройства в начало строки. В сочетании с Chr(10) (CRLF) часто используется для обозначения конца строки в текстовых файлах.</p><p>Использование в программировании<br />Эти символы часто используются в программировании для форматирования вывода, создания специальных эффектов (например, звуковых сигналов) или для работы с текстовыми файлами, где важно правильно определять границы строк.</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Thu, 03 Oct 2024 12:29:56 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?id=1163&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Преобразование с строки символов кириллицы в латиницу и наоборот.]]></title>
			<link>http://itpmr.ru/viewtopic.php?id=1162&amp;action=new</link>
			<description><![CDATA[<p>Функция, получает строку value&nbsp; на кириллице и возвращает строку на латинице.</p><div class="codebox"><pre><code>Function TranslitCyr2Lat(value As String) As String
    Const FUNC_NAME = {TranslitCyr2Lat}
    On Error GoTo errh
    
    Dim mas1 As Variant, mas2 As Variant
    Dim str1 As String, str2 As string
    
    str1 = &quot;А;Б;В;Г;Д;Е;Ё;Ж;З;И;Й;К;Л;М;Н;О;П;Р;С;Т;У;Ф;Х;Ц;Ч;Ш;Щ;Ъ;Ы;Ь;Э;Ю;Я&quot;
    str1 = str1 &amp; &quot;;&quot; &amp; LCase(str1)
    
    str2 = &quot;A;B;V;G;D;E;JE;ZH;Z;I;Y;K;L;M;N;O;P;R;S;T;U;F;KH;C;CH;SH;JSH;HH;IH;JH;EH;JU;JA&quot;
    str2 = str2 &amp; &quot;;&quot; &amp; LCase(str2)    
    
    mas1 = Split(str1, &quot;;&quot;)
    mas2 = Split(str2, &quot;;&quot;)
    
    TranslitCyr2Lat = Replace(FullTrim(value),mas1,mas2)

    Exit Function

errh:    
    Print {Ошибка: } &amp; LIB_NAME &amp; {--&gt;} &amp; FUNC_NAME &amp; {, строка } &amp; Erl &amp; {, } &amp; Error$
    Exit Function
End Function</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Thu, 05 Sep 2024 07:38:43 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?id=1162&amp;action=new</guid>
		</item>
	</channel>
</rss>
