Skip to main content

Настройка визуализации ЭЦП

Для начала необходимо настроить документ на подписание ЭЦП. Для отображение визуализации электронной цифровой подписи, документ необходимо привязать к локальному СЭМДу 100006 "Осмотр врача" (рисунок 1). Так же желательно сделать привязку и к други подходящим для выгрузки СЭМДам. 

изображение.pngРисунок 1 - Привязка документа к СЭМД

Чтобы подпись визуализировалась, в ПФ рекомендуется использовать готовый код. В зависимости от числа подписантов можно настроить визуализацию ЭЦП Врача (код 1) или Врача и Зав. отделения (код 2). Код необходимо скопировать и вставить в печатную форму, а после отредактировать под данные шаблона. Результат копирования показан на соответствующих рисунках  (рисунок 2) и (рисунок 3).

#FR3 clipboard#
<TfrxMasterData Name="EDS1" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Frame.Typ="0" Height="60,47248" Left="0" Top="0" Width="680,3154" ColumnWidth="0" ColumnGap="0" RowCount="1" Stretched="True"/><TfrxMemoView Name="Memo0000" AllowVectorExport="True" Left="0" Top="11,33859" Width="207,87415" Height="49,13386559" StretchMode="smMaxHeight" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="0" ParentFont="False" VAlign="vaBottom" Text="[IIF(Length(getEDSInfoFromDoc(&#60;DOC_ID&#62;,'SN',1))&#62;0,getEDSInfoFromDoc(&#60;DOC_ID&#62;,'DOLGNOST',1),&#60;DOLGNOST&#62;)]"/><TfrxMemoView Name="Memo0001" AllowVectorExport="True" Left="457,32313" Top="11,33859" Width="222,99227" Height="49,13386559" StretchMode="smMaxHeight" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="0" HAlign="haRight" ParentFont="False" VAlign="vaBottom" Text="[IIF(Length(getEDSInfoFromDoc(&#60;DOC_ID&#62;,'SN',1))&#62;0,getEDSInfoFromDoc(&#60;DOC_ID&#62;,'MEDPERSONAL',1),&#60;MEDPERSONAL&#62;)]"/><TfrxMemoView Name="Memo0002" AllowVectorExport="True" Left="207,87415" Top="60,47245559" Width="245,66945" Height="0" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="4" ParentFont="False" VAlign="vaCenter" Text=""/><TfrxRichView Name="Podpis1" AllowVectorExport="True" Left="207,87415" Top="11,33859" Width="245,66945" Height="49,13389" Visible="False" StretchMode="smActualHeight" Frame.Typ="15" GapX="2" GapY="1" PropData="0852696368456469740AD70200007B5C727466315C616E73695C616E7369637067313235315C64656666305C6E6F7569636F6D7061745C6465666C616E67313034397B5C666F6E7474626C7B5C66305C666E696C5C66636861727365743230342054696D6573204E657720526F6D616E204359523B7D7D0D0A7B5C2A5C67656E657261746F722052696368656432302031302E302E31393034317D5C766965776B696E64345C756331200D0A5C706172645C71635C625C66305C667331325C2763345C2763655C2763615C2764335C2763635C2763355C2763645C276432205C2763665C2763655C2763345C2763665C2763385C2764315C2763305C276364205C2764645C2763625C2763355C2763615C2764325C2764305C2763655C2763645C2763645C2763655C276339205C2763665C2763655C2763345C2763665C2763385C2764315C2764635C2764655C62305C667331345C7061720D0A0D0A5C706172645C2764315C2765355C2766305C2766325C2765385C2766345C2765385C2765615C2765305C2766323A205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27534E272C31295D5C7061720D0A5C2763325C2765625C2765305C2765345C2765355C2765625C2765355C2766363A205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C275355524E414D45272C31295D205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27474956454E5F4E414D45272C31295D5C62305C7061720D0A5C2763345C2765355C2765395C2766315C2766325C2765325C2765385C2766325C2765355C2765625C2765355C276564205C276631205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27444154455F46524F4D272C31295D5C623020205C2765665C276565205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27444154455F544F272C31295D5C62305C7061720D0A7D0D0A00"/>
Код 1  – MasterData с одним подписантом
#FR3 clipboard#
<TfrxMasterData Name="EDS1" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Frame.Typ="0" Height="60,47248" Left="0" Top="0" Width="680,3154" ColumnWidth="0" ColumnGap="0" RowCount="1" Stretched="True"/><TfrxMemoView Name="Memo0000" AllowVectorExport="True" Left="0" Top="11,33859" Width="207,87415" Height="49,13386559" StretchMode="smMaxHeight" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="0" ParentFont="False" VAlign="vaBottom" Text="[IIF(Length(getEDSInfoFromDoc(&#60;DOC_ID&#62;,'SN',1))&#62;0,getEDSInfoFromDoc(&#60;DOC_ID&#62;,'DOLGNOST',1),&#60;DOLGNOST&#62;)]"/><TfrxMemoView Name="Memo0001" AllowVectorExport="True" Left="457,32313" Top="11,33859" Width="222,99227" Height="49,13386559" StretchMode="smMaxHeight" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="0" HAlign="haRight" ParentFont="False" VAlign="vaBottom" Text="[IIF(Length(getEDSInfoFromDoc(&#60;DOC_ID&#62;,'SN',1))&#62;0,getEDSInfoFromDoc(&#60;DOC_ID&#62;,'MEDPERSONAL',1),&#60;MEDPERSONAL&#62;)]"/><TfrxMemoView Name="Memo0002" AllowVectorExport="True" Left="207,87415" Top="60,47245559" Width="245,66945" Height="0" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="4" ParentFont="False" VAlign="vaCenter" Text=""/><TfrxRichView Name="Podpis1" AllowVectorExport="True" Left="207,87415" Top="11,33859" Width="245,66945" Height="49,13389" Visible="False" StretchMode="smActualHeight" Frame.Typ="15" GapX="2" GapY="1" PropData="0852696368456469740AD70200007B5C727466315C616E73695C616E7369637067313235315C64656666305C6E6F7569636F6D7061745C6465666C616E67313034397B5C666F6E7474626C7B5C66305C666E696C5C66636861727365743230342054696D6573204E657720526F6D616E204359523B7D7D0D0A7B5C2A5C67656E657261746F722052696368656432302031302E302E31393034317D5C766965776B696E64345C756331200D0A5C706172645C71635C625C66305C667331325C2763345C2763655C2763615C2764335C2763635C2763355C2763645C276432205C2763665C2763655C2763345C2763665C2763385C2764315C2763305C276364205C2764645C2763625C2763355C2763615C2764325C2764305C2763655C2763645C2763645C2763655C276339205C2763665C2763655C2763345C2763665C2763385C2764315C2764635C2764655C62305C667331345C7061720D0A0D0A5C706172645C2764315C2765355C2766305C2766325C2765385C2766345C2765385C2765615C2765305C2766323A205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27534E272C31295D5C7061720D0A5C2763325C2765625C2765305C2765345C2765355C2765625C2765355C2766363A205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C275355524E414D45272C31295D205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27474956454E5F4E414D45272C31295D5C62305C7061720D0A5C2763345C2765355C2765395C2766315C2766325C2765325C2765385C2766325C2765355C2765625C2765355C276564205C276631205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27444154455F46524F4D272C31295D5C623020205C2765665C276565205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27444154455F544F272C31295D5C62305C7061720D0A7D0D0A00"/><TfrxMasterData Name="EDS2" FillType="ftBrush" FillGap.Top="0" FillGap.Left="0" FillGap.Bottom="0" FillGap.Right="0" Frame.Typ="0" Height="60,47248" Left="0" Top="83,14966" Width="680,3154" ColumnWidth="0" ColumnGap="0" RowCount="1" Stretched="True"/><TfrxMemoView Name="Memo0008" AllowVectorExport="True" Left="0" Top="94,48825" Width="207,87415" Height="49,13386559" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="0" ParentFont="False" VAlign="vaBottom" Text="Заведующий отделения"/><TfrxMemoView Name="Memo0009" AllowVectorExport="True" Left="457,32313" Top="94,48825" Width="222,99227" Height="49,13386559" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="0" HAlign="haRight" ParentFont="False" VAlign="vaBottom" Text="[getEDSInfoFromDoc(&#60;DOC_ID&#62;,'MEDPERSONAL_SHORT',2)]"/><TfrxMemoView Name="Memo0010" AllowVectorExport="True" Left="207,87415" Top="143,62214" Width="245,66945" Height="0" Font.Charset="1" Font.Color="-16777208" Font.Height="-16" Font.Name="Times New Roman" Font.Style="0" Frame.Typ="4" ParentFont="False" VAlign="vaCenter" Text=""/><TfrxRichView Name="Podpis2" AllowVectorExport="True" Left="207,87415" Top="94,48825" Width="245,66945" Height="49,13389" Visible="False" StretchMode="smActualHeight" Frame.Typ="15" GapX="2" GapY="1" PropData="0852696368456469740A230300007B5C727466315C616E73695C616E7369637067313235315C64656666305C6E6F7569636F6D7061745C6465666C616E67313034397B5C666F6E7474626C7B5C66305C666E696C5C66636861727365743230342054696D6573204E657720526F6D616E204359523B7D7B5C66315C666E696C5C6663686172736574323034205461686F6D613B7D7D0D0A7B5C636F6C6F7274626C203B5C726564305C677265656E305C626C7565303B7D0D0A7B5C2A5C67656E657261746F722052696368656432302031302E302E31393034317D5C766965776B696E64345C756331200D0A5C706172645C71635C625C66305C667331325C2763345C2763655C2763615C2764335C2763635C2763355C2763645C276432205C2763665C2763655C2763345C2763665C2763385C2764315C2763305C276364205C2764645C2763625C2763355C2763615C2764325C2764305C2763655C2763645C2763645C2763655C276339205C2763665C2763655C2763345C2763665C2763385C2764315C2764635C2764655C62305C667331345C7061720D0A0D0A5C706172645C2764315C2765355C2766305C2766325C2765385C2766345C2765385C2765615C2765305C2766323A205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27534E272C32295D5C7061720D0A5C2763325C2765625C2765305C2765345C2765355C2765625C2765355C2766363A205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C275355524E414D45272C32295D205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27474956454E5F4E414D45272C32295D5C62305C7061720D0A5C2763345C2765355C2765395C2766315C2766325C2765325C2765385C2766325C2765355C2765625C2765355C276564205C276631205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27444154455F46524F4D272C32295D5C623020205C2765665C276565205C62205B676574454453496E666F46726F6D446F63283C444F435F49443E2C27444154455F544F272C32295D5C6366315C62305C66315C667331365C7061720D0A7D0D0A00"/>
Код 2  – MasterData с двумя подписантами
изображение.pngРисунок 2 – Пример результата настройки для одной подписи ЭЦП

изображение.pngРисунок 3 – Пример результата настройки для двух подписей ЭЦП

После добавления макета подписей, данную форму обязательно надо донастроить. Для этого нужно перейти на вкладку "Код" и скопировать в неё соответствующий код от выбранного числа подписантов. Если выбрана визуализация подписи Врача, то скопировать (код 3), если выбрана визуализация Врача и Зав. отделения, то скопировать (код 4). Примеры результатов приведены на (рисунок 4) и (рисунок 5).

var sn1 :string; 
begin 
  sn1 := getEDSInfoFromDoc(<DOC_ID>,'SN',1); 
  if Length(sn1) then Podpis1.visible:=true; 
end.
Код 3  – Визуализация одной ЭЦП
var sn1,sn2 :string;
begin  
  sn1 := getEDSInfoFromDoc(<DOC_ID>,'SN',1);
  sn2 := getEDSInfoFromDoc(<DOC_ID>,'SN',2);      
  begin
    if Length(sn1) then Podpis1.visible:=true;        
    if Length(sn2) then Podpis2.visible:=true;  
  end; 
end.
Код 4  – Визуализация двух ЭЦП
image.png
Рисунок 4 – Код для одной ЭЦП
image.png
Рисунок 5 – Код для двух ЭЦП

Внимание! Исспользование кода 1 и 2 без исспользования кода 3 и 4, не дадут желаемого результата. Для визуализации ЭЦП необходимо использовать их в связке.

Если все настроенно верно, то после подписания осмотра, ЭЦП будет визуализироваться при  распечатке. Иначе на месте "штампа" будет прочерк для проставления "живой" подписи (рисунок 6).

image.pngРисунок 6 – Пример подписанного документа с настроенной визуализацией двух ЭЦП