DIRECTUM 5.4. Новая версия – новые возможности

Опубликовано:
14 марта в 07:59
  • 28

Компания DIRECTUM объявляет о выпуске версии DIRECTUM 5.4. В новой версии развиваем поддержку свободного ПО, переносим ресурсоемкие ISBL-вычисления на отдельный сервер, записываем подробную историю действий пользователя в системе и поддерживаем требования законодательства к межкорпоративному документообороту.

Масштабируемость и быстродействие

Среди наших клиентов есть компании, где в DIRECTUM одновременно работают тысячи и десятки тысяч пользователей. Поэтому повышение масштабируемости является одной из приоритетных задач в развитии системы.

В версии 5.4 разработали новую конфигурацию серверной части. В результате администратор может включить в Microsoft SQL Server принудительную параметризацию или настроить фильтрованные индексы. Принудительная параметризация позволяет добиться снижения нагрузки на процессоры сервера с СУБД на 20%. Эффект зависит от характера нагрузки на СУБД.

Не обошли стороной и веб-доступ. Раньше некоторые действия с объектами проводника, например, навигация по папкам, приводили к перезагрузке всей страницы. Теперь перезагружается только содержимое выбранной папки. В результате сократился трафик, а количество SQL-запросов уменьшилось в два раза.

Асинхронная обработка событий

ISBL-вычисления теперь можно выполнять на отдельном сервере. Например, можно перенести на сервер вычисления, которые на клиенте выполняются слишком долго, создают потенциальную угрозу безопасности, требуют специального ПО или повышенных привилегий. В результате сократится время отклика системы на действия пользователей, и повысится безопасность ее эксплуатации.

Разработчик создает серверное событие в одноименной компоненте и указывает его в сценарии, который будет выполняться при обработке события:

Скоро расскажем о новом механизме подробнее – следите за новостями!

Курс на импортозамещение

По следам приказа об импортозамещении Минкомсвязи РФ в новой версии расширены возможности работы со свободно распространяемыми операционными системами и офисными пакетами.

Агент веб-доступа стал кроссплатформенным – теперь пользователи операционных систем ALT Linux и Ubuntu смогут прозрачно редактировать и подписывать документы в веб-клиенте DIRECTUM. А пользователи офисных пакетов LibreOffice и Apache OpenOffice смогут генерировать документы из макетов Microsoft Word и формировать отчеты, которые ранее использовали объектную модель Microsoft Office.

Кроме того, как в десктоп-, так и в веб-клиенте улучшена поддержка LibreOffice и Apache OpenOffice, и реализована поддержка пакета МойОфис.

Новинки позволят уменьшить использование зарубежного программного обеспечения на компьютерах пользователей и за счет этого снизить стоимость владения ИТ-инфраструктурой компании.

Межкорпоративный документооборот

Согласно требованиям ФНС России, с 1 июля 2017 года используются новые форматы документов: универсальные передаточные и корректировочные документы, документы о передаче результатов работ и документы о передаче товаров при торговых операциях.

С версии 5.4 организации смогут принимать, просматривать и подписывать документы нового формата в системе DIRECTUM. Полную поддержку новых форматов ожидайте в ближайшем обновлении.

Кроме того, реализован прием запросов на аннулирование документов и появилась возможность поиска документов, по которым еще не завершился документооборот.

Веб-канцелярия на новом уровне

Продолжаем развитие веб-клиента. В новой версии делопроизводителям доступен полный цикл работы с документами с помощью веб-модуля «Канцелярия»: обработка и регистрация входящей корреспонденции, отправка документов на рассмотрение и подписание, выдача поручений и контроль их исполнения, ведение номенклатуры дел и журналов регистрации.

Например, значительно расширена функциональность карточек РКК и поручений. Теперь в веб-модуле поддерживаются возможности, которые ранее были доступны только в десктоп-клиенте: проверка РКК на наличие дублей, печать текста поручения, конверта и наклейки с реквизитами нашей организации, формирование штрихкода из РКК и многое другое.

Кроме того, проведены работы по оптимизации и повышению стабильности веб-модуля.

Развитие задач и заданий

В версии DIRECTUM 5.4 закладки «Переписка» и «Состояние» в карточке задачи стали нагляднее и информативнее.

Заголовки объектов в переписке теперь содержат только нужную информацию, а тема заданий не отображается, если совпадает с темой задачи – благодаря этому карточка задачи стала проще для восприятия.

Закладка «Состояние» полностью обновилась. На ней пользователь найдет информацию о текущем состоянии всех задач, заданий и уведомлений семейства задач. Например, закладка поможет выяснить, кто задерживает процесс согласования документа, и в один клик перейти к тексту нужной задачи или задания.

В версии DIRECTUM 5.3 появились управляемые папки. В новой версии возможности механизма расширены: теперь в качестве управляемой папки можно использовать не только папку поиска, но и папку, настроенную на основе правил.

И напоследок: начиная с версии 5.4, прикладные действия можно добавлять не только на ленту заданий и уведомлений, но и на ленту задач по типовому маршруту, как не раз просили пользователи DIRECTUM Club:

По многочисленным просьбам…

Продолжаем развитие системы DIRECTUM по пожеланиям наших клиентов. В новой версии реализовали подробное протоколирование действий пользователя и подписание документов большого размера.

Записываем подробную историю

Вы просили – мы сделали. В версии 5.4 администратор сможет регулировать, какие действия пользователя нужно фиксировать в истории работы с объектами.

Сам список фиксируемых действий значительно расширен. Например, теперь в историю можно записывать изменение значений реквизитов главного и табличных разделов карточки документа или записи справочника, а также подробную информацию о назначении прав доступа на документ.

Развиваем подписание и шифрование

В новой версии отказались от устаревших модулей расширения и разработали новые:

  • GOST Encryption, который, как следует из названия, поддерживает алгоритмы ГОСТ, а также работает с криптографическими провайдерами КриптоПро и ViPNet;
  • Standard Encryption, который поддерживает алгоритмы 3DES, RSA и DSA.

Кроме того, оптимизированы алгоритмы подписания документов большого размера.

Благодаря этому решилась проблема, с которой часто сталкивались наши клиенты, – теперь пользователи смогут успешно подписывать и проверять подписи у документов размером до 2 ГБ.

А в веб-доступе новая схема подписания существенно (до 1 Кб) сократит трафик, затрачиваемый на подписание документа. Это будет особенно заметно на медленных каналах связи.

Другие изменения

  • Реализована поддержка Microsoft SQL Server 2016 и Microsoft Windows Server 2016 (c обновлением KB3213522).
  • Расширен список элементов, которые можно локализовать. Например, теперь разработчик сможет локализовать заголовки вариантов запуска компонент и варианты выполнения задания.
  • Администратор сможет установить агент веб-доступа сразу всем пользователям с помощью групповых политик Active Directory.
  • Улучшен коннектор к системе «1С:Предприятие». Например, раньше после каждого изменения параметров интегрированной системы, состава или порядка реквизитов нужно было переформировывать текст XSL-преобразования. Теперь текст изменяется динамически – это упростит работу администратора. Кроме того, ускорился обмен данными через коннектор за счет устранения лишних подключений к интегрированной системе.
  • Для взаимодействия с версией системы DIRECTUM 5.4 теперь используется сервер NOMAD 2.5. В новой версии уделили внимание безопасной работе с документами в DIRECTUM Solo для iOS. Теперь можно настроить шифрование документов с помощью СКЗИ КриптоПро CSP. Шифрование выполняется по ГОСТ-алгоритмам с использованием сертификата. Все документы передаются с сервера NOMAD в приложение в зашифрованном виде.

Не хватило подробностей? Больше информации о новинках версии вы найдете в будущих статьях и в документе «Изменения DIRECTUM 5.4» на сайте поддержки DIRECTUM.

35
Подписаться

Комментарии

Вкладка состояние - Оо, круто!!!

Не просто объяснять юзверям: почему во вкладке состояние один пользователь, а в дереве все 50?)

 

Артем Моисеев: обновлено 14.03.2017 в 16:17
0

По "многочисленным просьбам:История" - можно увидеть скриншот который отображает как будет выглядеть сейчас информация о том кто редактировал карточку пореквизитно - какие реквизиты менялись, какие были какие стали... ?
Просьба проиллюстрировать это более подробнее, показать как выглядит подробная история
- для справочника
- для эл.документа
- для задания.

Текущий скриншот иллюстрирующий изменения- не несет полезной информации кроме того что Петров И.Г - имеет проблемы с лишним весом.
Интересуют измения "пореквизитно" именно  - "было значение реквизита - стало значение реквизита".Проблема с "а кто изменил эту запись и у нас все пропало, все пропало" была с дня 0 директума.
Очень интересно как ее решили сейчас.

Насчет истории удаления тоже интересно - если объект удалили - где по нему смотреть историю?
Кликать правой кнопкой мыши - на чем? Записи то - тютю...

Если я удалю запросом из сценария допустим 50 тыс. записей контрагентов - как потом я смогу найти кто удалил "конкретную" запись? Зная допустим ее примерное название.

Есть ли удобный поиск по удаленным/измененным записям или просто тупо покажут длиннющий список, который со временем перестанет открываться (т.к. история копится оочень быстро) и начнет валить систему в рантайм, т..к. все мы знаем как работает показ больших справочников в "директум".

Жду с нетерпением!

Игорь Прищепов: обновлено 14.03.2017 в 17:08
3

Почитал про серверные события.
Как получить результат выполнения серверного события.
функция ServerEvent.Start возвращает некий ИД серверного события. Что потом с ним делать?
Хочу допустим повесить на серверное событие - формирование ресурсоемкого отчета.
пользователь нажал в карточке кнопку "Сформировать отчет..." - запустилось серверное событие ServerEvent.Start  - как получить результат (сформированный документ office допустим) ?
И где показать его пользователю? Ведь асинхронность подразумевает что пользователь может потом закрыть карточку или заняться совсем другими делами...

Что при этом будет с кнопкой которую нажал пользователь на клиенте - она останется нажатой до момента когда завершится обработчик который запустил асинхронное событие?

При реализации методов описания взаимодействия сервер-клиент - смотрели ли на аналогичные механизмы лидеров рынка ?
Например директивы интерпретатора "&НаСервере" и "&НаКлиенте" выглядели бы более привлекательными и логичными, чем заводить событие в справочнике, где то там его привязывать и потом как то получать объект чтобы запустить его.


 

0

Игорь, как я понимаю, выполнение серверного события ассинхронно. Вы не ждете. когда оно закончится, а значит и не получаете результат здесь и сейчас, что в свою очередь означает, что наверное вешать расчет тяжелого отчета на серверное событие - это не лучшая идея.

Сформировав отчет на сервере, сервер клиенту о завершении обработки события не сообщит. Клиенту нужно будет постоянно опрашивать сервер. А если при этом не хочется блокировать пользователя, то и запускать "ждуна" надо будет в отдельном процессе. Что в принципе не сильно отличается от формирования отчета на клиенте, если только у клиента не "калькулятор" вместо нормальной машины.

А кроме того, отдельный вопрос - это проработка передачи сформированного текста отчета обратно на клиент

Таким образом, этот механизм скорее годится для пост обработки, которую не нужно ждать (что тоже кстати случается не так уж часто. Часто бывает важна транзакционность. Если произошло исключение, то нужно откатить все изменения. С такой пост обработкой это не выйдет). 

У нас в системе есть "джобы", которые запускаются на сервере планировщиком. Вот эту нишу, я думаю, этот механизм и займет...
А так же заменит те процессы, где (и если у кого-то) использовались системные ТМ с блоком сценарием лишь для передачи управления на сервер. То же самое, но без задачи в исходящих... Мы таким анахронизмом не пользуемся, но мало ли...

Михаил Тарасов: обновлено 14.03.2017 в 21:38
3

Михаил Тарасов: У нас в системе есть "джобы", которые запускаются на сервере планировщиком. Вот эту нишу, я думаю, этот механизм и займет...

От планировщика не уйдёте так как механизма автоматического запуска, например по времени, у этих серверных событий нет.

Евгений Стоянов: обновлено 15.03.2017 в 07:03
1

Например директивы интерпретатора "&НаСервере" и "&НаКлиенте" выглядели бы более привлекательными и логичными, чем заводить событие в справочнике, где то там его привязывать и потом как то получать объект чтобы запустить его.

Ради эксперимента, напишите, как должен работать предложенный вами механизм изнутри Directum, со всеми нюансами?

0

Игорь, результата нет потому что нет смысла, и это описал Михаил. В вашем конкретном случаем событие, после того как сформировался отчет должно само инициировать уведомление пользователю что отчет сформирован лежит там-то. Либо вложить его в задачу\связать с документом и т.д. Нет смысла ждать, если же надо ждать, то выполняйте вычисление на клиенте. И не будет проблем с тем что пользователь что то уже успел закрыть.

Еще как вариант, у события есть ИД, у события также есть история  выполнения(журнал). Придется мониторить историю на предмет того, что по данному ИД все обраоботчики завершились успешно. Но это скорее исключение, по идее событие должно инициировать какие-то действия после своего выполнения.

По второму вопросу тоже вроде ответили, асинхронно, значит как только событие стартовали, то все управление ушло на сервер и работа пользователя не прерывается, пользователь может пойти домой и выключить комп, работа в любом случае будет сделана. Отчет будет сформирован и с утра пользователь уже его спокойно почитает.

Про директивы тоже не понятно, согласен с Михаилом сложностей много и не понятен сходу смысл. Надо умудрится переслать на сервер все переменные окружения, контекст выполнения, права и прочее. А если мы потом часть переменных изменили на сервере, то потом это все вернуть назад. При этом конфигурация сервера должна быть очень не плохой если одновременно мы скажем обрабатываем 1000 запросов, либо ждать придется долго. А если ждать долго, то тогда проще либо сделать трудоемкую операцию асинхронно, либо вычислять все же на клиенте. Я думаю что можно придумать ситуацию когда такой подход был бы полезен и возможно, синхронное выполнение событий когда нибудь будет, но не в виде директив, потому что сложностей с окружением вокруг вычислений очень много.

0

Простите,мой ограниченный мозг не понимает для чего сделали такую "асинхронность".
Практический смысл для моих задач например = 0 от такого, хотя кому то может и пригодится не спорю.

Как замена  джобов в планировщике - ну не катит никак вообще. Т.к. чтобы запустить джоб - мне надо просто сценарий написать и задание за 10 минут настроить. Плюс там периодичность
А тут надо городить городушки из обьектов, получить их как то там. Где то в справочнике описать записи связать обрезки с обрубками и т.д.


На ум приходит только для "чтобы было и можно указать в рекламном буклете для продажников - хорошо же!"

Насчет "напишите как бы выглядело &НаСервере"  - почитать можно в документации по 1С.
У них это очень грамотно реализовано и как то люди преодолели и контексты и окружение и не парятся вообще с этим (там умные разработчики ядро пишут,да) в т.ч. кстати и асинхронность там есть. Тут пока пример без асинхронности привел.

В простейшем виде например:


&НаКлиенте
// обработчик нажатия кнопки в ISBL у пользователя start:
результат = ТяжелыеРасчеты(Парам1;Парам2)

// обработчик нажатия кнопки в ISBL у пользователя end:

...

&НаСервере
Функция  ТяжелыеРасчеты(Парам1;Парам2)
   sql = "select..... "
  foreach item in csql(sql)

     bla bla bla

 endforeach 
   result =  ....


Если проблемы и сложности только с директивами и вставки их в код (ну да действительно проблемы нужно же будет синтаксический парсер интерпретатора править, а это табу - в него цикл с постусловием или тот же for добавить 10 лет не могут)
то можно было просто добавить в карточку функции галочку "Серверная" и вуаля.
Интерпретатор при вызове этой функции понимал бы что надо ее выполнять не на клиенте и выполнял бы код на сервере вычислений.


Вообщем по асинхронности понял, остыл,не интересно, идем дальше

По скриншотам с историей изменений есть у кого информация? Как выглядят?
 

 

1

В простейшем виде например:


&НаКлиенте
// обработчик нажатия кнопки в ISBL у пользователя start:
результат = ТяжелыеРасчеты(Парам1;Парам2)

// обработчик нажатия кнопки в ISBL у пользователя end:

...

&НаСервере
Функция  ТяжелыеРасчеты(Парам1;Парам2)
   sql = "select..... "
  foreach item in csql(sql)

     bla bla bla

 endforeach 
   result =  ....

