Включить виджеты 1с документооборот
Сегодня мы создадим простой, но функциональный виджет для 1С:Предприятия, который будет показывать количество активных пользователей в базе. Главной его особенностью будет асинхронное взаимодействие с базой, что позволит выполнять обновление виджета без блокировки основного интерфейса приложения.
Больше года назад сайт был закрыт. Некоторые из его материалов будут реанимированы на Инфостарт.
Хоть материал и был создан в далеком 2015 году, но описанные подходы до сих пор применимы при разработке. Конечно, сейчас уже обновилась работа поля HTML-документа и появились некоторые другие крутые возможности платформы 1С, но это в основном частности. Все предложенные способы создания виджетов не единственные, в конце статьи Вы найдете ссылки на связанные публикации с другими работами коллег.
Виджет
В качестве примера подхода при работе с HTML-виджетами можно продемонстрировать конфигурацию 1С:Документооборот 2.x, где в обработке "Текущие дела" создана форма для отображения различных виджетов с данными о моих задачах, задачах отдела, созданных документах, редактируемых файлов и т.д. Замечательная реализация и в плане функционала, и в плане юзабилити интерфейса, но есть один минус. Обновление виджетов происходит, конечно же, через синхронную контекстную серверную процедуру, что означает передачу на сервер всей формы, получение там данных, перенос их в форму и затем возвращение ее на клиент.
Проще говоря, для обновления виджетов необходимо выполнять синхронный серверный вызов, на время которого выполняется блокировка пользовательского интерфейса. Кто знает, может в новых версиях 1С:Документооборот эта ситуация уже изменилась.
При эксплуатации системы была замечена серьезная проблема - если включить автообновление виджетов, то при вызове серверной процедуры обновления подвисал весь интерфейс приложения пока оно ожидало ответа от сервера. Пользователи жаловались на частые подвисания интерфейса в самый не подходящий момент.
Конечно, есть достаточно простой выход - не использовать автообновление или оптимизировать процедуру обновления данных виджетов. Но это не самый оптимальный путь, ведь обновление виджетов может быть для кого-то критичным, а оптимизация получения данных и заполнения виджетов не избавит нас от контекстного серверного вызова и периодической блокировки интерфейса.
Мы пойдем другим путем и решим задачу двумя способами:
Оба способа имеют плюсы и минусы, которые мы рассмотрим. И так, поехали!
Подготовка
Не буду создавать интригу и сразу покажу результат, который мы добьемся проделав шаги, описанные далее.
Как Вы можете заметить, обновление виджета выполняется автоматически без блокировки пользовательского интерфейса.
На форме виджет добавлен в качестве поля HTML-документа, которое используется и для обновления через фоновые задания, и для обновления с помощью AJAX-запросов. Количество активных пользователей определяется по количеству активных сеансов с помощью следующей функции, расположенной в общем модуле "ВиджетыСервер" (серверный, вызов сервера):
Также добавлена общая форма "ВиджетАктивныеСеансы" с помещенным на нее полем HTML-документа, в которое будет помещаться содержимое виджета. Эта форма добавлена в рабочую область начальной страницы, чтобы при запуске сеанса пользователя виджет сразу же открывался. Ничего особенного в ней нет, только полей HTML-документа (см. выше).
Теперь рассмотрим подробнее каждый из способов.
Фоновые задания
Механизм фоновых заданий предназначен для асинхронного выполнения каких-либо операций. Этот механизм используется повсеместно. В конфигурации "Библиотека стандартных подсистем"реализована подсистема "Длительные операции", предназначенная для запуска каких-либо операций в фоновых заданиях. В свою очередь БСП внедрена практически во все новые конфигурации от фирмы "1С", поэтому использовать ее можно без особых проблем. На Инфостарте можно посмотреть пример использования этой подсистемы.
Мы реализуем собственный функционал по выполнению асинхронных операций в фоновых заданиях, потому что внедрять для демонстрации примером БСП было бы не разумно =). Но для рабочих задач БСП конечно же правильный выбор.
Запуск и отслеживание
Для запуска и отслеживания запущенных фоновых заданий был реализован небольшой функционал. В конфигурацию добавлены четыре общих модуля:
По умолчанию на начальную страницу Системы выведено окно «Текущие дела».
«Текущие дела» представляют собой набор настраиваемых виджетов.
« Виджеты » – это блоки информации, которые показывают актуальное количество текущих или просроченных работ по конкретной теме.
Задачи мне
Это один из самых важных виджетов, с которого, как правило, начинается рабочий день каждого сотрудника.
На виджет вынесена следующая информация:
- общее число задач пользователя (в заголовке) (1);
- количество задач, еще не принятых к исполнению (2);
- количество просроченных задач (3).
Переход по гиперссылке « Задачи мне » в заголовке ведет в список всех текущих задач сотрудника (1).
Переход по гиперссылке с количеством непринятых задач ведет в список «Задачи мне» с отбором непринятых задач (2).
Переход по гиперссылке с числом просроченных ведет в список «Задачи мне» с отбором просроченных задач (3).
Из меню можно создать процесс и перейти в список «Мои процессы» (4) .
Календарь
Показывает общее число запланированных событий и дает гиперссылки на предстоящие мероприятия. Благодаря этим цифрам сотрудник может предварительно оценить степень своей загруженности перед переходом к детальной информации в записях календаря.
На виджет вынесена следующая информация:
- общее количество записей календаря на предстоящий месяц (в заголовке) (1);
- список четырех ближайших событий пользователя (2).
Перейдя по гиперссылке, можно посмотреть «Мой календарь» на несколько дней, две недели, месяц или раскрыть подробный план дня (1).
Из меню виджета можно создать новую запись календаря (3).
Задачи отдела
Показывает руководителю актуальное количество задач, над которыми работают его подчиненные, сколько просроченных задач они успели накопить и сколько задач еще не приняли:
- число задач подчиненных (в заголовке) (1);
- число не принятых задач подчиненных (2);
- число просроченных задач подчиненных (3).
Переход по гиперссылке в заголовке виджета открывает список «Задачи отдела» . Это полный список задач как непосредственных подчиненных руководителя, так и подведомственных им отделов (1).
Переход по гиперссылке с количеством непринятых задач ведет в список « Список не принятых задач подчиненными » с отбором непринятых задач (2).
Переход по гиперссылке с числом просроченных задач ведет в отчет « Список истекающих задач подчиненных» (3) .
Из меню можно создать процесс и перейти в список «Мои процессы» (4) .
Мои документы
Показывает общее число документов, относящихся к текущему пользователю.
На виджет вынесена следующая информация:
- общее количество документов пользователя (в заголовке) (1);
- число документов с истекшим сроком действия (документы, допускающие продление) (2);
- число документов, срок исполнения которых истекает в ближайшие два дня (неисполненные документы) (3);
- число документов с истекшим сроком ответа (отсутствуе т связь « Получен ответ» ) (4).
Переход по гиперссылке в заголовке виджета открывает список «Мои документы» (1) .
Переход по гиперссылке с количеством просроченных документов открывает список « Мои документы» с отбором по срокам (2).
Переход по гиперссылке с числом документ ов б ез ответа ведет в отчет « Мои документы, ожидающие ответа» (3) .
Переход по гиперссылке с числом истекающих документов – в список « Мои документы» с отбором по истекающим срокам (4).
Из меню виджета можно создать новый входящий, внутренний или исходящий документ (5).
Я редактирую
Захватить файл для редактирования может только один пользователь. При этом для остальных сотрудников файл будет заблокирован от изменений до тех пор, пока пользователь не сохранит его новую версию.
Показывает гиперссылки на файлы, занятые текущим пользователем для редактирования. Гиперссылки ведут в соответствующие карточки файлов (2).
Переход по гиперссылке в заголовке виджета откроет полный список редактируемых файлов, с которыми пользователь работает в данный момент (1).
Из меню виджета можно открыть спис ок « Файлы» (3) .
Отсутствия
Показывает сведения об отсутствующих в настоящий момент сотрудников с учетом отборов.
Переход по гиперссылке в заголовке открывает список отсутствий со всеми установленными прежде отборами (1):
- работающие удаленно (желтый значок);
- другие причины отсутствия (красный значок);
- только не работающие удаленно (без значка).
Из меню виджета можно создать новое отсутствие (2) .
Контроль
Показывает сведения о количестве задач, документов, файлов, писем, процессов, мероприятий или проектов, которые пользователь поставил на контроль.
На виджет вынесена следующая информация:
- общее количество контрольных карточек пользователя (в заголовке) (1);
- количество карточек с истекшим контрольным сроком (2);
- ссылки на контрольные карточки с действующим контрольным сроком (3).
Переход по гиперссылке в заголовке и числу карточек с просроченным сроком контроля ведет в окно «На контроле» (1-2) .
Из меню виджета можно добавить новую контрольную карточку (4).
Каждый пользователь может настроить состав окна «Текущие дела» исходя из своих предпочтений.
Для этого в меню каждого виджета предусмо трена команда « Настроить виджет » .
Кнопка открывает помощник настройки, в котором можно выбрать один из предложенных виджетов:
В качестве настройки программа попросит указать пороговые значения показателей виджета, на которые нужно обратить ваше внимание.
Например, если у пользователя накопится больше десяти непринятых задач, на видж ете « Мои задачи » это число будет выделено красным цветом.
По умолчанию окно « Текущие дела» автоматически не обновляется
Чтобы обновить данные окна « Текущие дела» необходимо нажать кнопку « Обновить» или настроить автообновление по соответствующей гиперссылке в нижней части окна.
Для настройки автообновления необходимо выбрать временной интервал обновления и нажать кнопку « Установить».
Оформите заявку на сайте, мы свяжемся с вами в ближайшее время и ответим на все интересующие вопросы.
Для каждого сотрудника организации, а в особенности для руководителей, очень важно иметь оперативный доступ ко всей необходимой информации. Удобно, когда информация находится в одном месте и не нужно искать ее по разным папкам, разделам и т.д. Программа 1С:Документооборот предоставляет такую возможность оперативного доступа.
На рабочем столе вы видите виджеты: задачи мне, почта, форум, календарь и т.д. Рассмотрим каждый виджет отдельно.
Для руководителей существует отдельный виджет «Задачи отдела». По функционалу данный раздел аналогичен с «Задачами мне».
Если в программе настроена почта, то мы можем видеть новые письма непосредственно в программе. Передается все содержимое письма, в том числе и прикрепленные файлы.
Виджет «Календарь». Данный раздел показывает, какие мероприятия запланированы в ближайшее время. Если зайти в раздел, то мероприятия можно просматривать на день, неделю, месяц, а также добавлять и корректировать их.
Если необходимо вести форум в организации, то с рабочего стола можно легко в него войти.
Очень удобно ставить задачи или документы на контроль и потом просматривать их с виджета «Контроль».
«Мои документы» содержат все документы, к которым вы имеете какое-либо отношение: при создании документа, задачи направленные на выполнение и т.д. Просроченные задачи выделяются красным цветом.
Вкладка «Я редактирую» помогает не забывать завершать редактирование документов. Очень важно завершать редактирование, чтобы другие пользователи смогли после вас начать работать с файлом с вашими правками.
Виджеты на рабочем столе можно настраивать – переставлять местами, добавлять другие вкладки.
Все мы индивидуальны со своими взглядами, привычками и организацией рабочего пространства. Разработчики системы электронного документооборота «1С:Документооборот» позаботились о комфорте каждого пользователя. В этой статье Вы узнаете, как с помощью персональных настроек создать рабочий стол под каждого пользователя.
В «1С:Документооборот» Рабочий стол пользователя открывается автоматически при запуске системы и называется «Начальная страница».
Для настройки Раздела «Текущие дела» нажмите на свободное место для виджета левой кнопкой мыши. Добавьте из списка нужный гаджет. После выбора виджета нажмите «Далее».
Укажите приемлемое для Вас пороговое значение показателей на виджете. При превышении заданного значения показатели будут отражаться красным цветом. Так Вы будете держать под контролем свои текущие дела.
Для того, чтобы изменить существующий виджет на другой или удалить ненужный Вам виджет с рабочего стола, в левом верхнем углу виджета нажмите на стрелку, далее «настроить виджет».
Помимо раздела «Текущие дела» на Рабочем столе также можно настроить доступ к любой необходимой Вам информации. Для этого через меню программы по ссылке «Вид» нажмите «Настройка начальной страницы».
В окне настройки начальной страницы выберете для себя формы из списка доступных с помощью кнопки «Добавить». Перемещайте стрелками формы в левую или в правую колонку начальной страницы. Синими стрелками изменяйте порядок расположения форм. По окончанию настроек нажмите «Ок».
Теперь у Вас есть быстрый доступ ко всей нужной информации.
Достаточно просто перейти по ссылке с начальной страницы.
В Документообороте 2.1.12 и 2.1.13 на начальной странице «Текущие дела» в типовом механизме отсутствует виджет «Задачи от меня», который бы показывал информацию аналогичную виджету «Задачи мне».
Создадим свой новый виджет небольшой доработкой конфигурации. Расширением, к сожалению, обойтись не получится, так как в них пока что нельзя добавлять предопределенные элементы.
1. Добавляем в справочник Виджеты предопределенный элемент «ЗадачиОтМеня».
2. В модуле менеджера этого же справочника в функции ДоступныеВиджеты() находим объявление переменной ДоступныеВиджеты и добавляем в этот список значений наш новый виджет:
Функция ДоступныеВиджеты() Экспорт
3. В общий модуль ТекущиеДелаДокументооборотСервер добавляем процедуру заполнения нового виджета:
Фактически это копия процедуры ТекущиеДелаДокументооборотСервер.ЗаполнитьВиджетМоиЗадачи с измененным запросом. В нашем случае необходимо поменять связь таблицы ЗадачаИсполнителя и ИсполнителиЗадач с «ЗадачаИсполнителя.ТекущийИсполнитель = ИсполнителиЗадач.Исполнитель» на «ЗадачаИсполнителя.Автор = ИсполнителиЗадач.Исполнитель».
4. В этом же модуле в процедуре ЗаполнитьВиджетыТекущихДел добавим заполнение нашего виджета:
Процедура ЗаполнитьВиджетыТекущихДел(Форма, Виджеты = Неопределено) Экспорт
5. В процедуре ТекущиеДелаДокументооборотКлиент.ОбработатьНажатиеНаСсылку добавим описание нажатия на наш виджет:
Процедура ОбработатьНажатиеНаСсылку(Ссылка, Форма, ИндексВиджета)
Нам удобней открывать форму списка с задачами, нежели отчет. Но можно аналогично виджету «Задачи мне» открывать отчет, взяв его же за основу, немного изменив запрос.
6. Так как на открытой форме нам необходимо будет видеть либо все задачи, либо непринятые, либо просроченные — необходимо описать это в форме задач от меня.
Модуль формы ЗадачиОтМеня объекта ЗадачаИсполнителя, процедура ПриСозданииНаСервере – добавляем в самый конец вызов процедуры ПрименитьОтборПоТипуЗадач(), которая будет накладывать отбор на динамический список в зависимости от переданных при открытии формы параметров.
И описываем ее:
Читайте также: