Несколько подписей в документе

motogarri

Well-known member
17.02.2010
200
3
#1
Сорри, что поднимаю старую тему. По форуму читал, но не все понял.

Есть БД, где документ проходит несколько этапов. С прохождением каждого этапа изменяется значение в поле Status. В зависимости от этого значения, документ отображается в разных видах.
На предпоследнем этапе, документ должны завизировать три человека. Тут получается, либо ставят подпись, либо отсылают док на один из предыдущих этапов.

Как я понял, если использовать ЭЦП, документ подписывается весь целиком, и следующие подписи заменяют предыдущую. А мне надо хранить три подписи. Или я что-то неправильно понял?
 

motogarri

Well-known member
17.02.2010
200
3
#3
Читал. Не хватает меня пока чтобы разобраться. В первом примере опять все сходится ко второй ссылке, а там снова непонятно.
А где находится Библиотека LotusScript SignatureDocumentPart в которую нужно помещать:
Public Class SignatureDocumentPart
....
.....
Или это Declarations ?
А, нашел. Нужно сосздать библиотеку с именем SignatureDocumentPart.
 

nvyush

Lotus team
22.04.2009
2 317
0
#4
Читал. Не хватает меня пока чтобы разобраться. В первом примере опять все сходится ко второй ссылке, а там снова непонятно.
А где находится Библиотека LotusScript SignatureDocumentPart в которую нужно помещать:
Public Class SignatureDocumentPart
....
.....
Или это Declarations ?
Честно говоря, библиотеку SignatureDocumentPart не использовал, тестировал базу топикстартера вышеприведённой темы. Но в принципе ничего сложного, создаёте LS библиотеку "SignatureDocumentPart", в раздел (Declarations), кидаете код класса "SignatureDocumentPart", сохраняете и используете в своём коде по мере надобности.
 

motogarri

Well-known member
17.02.2010
200
3
#5
Сделал, как описано в той теме. Действительно подписываются разные поля в документе.
Проверка говорит "Signed"
If item.IsSigned Then
Messagebox "Signed"
Else
Messagebox "Not signed"
End If

Но тут проблема возникла. Я подписываю поле, перехожу на другую учетку и спокойно его (подписанное) изменяю. Разве оно не должно блокироваться для всех, кроме автора?
Код:
Sub Click(Source As Button)

Dim session As New NotesSession
Dim uiworkspace As New NotesUIWorkspace
Dim doc As NotesDocument
Dim item As NotesItem
Set doc = uiworkspace.CurrentDocument.Document
Set item = doc.GetFirstItem("Sign1")

item.IsSigned="true"
doc.Sign1 = session.CommonUserName
Call doc.Sign
Call doc.Save( False, True )
Messagebox "Подписали содержание"

End Sub
 

nvyush

Lotus team
22.04.2009
2 317
0
#6
Я подписываю поле, перехожу на другую учетку и спокойно его (подписанное) изменяю. Разве оно не должно блокироваться для всех, кроме автора?
Подпись лишь подтверждает, что данные были введены/изменены тем-то. Для защиты от изменения части документа есть несколько вариантов:
computed-for-display поле, отображаемое вместо редактируемого по формулам скрытия, свойство поля Input Enabled, секции с управляемым доступом, вычисляемые подформы, диалоги.
 

motogarri

Well-known member
17.02.2010
200
3
#7
Подпись лишь подтверждает, что данные были введены/изменены тем-то.
Спасибо, именно это и хотел узнать, а то боялся, что не так что-то сделал.
Сделал "Вычисляемую при открытии" секцию с формулой @IsNotMember( "[NachOtd]"; @UserRoles ). Теперь документ не открывается, говорит несовместимый тип данных. Внутри секции, подписываемое текстовое поле и кнопка.

И еще вопрос. В заголовке раздела пишется кем и когда подписано поле. Можно ли этот заголовок форматировать, чтобы после ФИО и даты не писалось имя домена?
 

nvyush

Lotus team
22.04.2009
2 317
0
#8
В формуле секции должно получаться, кто имеет право на редактирование (список имён, ролей). @IsNotMember возвращает числовое значение, поэтому ошибка несоответствия типа. Д.б. "[NachOtd]".
Для форматирования имён есть функция @Name, например, @Name([CN]; @UserName) вернёт просто ФИО.

Хотя не совсем понял "В заголовке раздела пишется кем и когда подписано поле" — это о чём?
 

motogarri

Well-known member
17.02.2010
200
3
#9
Все работает, как надо. nvy, спасибо.

После того, как подписываю поле, в заголовке раздела появляется надпись: > Подписано ФИО\Имя домена 19.05.2010 16:00:05\имя домена
 

nvyush

Lotus team
22.04.2009
2 317
0
#10
После того, как подписываю поле, в заголовке раздела появляется надпись: > Подписано ФИО\Имя домена 19.05.2010 16:00:05\имя домена
Не могу воспроизвести. Получаю аналогичную надпись только в строке состояния. В заголовке раздела только то, что я туда руками в дизайнере ввёл. Если напрягает, заголовок можно вообще скрыть.
 

motogarri

Well-known member
17.02.2010
200
3
#11
Не напрягает)) Наоборот это очень кстати. Просто не пойму как его форматировать. Да и ладно, это сейчас не горит, просто интересно.
 

nvyush

Lotus team
22.04.2009
2 317
0
#12
А какая версия клиента? У меня 8.0.1 — показывает (условно) только "Начальник отдела", хотя в строку состояния информацию о подписи выводит. Никаких свойств у раздела по настройке вывода информации о подписи не нашёл. Хотелось бы узнать, как добиться подобного результата — может пригодится в будущем.
 

motogarri

Well-known member
17.02.2010
200
3
#13
Версия 8.5. Я тоже никаких настроек раздела не нашел по этому поводу.