Это вы описали с точки зрения пользователя. "Я нажимаю кнопку [Сделать мне хорошо] и система делает хорошо. Почему вы не сделали такую кнопку?"

А я просил вас поразмыслить, как это реализовать технически? И как бы, ссылаться что где - то работает, значит можно - это не ответ на вопрос: "как?".

0

"Это вы описали с точки зрения пользователя"

По моему я привел достаточно технических подробностей - если сжато и коротко- флаг в карточке функции
[x] Серверная 
и выполнение кода передается на сервер вычислений.Пока без асинхронности.

Пусть будет просто для начала "унесем тяжелый код с клиента на мощную машину".

И не надо заполнять никакие доп.справочники связывать с ними еще и события, а потом в коде где то писать обвязку чтобы эта "пизанская башня" как то поехала...

Окружение клиента в версии 1.0  реализации можно на сервер вообще не передавать. Просто параметры функции и для начала будет достаточно.

И там уже работает формирование отчета , запросы и т.д. по моему достаточно не сложно реализуется.

А вообще вопрос "опишите как это технически реализовать" надо адресовать архитекторам платформы ISBL.

Хотя.... если это те же люди которые ввели в обиход термины "Типы справочников" , "Типы карточек документов", туда же вбросили еще и "Виды документов" а потом сверху добили бедных пользователей еще и сладкой парочкой "Задачи" с одновременно присовокупленными к ним  "Заданиями"   то вопросов нет вообще ни к кому с той стороны.


Пусть идет как идет.

0

Понятно, конструктивом тут и не пахнет. Одни эмоции. Не говоря уже про то, что техническую сторону вы тоже не можете описать достаточно подробно, что бы понимать объем работ, технические задачи и прочие дела, которыми занимаются "те же люди". Одно слово "передается" содержит в себе столько вариантов реализации, мама не горюй. Для вас же это очень просто. Просто, передается. Вжух и готово.

 

3

Игорь, в марте-апреле выйдет цикл статей об основных новинках версии: 

- Серверные события

- Работа на свободном ПО

- Настройка истории компонент

- Изменения задач, заданий и уведомлений

- Подписание и шифрование

- Изменения документации и роликов

В статьях подробнее расскажем о новинках и обязательно ответим на все возникшие вопросы. Первая статья будет уже 20 марта.

5

На мой взгляд у этих событий весьма большое поле для применения, ведь не всегда связанные изменения между объектами должны быть абсолютно атомарными или они могут быть слабо связанными и возникающие ошибки могут быть решены путём вмешательства человека. Да и вообще этот вариант хотя бы решает задачу выполнения кода от пользователя с большими привилегиями.

А вот то, что в текущей реализации не предусмотрено двух режимов работы для событий "асинхронно" и "синхронно", второй как раз для поддержания случаев когда операции должны быть атомарными, это существенный минус. Ведь это бы закрыло ещё один большой пласт проблем.

1

Синхронные события - это было бы интересно. Но помним, что все эти события внутри - это очередь событий и чем больше таких событий на сервере, чем они более ресурсоёмкие, тем дольше может ожидать завершения такого "синхронного" события пользователь. 

Так же интересен механизм инициализации обработки. Вот есть очередь событий. Пусть она в данный момент пуста. Как служба обработки ждет появления события? Опрашивает таблицу раз в N секунд? Или же есть механизм, который при поступлении в очередь события "пинает" службу?

0
Андрей Михайлов: Да и вообще этот вариант хотя бы решает задачу выполнения кода от пользователя с большими привилегиями.

Не решает, так как когда требуется выполнения кода с большими привилегиями, то и результат, в большинстве случаев, нужен сейчас, а не через 15 мин.

 

Евгений Стоянов: обновлено 15.03.2017 в 14:00
Евгений Стоянов: обновлено 15.03.2017 в 14:01
1
По "многочисленным просьбам:История" - можно увидеть скриншот который отображает как будет выглядеть сейчас информация о том кто редактировал карточку пореквизитно - какие реквизиты менялись, какие были какие стали... ?

Сейчас будет выглядеть почти также как и раньше. Вся соль в настройках. Вы можете для нужного вам справочника указать, какие реквизиты логируются, какие нет и как история должна выглядеть (через xslt).

