Skip to main content

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

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

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

Чтобы подпись визуализировалась, в ПФ рекомендуется использовать готовый код. В зависимости от числа подписантов можно настроить визуализацию ЭЦП Врача (код 1) или Врача и Зав. отделения (код 2). Код необходимо скопировать и вставить в печатную форму, а после отредактировать под данные шаблона. Результат копирования показан на соответствующих рисунках  (рисунок 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;,'MEDPERSONAL_SHORT'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;,'MEDPERSONAL_SHORT'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)]"/><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"/><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Рисунок 12 Пример результата настройки для одной подписи ЭЦП

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

После добавления макета подписей, данную форму обязательно надо донастроить. Для этого нужно перейти на вкладку "Код" и скопировать в неё соответствующий код от выбранного числа подписантов. Если выбрана визуализация подписи Врача, то скопировать (код 3), если выбрана визуализация Врача и Зав. отделения, то скопировать (код 4). Примеры результатов приведены на (рисунок 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
Рисунок 34 Код для одной ЭЦП
image.png
Рисунок 45 Код для двух ЭЦП

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

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

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