Как создать или изменить шаблон отчета, подписанного ЭП системы#
Для подписания отчета ЭП системы необходимо создать шаблон подписываемого отчета.
После создания шаблона, в карточке документа будет доступен выбор варианта отчета с ЭП системы.
При формировании отчета, подписанного ЭП системы, сформируется архив с вложениями в виде отчета и файла цифровой подписи системы в формате .sig.
При наличии в карточке документа поля связи с объектом подписанного отчета система установит связь с карточкой подписанного отчета, в которой содержится информация об отчете и сертификате системы, а также вложение в виде архива с отчетом и файлом цифровой подписи системы в формате .sig.
Для получения доступа к объектам подписанного отчета пользователю должна быть назначена роль SigReports.
Чтобы настроить возможность формирования подписанных ЭП отчетов в системе:
Обновите сборку основного приложения.
Добавьте информацию по настройке ЭП системы в конфигураторе приложения, указав информацию о подписи системы:
адрес сервиса подписи;
серийный номер сертификата ЭП системы;
пароль сертификата системы.
Сохраните настройки.
![]()
Обновите метаданные на проекте.
Если необходимо сохранять информацию о сформированных отчетах с подписью системы, то следует в редакторе метаданных установить связь многие-ко-многим (MR) между документом, из которого формируется отчет, и объектом [Подписанный ЭП системы отчет (SigReport)], где:
[Physical table] — PT: D_REL_DOC_TO_SIG (DocSigRelationship);
[Target] — LT: Подписанный ЭП системы отчет (SigReport);
[Owner column] — C: DOC_KEY (DocKey);
[Target column] — C: SIG_KEY (SigKey);
В свойствах связи выберите Is readonly и Is multiple choice.

Если данная связь в карточке документа отсутствует, то при формировании отчета будет формироваться только архив с подписанным отчетом, объект с типом [Подписанный ЭП системы отчет (SigReport)] при этом создаваться не будет. Будет сформирован архив с отчетом и файлом ЭП системы.
Создайте шаблон подписанного ЭП системы отчета.
Создать шаблон подписанного ЭП системы для отчетов, сформированных в редакторе шаблонов отчетов#
Для формирования шаблона отчета, подписанного ЭП системы, необходимо выполнить скрипт:
metadata\src\Подсистемы\Услуги. Основные\Скрипты\Скрипт для подписанного отчета\ IsWithSystemSignature.sql
Перед выполнением скрипта:
Укажите Алиас документа, из которого происходит формирование отчета. Например: DocRS.
Укажите наименование отчета на основании которого будет сформирована копия отчета. Например: Разрешение на строительство.
Укажите перечень схем, на которых не будет выполняться скрипт.
Пример
do
$$
declare
template_type text := 'DocRS'; --- Alias LT
template_name text := 'Разрешение на строительство'; --- Наименование отчета
rec record;
begin
for rec in(select scheme from regadm.m_projects where scheme not in('dbo','REGADM') and scheme!='artem') --- перечень схем, на которые не будет выполняться скрипт
loop
execute 'set search_path=public,'||rec.scheme;
delete from d_sys_rep_template
where "name" = template_name || ' (с ЭП системы)'
and source_type = template_type;
insert into d_sys_rep_template
(
srev,
erev,
date_insert,
date_update,
full_name,
user_insert,
user_update,
user_action_info,
source_type,
is_complex,
template,
is_draft,
master_key,
sys_status,
old_v2_id,
old_v2_sid,
info_set_key,
rule,
name
)
select
srev,
erev,
date_insert,
date_update,
full_name,
user_insert,
user_update,
user_action_info,
source_type,
is_complex,
template,
is_draft,
master_key,
sys_status,
old_v2_id,
old_v2_sid,
info_set_key,
convert_to(replace(rule_xml_string, '<Params', '<Params IsWithSystemSignature="true"'), 'UTF-8') as rule,
name || ' (с ЭП системы)' as name
from (
select
*,
convert_from(t.rule, 'UTF-8') as rule_xml_string
from
d_sys_rep_template t
where
t.source_type = template_type
and t."name" = template_name
and (name || ' (с ЭП системы)') not in (select s.name from d_sys_rep_template s)
) q
where
q.rule_xml_string !~ '<Params.*IsWithSystemSignature.*>';
end loop;
end$$;
При необходимости выполнения скрипта на всех схемах проекта, необходимо удалить "and scheme!=
.
Скрипт сформирует копию существующего отчета и присвоит ей наименование, например: Разрешение на строительство (с ЭП системы). Данный отчет будет формироваться из карточки документа с подписанием ЭП системы.
Внесение изменений в отчет#
При необходимости внесения изменения в отчет подписанный ЭП системы, необходимо:
Удалите шаблон отчета с ЭП системы.
Внесите изменения в основной отчет.
Выполните скрипт создания отчета с ЭП системы.
Формат вывода отчета#
Для выбора формата вывода отчета см. Как изменить формат вывода шаблона на печать.
Создать шаблон подписанного ЭП системы для хардкодных отчетов#
Реализовано для отчетов:
Установление сервитута (ServDocAccept);
Решение об отклонении от предельных параметров (DocOtclon);
Уведомление о планируемом строительстве (DocNotificationAboutBuilding).
Для возможности формирования подписанного ЭП системы хардкодного отчета, необходимо внести изменения в ReportSettings.xml нужного шаблона отчета.
Для возможности формирования отчета с ЭП системы так и без подписания ЭП системы, необходимо скопировать блок template нужного шаблона и добавить в него свойство <IsWithSignature>true</IsWithSignature>.
В примере ниже в карточке документа Разрешение на отклонение от предельных параметров появится возможность формирования отчетов как подписанных ЭП системы, так и без.
<Templates> <Template> <File>DocOtclon.dotx</File> <DisplayName>А1 Альбомный</DisplayName> <ProjectAlias>*</ProjectAlias> <TemplateAlias>otclon</TemplateAlias> <TurningPointsDecimals>2</TurningPointsDecimals> <TextTemplate> ... </TextTemplate> </Template> <Template> <File>DocOtclon.dotx</File> <DisplayName>А1 Альбомный</DisplayName> <ProjectAlias>*</ProjectAlias> <TemplateAlias>otclon</TemplateAlias> <IsWithSignature>true</IsWithSignature> <------- <TurningPointsDecimals>2</TurningPointsDecimals> <TextTemplate> ... </TextTemplate> </Template> </Templates>