Интересуют измения "пореквизитно" именно  - "было значение реквизита - стало значение реквизита".

Только то "что стало". "Что было" можно будет поискать в предыдущих записях истории.

Насчет истории удаления тоже интересно - если объект удалили - где по нему смотреть историю?
Кликать правой кнопкой мыши - на чем? Записи то - тютю...

Тут никаких изменений, посмотреть историю удаленного объекта по-прежнему сложно. Но в базе вся информация есть, можно сделать отчет, например.

Если я удалю запросом из сценария допустим 50 тыс. записей контрагентов - как потом я смогу найти кто удалил "конкретную" запись? Зная допустим ее примерное название.

Если настроить историю так, чтобы при удалении логировалось наименование записи, то... см. предыдущий ответ про историю удаленных объектов.

Михаил Извеков: обновлено 15.03.2017 в 16:38
1

Расширенное ведение истории учитывает ограничения, которые администратор мог наложить на пользователя в отношении реквизитов?

Например пользователю стоит запрет на просмотр значения реквизита сумма в карточке договора, у него отображаются только ***. Если администратор настроит ведение истории изменения данного реквизита, этот пользователь увидит значение в истории карточки?

писал об этом в комментарии к одной из идей на эту тему.

Анатолий Придыбайло: обновлено 15.03.2017 в 17:40
2

Учитывает. Каждый пользователь увидит в истории только те реквизиты, на которые у него есть права. 

Михаил Извеков: обновлено 16.03.2017 в 08:36
0

немного не в тему статьи, но вопрос возник после прочтения полного списка изменений в 5.4 (http://download.directum.ru/190182ghj42wdfgt7753/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%20DIRECTUM%205%204.pdf)

стр.27, раздел "Общие компоненты", п.2: "Длина поля Наименование в справочнике Виды документов увеличена до 512 символов"

В свеженьком развернутом 5.4 открываю Виды документов, поле Наименование, привязан реквизит Наименование (NameAn) прежней длины в 50 символов. Я чего-то не понимаю, или описали изменение, а сделать забыли? :)  А то теперь вкрадываются мысли, нужно ли проверять всё остальное заявленное... 

0

Евгения, а вы попробуйте сделать с большим наименованием, там магия)

1

Интересует такой момент:
Исправлен ли в новой версии баг с некорректной работой iWebBrowserControl элемента формы в компоненте "Диалоги", если у формы стоит признак "Растягиваемая": "Да"?
Баг описан был в этом вопросе

0

Михаил, в 5.3.1 уже работает без бага, если не ошибаюсь

0
стр.27, раздел "Общие компоненты", п.2: "Длина поля Наименование в справочнике Виды документов увеличена до 512 символов"

В свеженьком развернутом 5.4 открываю Виды документов, поле Наименование, привязан реквизит Наименование (NameAn) прежней длины в 50 символов. Я чего-то не понимаю, или описали изменение, а сделать забыли? :)  А то теперь вкрадываются мысли, нужно ли проверять всё остальное заявленное... 

Евгения, все работает корректно:

  • для реквизита "Наименование" длина в компоненте "Реквизиты справочников" всегда указывается 50
  • в конкретном типе справочника длина может быть 50 или 512, за это отвечает параметр типа справочника "Длинное наименование".
  • В справочнике "Виды документов" в 5.4 данный параметр установлен в "Да"
Дмитрий Чепель: обновлено 20.03.2017 в 13:20
1

Петр, Дмитрий, спасибо - уже поняла :)

0
3

Александр, уже заценил и отписался в теме.

 

0

 

 

Игорь Прищепов: обновлено 21.03.2017 в 09:29
0

Прокомментирую вопросы по асинхронной обработке событий:

  • Функционал "синхронная обработка", "выполнение по расписанию" рассматривался, в версию 5.4 не попал по трудоемкости. Возможно, появится в какой-то из следующих версий системы;
  • Принцип обработки событий похож на работу службы Workflow - есть общая очередь, из которой процессы берут события для обработки. Если обработчик легкий - обработка выполняет очень быстро (секунды).
0
Авторизуйтесь, чтобы написать комментарий