<< Click to Display Table of Contents >> Администрирование (Windows) > Обновление системы > Обновление среды разработки > Изменения базового решения Directum RX Изменения в версии 4.5 |
Ознакомьтесь с изменениями базового решения Directum RX. Если используется заказная разработка Directum RX или в среде разработки внесены собственные модификации, код которых связан с перечисленными изменениями, то обновите разработку.
Поддержка электронных доверенностей
1.Изменилась иерархия доверенностей.
Выделен новый абстрактный тип документа «Базовая доверенность» (PowerOfAttorneyBase). Он является наследником базового внутреннего документа InternalDocumentBase. От базовой доверенности наследуются:
•новый тип документа «Электронная доверенность» (FormalizedPowerOfAttorney);
•тип документа «Доверенность» (PowerOfAttorney).
2.В абстрактный тип доверенности добавлено необязательно свойство ValidFrom – дата начала действия доверенности. Таким образом, свойство появилось во всех карточках доверенностей.
3.Серверные функции GetSignatureSettingsByPOA(), GetActiveSignatureSettingsByPOA() типа документа «Доверенность» (PowerOfAttorney) перенесены в серверные функции абстрактной базовой доверенности PowerOfAttorneyBase.
4.В тип документа «Официальный документ» (OfficialDocument) добавлено свойство OurSigningReason – ссылка на право подписи со стороны нашей организации.
5.В тип справочника «Контакты» (Contact) добавлено свойство SigningReason – основание для подписания документов со стороны контрагента. Оно также заполняется в типах документов:
•«Базовый договорной документ» (ContractualDocumentBase) – в новом свойстве CounterpartySigningReason;
•«Финансовый документ» (AccountingDocumentBase) – в новом свойстве CounterpartySigningReason.
6.В некоторые типы карточек документов в выпадающий список Подписание добавлена кнопка Показать основание. В документах типа «Простой документ», «Приложение к документу» и «Проектный документ» при нажатии на кнопку появляются поля:
•Подписал. Сотрудник нашей организации, подписавший документ;
•Основание. Право подписи, на основании которого подписывается документ.
В документах типа «Исходящее письмо», «Повестка совещания», «Протокол совещания», «Приказ», «Распоряжение» при нажатии на кнопку появляется только поле Основание, так как поле Подписал уже есть на карточках.
Если в среде разработки типы карточек этих документов были перекрыты, а в документах необходимо показывать основание для подписания, то после обновления системы на новую версию добавьте кнопку Показать основание самостоятельно. Для этого в среде разработки в редакторе форм типа карточки документа:
•на форму добавьте свойство OurSigningReason (Основание). Если требуется показывать подписывающего, то добавьте еще свойство SignedBy (Подписал);
•на панель действий добавьте действие ShowOurSigningReason (Показать основание):
7.В типе справочника «Права подписи» (SignatureSetting):
•добавлено свойство SigningReason – основание для подписания документов со стороны нашей организации;
•свойство DocumentInfo скрыто и оставлено для совместимости. Вместо него следует использовать SigningReason;
•в перечисление Reason добавлено значение FormalizedPoA – электронная доверенность;
•от перечисления Reason теперь зависит, как заполнится новое свойство SigningReason. Если Reason имеет значение:
•Duties, то SigningReason заполняется значением «Устав»;
•PowerOfAttorney, то SigningReason заполняется значением по формату <Сокращенное имя вида документа> №<Рег. номер> от <Дата регистрации документа, указанного в Document>;
•Other, то SigningReason заполняется значением из DocumentInfo;
•свойство Name теперь заполняется значением из SigningReason. Кроме того, оно задает отображаемое имя доверенности.
8.Вместо списка «Доверенности» в модуле RecordManagementUI добавлена вычисляемая папка «Реестр доверенностей» (PowerOfAttorneyList). Она продублирована в модулях RecordManagementUI, ContractsUI и FinancialArchiveUI.
9.В тип документа «Входящий документ эл. обмена» (ExchangeDocument) добавлены свойства CounterpartySignatory (Подписал) и CounterpartySigningReason (Основание).
10.В структурах Signature и ReglamentDocumentWithCertificate модуля Exchange добавлено свойство FormalizedPoAUnifiedRegNumber. В нем хранится единый регистрационный номер электронной доверенности.
11.В справочнике Сведения о документе обмена (ExchangeDocumentInfo) в коллекции ServiceDocuments добавлены свойства:
•FormalizedPoAUnifiedRegNo – единый регистрационный номер электронной доверенности для первой подписи служебного документа;
•SecondFormalizedPoAUnifiedRegNo – единый регистрационный номер электронной доверенности для второй подписи служебного документа. Вторая подпись ставится, если документ должен быть подписан обеими сторонами: нашей организацией и контрагентом. Например, соглашение об аннулировании.
12.Серверная функция GetOriginalExchangeServiceNameByDocument() модуля Docflow стала устаревшей. Вместо нее рекомендуется использовать GetExchangeServiceNameByDocument().
Отправка поручения от имени подписывающего
1.В модуле Docflow добавлены:
Элемент разработки |
Описание |
---|---|
Серверные функции |
|
GetAssistedManagers() |
Получает список руководителей, для которых текущий пользователь – помощник |
GetSubstitutedEmployees() |
Получает список сотрудников, которых замещает текущий пользователь |
GetPassedResolutionEmployees() |
Получает список сотрудников, которые вынесли резолюцию по документу |
Разделяемые функции |
|
GetDefaultSignatory() |
Получает подписывающего по умолчанию |
CanSignByEmployee() |
Проверяет наличие права подписи у сотрудника |
GetSignatureSettingsByEmployee() |
Получает права подписи сотрудника |
GetSignatureSettingsQuery() |
Получает права подписи, по которым можно подписывать документ |
CreateParamsCache() |
Создает кэш с параметрами документа |
HasDocumentRegistersByDocument() |
Проверяет, есть ли подходящие журналы регистрации для документа |
2.В модуле Docflow сделаны виртуальными:
•клиентские функции CreateActionItemExecution() и CreateActionItemExecutionWithResolution();
•серверные функции IsUsersCanBeResolutionAuthor() и UsersCanBeResolutionAuthor().
3.В модуле RecordManagement добавлены:
Элемент разработки |
Описание |
---|---|
Разделяемые функции |
|
ValidateActionItemWithoutDeadline() |
Проверяет, что возможность отправки поручений без срока включена в настройках модуля «Делопроизводство» |
ValidateActionItemAssigneesCount() |
Проверяет количество исполнителей по поручению |
ValidateActionItemDeadline() |
Проверяет корректность срока поручения |
ValidateActionItemCoAssigneesDeadline() |
Проверяет простое поручение. Срок для соисполнителей должен быть больше или равен текущей дате |
ValidateActionItemPartsCoAssigneesDeadline() |
Проверяет пункты составного поручения. Срок для соисполнителей должен быть больше или равен текущей дате |
4.В модуле RecordManagement сделаны виртуальными серверные функции CreateActionItemExecution() и CreateActionItemExecutionWithResolution().
5.Клиентская функция CreateActionItemExecutionFromExecution() задачи на исполнение поручения (ActionItemExecutionTask) сделана виртуальной.
6.Клиентская функция CreateActionItemExecution() типа задачи на рассмотрение документа (DocumentReviewTask) помечена устаревшей, вместо нее рекомендуется использовать серверную функцию CreateActionItemExecutionWithResolution() модуля RecordManagement.
Строгий доступ
В Directum RX доступ к документам может быть назначен как вручную, так и программно. В версии 4.5 появилась возможность установить усиленный строгий доступ, при котором права на документ не назначаются автоматически в следующих случаях:
Документы |
Действие, которое совершает пользователь |
Кому права не назначаются автоматически при включенном усиленном строгом доступе |
---|---|---|
Документы с типом «Приложение» (Addendum) |
При изменении ведущего документа |
Пользователям, которым назначены права на ведущий документ |
Документы с типами «Финансовый документ» (AccountingDocumentBase) и «Договорной документ» (ContractualDocument) |
При сохранении документов |
Ответственному сотруднику |
Документы с типом «Доверенность» (PowerOfAttorney) |
При сохранении документов |
Сотруднику, которому выдана доверенность |
Документы с типами «Повестка совещания» (Agenda), «Протокол совещания» (Minutes) и записей справочника «Совещание» (Meeting) |
При сохранении карточек совещания или документов |
Участникам совещания |
Вложения в задачах на согласование по регламенту (ApprovalTask) на свободное согласование (FreeApprovalTask) |
При старте задачи |
Наблюдателям |
Вложения в задачах на согласование по регламенту (ApprovalTask), свободное согласование (FreeApprovalTask), рассмотрение документа (DocumentReviewTask), исполнение поручения (ActionItemExecutionTask), контроль возврата документа (CheckReturnTask) |
При сохранении задачи |
Сотрудникам, которым выданы права на задачу |
Настройки отметки об эл. подписи
1.В модуль Docflow добавлен справочник Настройка отметки в документах (StampSetting). В новый справочник добавлены:
•публичная функция GetSignatureStampParams(), которая передает параметры отметки (логотип, заголовок, штамп даты и времени);
•публичная функция GetDefaultSignatureStampParams(), которая позволяет получить стандартные параметры отметки.
•скрытое поле LogoAsBase64, в котором хранится логотип в виде строки Base64. Используется для ускорения формирования отметки об ЭП.
2.В модуле Docflow отмечены устаревшими серверные функции GetSignatureMarkForCertificateAsHtml() и GetSignatureMarkForSimpleSignatureAsHtml(). Рекомендуется использовать их перегрузки с параметром ISignatureStampParams.
Изменения в интеллектуальной обработке документов
1.Добавлен лицензируемый модуль Intelligence (Интеллектуальные функции), чтобы управлять доступом к дополнительным интеллектуальным функциям.
2.В модуле SmartProcessing (Интеллектуальная обработка) добавлены функции заполнения свойств документов по результатам их обработки сервисами Directum Ario с использованием нечеткого поиска:
Элемент разработки |
Описание метода |
---|---|
FillIncomingLetterPropertiesFuzzy() |
Заполняет свойства входящего письма |
FillContractStatementPropertiesFuzzy() |
Заполняет свойства акта выполненных работ |
FillWaybillPropertiesFuzzy() |
Заполняет свойства накладной |
GetRecognizedTaxInvoicePartiesFuzzy() |
Определяет вид документа, нашу организацию и контрагента счета-фактуры |
FillUniversalTransferDocumentPropertiesFuzzy() |
Заполняет свойства универсального передаточного документа |
FillIncomingInvoicePropertiesFuzzy() |
Заполняет свойства входящего счета на оплату |
FillContractPropertiesFuzzy() |
Заполняет свойства договора |
FillSupAgreementPropertiesFuzzy() |
Заполняет свойства дополнительного соглашения |
Функции включаются при наличии:
•лицензии на модуль Intelligence;
•сконфигурированной поисковой системы Elasticsearch;
•выполненной первичной индексация.
Если условия не выполняются, то функции не включаются, и заполнение свойств происходит без использования нечеткого поиска.
3.В модуле SmartProcessing в структуру DocumentInfo добавлен параметр IsFuzzySearchEnabled().
4.В модуле Commons (Общие справочники) добавлена функция IsIntelligenceEnabled() для проверки лицензии на модуль Intelligence.
5.В справочнике Организации добавлены функции:
•PrepareEmailForIndex() для подготовки электронной почты;
•PrepareHomepageForIndex() для подготовки сайтов;
•PreparePhonesForIndex() для подготовки номеров телефонов.
Индексация справочников для нечеткого поиска
1.В индексируемые справочники добавлена разделяемая функция GetIndexingJson(), которая возвращает строковое представление записи справочника.
2.В таблице Sungero_Docflow_Params добавлен параметр AllIndicesExist, устанавливаемый при успешно проведенной первичной индексации. При его наличии:
•выполняется асинхронная индексация справочников;
•для документов, созданных по результатам обработки сервисами Ario, свойства заполняются с использованием нечеткого поиска при наличии также лицензии на модуль Intelligence и сконфигурированной поисковой системы Elasticsearch.
Работа с Elasticsearch
1.Библиотека ElasticsearchExtensions разработана и добавлена в модуль Commons. Она реализует поиск в поисковой системе Elasticsearch и содержит методы для создания, настройки и удаления индексов, а также методы для индексации и удаления сущности из индекса.
2.В модуль Commons добавлены функции для взаимодействия с поисковой системой Elasticsearch из любого модуля:
Элемент разработки |
Описание метода |
---|---|
IsElasticsearchConfigured() |
Проверяет наличие адреса Elasticsearch в настройках сервера |
GetElasticsearchUrl() |
Получает адрес Elasticsearch в настройках сервера |
IsElasticsearchEnabled() |
Проверяет доступность Elasticsearch |
ElasticsearchCreateIndex() |
Создает и пересоздает индексы |
ElasticsearchBulk() |
Массово загружает данные в индекс |
IsIndexExist() |
Проверяет существование индекса |
ElasticsearchUpdateIndexSettings() |
Обновляет настройки индекса |
ElasticsearchCloseIndex() |
Закрывает индекс |
ElasticsearchOpenIndex() |
Открывает индекс |
ElasticsearchIndexEntity() |
Индексирует сущность |
ElasticsearchRemoveEntity() |
Удаляет сущность из индекса |
CreateIndexEntityAsyncHandler() |
Создает асинхронные обработчики для индексации сущности |
CreateRemoveEntityFromIndexAsyncHandler() |
Создает асинхронные обработчики для удаления сущности из индекса |
ExecuteElasticsearchQuery() |
Запускает поиск по индексу |
TrimSpecialSymbols() |
Удаляет спецсимволы из строки |
GetTermQuery() |
Формирует Term-строку поиска для запроса к Elasticsearch |
GetTermsQuery() |
Формирует Terms-строку поиска для запроса к Elasticsearch |
GetMatchFuzzyQuery() |
Формирует MatchFuzzy-строку поиска для запроса к Elasticsearch |
GetMatchQuery() |
Формирует Match-строку поиска для запроса к Elasticsearch |
GetWildcardQuery() |
Формирует Wildcard-строку поиска для запроса к Elasticsearch |
GetBoolQuery() |
Формирует строку поиска по логическому условию для запроса к Elasticsearch |
Подробнее о строках поиска см. в документации Elasticsearch статью Query DSL.
3.В модулях Parties (Контрагенты) и Company (Компания) добавлена функция переиндексации Reindex(), которая пересоздает индексы в Elasticsearch.
В справочниках Организации, Контакты, Наши организации и Сотрудники:
1.В обработчике события «До сохранения» добавлен параметр IsIndexedEntityInserted при изменении одного из индексируемых полей записей справочников.
2.В обработчике события «После сохранения» добавлено создание асинхронного обработчика для индексации полей. Асинхронный обработчик создается, если:
•адрес Elasticsearch есть в конфигурационном файле сервера config.yml;
•выставлен параметр IsIndexedEntityInserted;
•установлен параметр AllIndecesExist.
3.В обработчике события «После удаления» добавлено создание асинхронного обработчика для удаления сущности из индекса. Асинхронный обработчик создается, если:
•адрес Elasticsearch есть в конфигурационном файле сервера config.yml;
•установлен параметр AllIndecesExist.
Прочие изменения
1.Серверная функция CheckConnection() типа справочника «Абонентские ящики нашей организации» (BusinessUnitBox) сделана публичной. Для нее добавлен атрибут Public.
2.В тип задания на создание поручений (ApprovalExecutionAssignment) добавлена клиентская виртуальная функция GetAssignedBy(). Она получает значение поля Выдал в поручении.
3.Удалена библиотека ClientExtension.dll и избыточные функции, которые использовались для выгрузки документов из финансового архива в десктоп-клиенте.
4.В задаче на ознакомление (AcquaintanceTask) модуля RecordManagement клиентская функция FillFromAcquaintanceList() перенесена в разделяемые.
5.При сохранении задач на согласование по регламенту и исполнение поручений свойства задач не перезаполняются, если изменений не было.
6.В модуле Docflow стали виртуальными функции:
•GetAllApproversAndSignatories();
•GetAllRequiredApprovers();
•UpdateAdditionalApprovers();
•UpdateReglamentApprovers().
А также удалены публичные функции:
•серверная AfterExportDocumentDialog();
•клиентские ExtractDocument() и ExtractFolder().
4.В типе документа «Официальный документ» (OfficialDocument):
•разделяемая функция GetDocumentRegistersByDocument() помечена устаревшей, вместо нее рекомендуется использовать GetDocumentRegistersIdsByDocument();
•структура DialogParams помечена устаревшей, вместо нее рекомендуется использовать публичную структуру DialogParamsLite.
5.В модуле Docflow отмечены устаревшими серверные функции GetSignatureMarkForCertificateAsHtml() и GetSignatureMarkForSimpleSignatureAsHtml(). Рекомендуется использовать их перегрузки с параметром ISignatureStampParams.
6.В модуле Exchange помечена устаревшей серверная функция FillAttorney(BuyerTitle title, Consignee consignee, IPowerOfAttorneyBase powerOfAttorney, string otherReason), вместо нее рекомендуется использовать FillAttorney(Consignee consignee, IPowerOfAttorneyBase powerOfAttorney, string otherReason).
7.В типе документа «Финансовый документ» (AccountingDocumentBase) помечена устаревшей серверная функция TitleDialogValidationErrors(Company.IEmployee signatory, Company.IEmployee consignee, IPowerOfAttorneyBase signatoryPowerOfAttorney, IPowerOfAttorney consigneePowerOfAttorney, string signatoryOtherReason, string consigneeOtherReason), вместо нее рекомендуется использовать TitleDialogValidationErrors (Company.IEmployee signatory, Company.IEmployee consignee, IPowerOfAttorneyBase consigneePowerOfAttorney, string consigneeOtherReason, ISignatureSetting signatorySetting).
© Компания Directum, 2024 |