1с задачи по исполнителю не показывает
У меня есть задача с реквизитами адресации: исполнитель, роль. При старте бизнес-процесса создается задача (тип адресации произвольная, т.е. при создании задачи указывается только роль - "Закупка")
При выборке данных из виртуальной таблицы "ЗадачиПоИсполнителю", почему-то выбираются задания только текущего пользователя (жестко заполнен реквизит "Исполнитель"). Если я правильно понимаю механизм - то для данного пользователя из этой таблицы должны также попадать записи, у которых исполнитель отсутствует и присутствует его роль "Закупка" (которая присутствует в регистре адресации для текущего пользователя)
Сделал отдельную базу.
справочники: "РолиИсполнителей", "Пользователи"
параметры сеанса: "ТекущийПользователь" (при старте системы устанавливаем текущим пользователем)
регистр сведений: "ПравилаАдресации" (независимый, непериодический), реквизиты: "Исполнитель","РольИсполнителя"
задача: реквизиты адресации "Исполнитель" (спр. "Пользователи"), "РольИсполнителя" (спр. "РолиИсполнителей"). Реквизит "Адресация" - созданный регистр сведений "ПравилаАдресации", рекв. "основной реквизит адресации" задачи - "Исполнитель", рекв. "Текущий исполнитель" - параметры сеанса "ТекущийПользователь"
Регистр сведений заполнен следующим образом - "Исполнитель" = "Администратор", "РольИсполнителя" = "РольЗакупка"
Создаю задачу. Исполнитель не заполняю. Роль указываю "РольЗакупка".
Под пользователем "Администратор" в таблице ЗадачиПоИсполнителю - ПУСТО, т.е. для пользователя не определяется задача. Только если указать жестко исполнителя в задаче..
Сделал отдельную базу.
справочники: "РолиИсполнителей", "Пользователи"
параметры сеанса: "ТекущийПользователь" (при старте системы устанавливаем текущим пользователем)
регистр сведений: "ПравилаАдресации" (независимый, непериодический), реквизиты: "Исполнитель","РольИсполнителя"
задача: реквизиты адресации "Исполнитель" (спр. "Пользователи"), "РольИсполнителя" (спр. "РолиИсполнителей"). Реквизит "Адресация" - созданный регистр сведений "ПравилаАдресации", рекв. "основной реквизит адресации" задачи - "Исполнитель", рекв. "Текущий исполнитель" - параметры сеанса "ТекущийПользователь"
Регистр сведений заполнен следующим образом - "Исполнитель" = "Администратор", "РольИсполнителя" = "РольЗакупка"
Создаю задачу. Исполнитель не заполняю. Роль указываю "РольЗакупка".
Под пользователем "Администратор" в таблице ЗадачиПоИсполнителю - ПУСТО, т.е. для пользователя не определяется задача. Только если указать жестко исполнителя в задаче..
Задачи в системе 1С:Предприятие являются аналогами документов, но в отличие от документов призваны не регистрировать уже совершенные операции, а наоборот, планировать действия пользователей, планировать операции.
Главным отличием задач от документов является понятие адресации .
Под адресацией обычно подразумевают объект, которому поручается конкретная задача. Адресация может быть как жесткой, в этом случае объект адресации назначается при ее формировании, так и произвольной, в этом случае задаче назначается не конкретный объект адресации, а, например, его роль, должность или иное значение, косвенно обозначающее круг объектов адресации, для которых формируется задача.
Приведем простой пример: в качестве объектов адресации будем понимать сотрудников предприятия, работающих с программой. Если при создании задачи нам заранее известно, для какого сотрудника она создается, то этот сотрудник указывается в ее свойствах. Подобное назначение объекта адресации и называют жестким. Если же при формировании задачи конкретный сотрудник, по каким либо причинам не может быть указан, но все равно известно, что эту задачу должен выполнить кто-либо из отдела "Отдел продаж", то в качестве объекта адресации указывают как раз этот отдел. То, какие сотрудники в итоге получат это задание, будет зависеть от того, кто в каком отделе работает.
Для описания правил адресации используют регистр сведений. Для назначения адресации система ориентируется на измерения этого регистра, ресурсы и реквизиты самой системой для адресации не используются, хотя и могут присутствовать в регистре. Одним из измерений регистра должно быть измерение, хранящее конкретных исполнителей, дополнительные измерения будут использоваться для произвольной адресации. На сегодняшний момент на уровне системы не поддерживается периодика адресации. То есть регистр сведений, хранящий правила адресации, должен быть не периодическим.
По какому принципу для задач назначается исполнитель? Если в качестве исполнителя задачи при ее формировании указывается конкретный объект адресации (сотрудник, пользователь системы), то в любом случае назначен будет он. Если конкретный исполнитель не указан, то вступает в действие механизм произвольной адресации. Система ориентируется на соответствие измерений регистра. Если в регистре адресации два измерения (одно для исполнителя, и еще одно для какого-либо признака адресации – например, подразделение), то задача будет назначена всем исполнителям, для которых в регистре есть записи с дополнительным признаком адресации. Поясним вышесказанное в виде таблицы.
Исполнитель | Подразделение |
Иванов | Администрация |
Петров | Администрация |
Сидоров | Отдел продаж |
Иванюхин | Отдел рекламации |
Если задаче будет назначено в качестве признака адресации подразделение "Администрация", то задача автоматически станет активной у двух исполнителей - "Иванов" и "Петров". Так как задача будет адресована сразу двум исполнителям, узнать заранее, кто действительно стал ее исполнителем невозможно.
Однако если задаче не назначить ни исполнителя, ни подразделение, то задача не будет назначена системой вообще никому.
Для того чтобы система назначила задачу без признаков адресации какому-либо из исполнителей, нам необходимо в регистре адресации иметь исполнителей без указания соответствия конкретному подразделению.
Исполнитель | Подразделение |
Иванов | Администрация |
Петров | Администрация |
Сидоров | Отдел продаж |
Иванюхин | Отдел рекламации |
Петров |
В таблице выше обозначен пример правил адресации, когда система сможет назначить исполнителя "Петров" для тех задач, у которых не указаны признаки адресации вообще.
Приведем пример правил адресации для решения задач работы с клиентами. Важно иметь возможность назначать задачи исполнителям, которые работают с конкретными контрагентами и их контактными лицами.
Исполнитель | Контрагент | Контактное лицо |
Иванов | Мир | Директор |
Петров | Мир | Кладовщик |
Иванов | Мир | |
Петров | Свет | Менеджер по рекламе |
Петров | Свет | |
Иванов | Стиль | Директор |
При указанных правилах адресации Петров будет назначен исполнителем задач по "ЗАО Мир" либо при указанном контактном лице "Директор", либо если контактное лицо указано не будет. По работе с контактным лицом "Кладовщик" исполнителем будет назначен "Петров".
Исполнителем задач по "ООО Свет" в любом случае будет назначен "Петров".
А вот задачи по "ООО Стиль" будут назначены исполнителю "Петров" только в том случае, если будет указано контактное лицо "Директор". В том случае если контактное лицо указано не будет, исполнителя система не назначит.
Так как задачи создаются ради их назначения конкретным исполнителям, работающим с системой, необходимо своевременно оповещать пользователя о появлении новой задачи. Для этого система должна "знать" вошедшего пользователя. Ссылка на текущего пользователя должна храниться в параметре сеанса, значение которого необходимо инициализировать при старте системы. Кроме этого, так как в регистре адресации может быть несколько измерений, системе важно указать в котором из них необходимо искать пользователя-исполнителя. Представим взаимосвязь объектов в виде схемы.
Естественно, что кроме ссылок на параметр сеанса и регистр адресации объект "Задача" обладает еще некоторыми свойствами. Схожие с документами свойства "Номер" и "Дата" несут ту же смысловую нагрузку, что и у документов. Кроме этих реквизитов задачи наделены свойством "Наименование", которого нет у документов. Это свойство характерно для задач как для объекта системы управления временем (например, в Microsoft Outlook задачи наделены свойством "Тема", что по своему смыслу не отличается от "Наименования" в задачах 1С).
Следует обратить внимание, что на уровне системы не предопределен реквизит, хранящий ссылку на исполнителя задачи (основной реквизит адресации). Это обусловлено тем, что заранее нельзя предположить тип значения этого реквизита и то, как его предпочтет назвать разработчик.
Изменены настройки для 3 строки канбан доски:
Выпущена версия 1.0.5.001 (Обновление от 02.05.2020)
Изменил свойство "Использовать управляемые формы в толстом клиенте в обычном режиме" = Да и Использовать обычные формы в толстом клиенте в управляемом режиме = "Да" для того, чтобы можно было запускать инструменты разработчика.
Выпущена версия 1.0.4.035 (Обновление от 23.12.2019)
- Учет времени
- Изменил форму ввода факта по задачам. Добавил быстрые кнопки ввода часов.
- Добавил кнопку "Добавить факт работ" в текущие дела. Сделал отображение итого часов за день.
- Добавил вывод печатной формы часы за день. Вызывается из формы текущие дела.
- Исправил ошибку определения важности письма при отправке уведомления при загрузке из хранилища
- Поправил отображение измененных данных по нажатию на кнопку Обновить в документе ВыпускРелиза.
- Добавил новых прокси серверов в список заполнение по умолчанию. Спасибо @zarius7
Выпущена версия 1.0.4.030 (Обновление от 16.05.2019)
Выпущена версия 1.0.4.022 (Обновление от 02.01.2019)
Создан канал в телеграмме: @mtasks
Выпущена версия 1.0.4.018 (Обновление от 14.10.2018)
Видео:
Спасибо, Palid (
Выпущена версия 1.0.3.028 (Обновление от 13.09.2017)
Изменения
* Исправление ошибки при изменении родителя, ложно выдавалась ошибка что элемент изменен или удаленВыпущена версия 1.0.3.027 (Обновление от 10.09.2017)
* добавлен реквизит "ЭтоОсновнаяЗадача", чтобы при получении основной задачи поиск прерывался на той в которой указано, что это основная задача;
* добавлена команда "Создать файл для задачи на диске";
* файл для задачи создается с учетом иерархия в справочнике задачи;* если хотите указать свой файл шаблона для задачи, его можно указать в справочнике Шаблоны.
Выпущена версия 1.0.3.024 (Обновление от 10.08.2017)
* WIP лимит. Реализована возможность ограничивать количество задач в статусе;
* Изменения в альтернативной загрузке изменений из хранилища:
* В обработку добавлена колонка "Версия конфигурации";
* Добавлены в макет классов: РегистрРасчета, Форма списка регистра расчета, Перерасчет регистра расчета, Форма регистра бухгалтерии, НумераторДокументов;
* Добавлен реквизит "ВывестиСлужебнуюТаблицу";
* Прочее
* Исправлено отображение картинки "Развернуть на полный экран" для 8.3.10 она сильно растягивалась;* Прочее
* Исправление сортировки в Текущих делах;
* Добавлен отбор по Конфигурации при загрузке изменений по задачам в документе Выпуск релиза;
* Добавлена команда "Добавить в текущие дела" для справочника Вопросы;
* При удалении всех текущих дел, выдавалась ошибка.Выпущена версия 1.0.3.012 (Обновление от 09.05.2017)
* Функционал по ведению текущих дел:
* Управление задачами: Текущие дела -
;
* Добавлена команда "Добавить в текущее дела" в справочник Задачи и на канбан доску
* В справочник "Задачи":
* добавлена кнопка "Открытие задачи по ссылке"* В справочник "Статусы задачи":
* добавлен реквизит "СкрыватьЗадачиДляДанногоСтатусаВФормеСписка";
* добавлена ТЧ: Наблюдатели, для указанных пользователей будут приходить уведомления, если задача приходит в этот статус.
* Загрузка изменения из хранилища:
* Если в комментарии хранилища не указана задача, тогда загрузка изменений прерывается.
* Прочее
* Исправление отображения номера задачи, для номеров задач больше 1000. Убрал разделитель триад.**Выпущена версия 1.0.3.005 (Обновление от 12.04.2017)**
Обновление от 21.03.2017
Выпущена версия 1.0.3.001
- регистрируется следующая активность пользователя:
- Добавление новой задачи;
- Изменение статуса у задачи;
- Добавление комментария к задаче;
- Добавление вопроса;
- Закрытие вопроса;
- Изменение в хранилище конфигурации;
- Создание документа «Выпуск релиза»;
- Проведение документа «Выпуск релиза».
Обновление от 15.03.2017
Выпущена версия 1.0.2.013
- Добавлен реквизит СписокЗадач в документ "Выпуск релиза";
- Исправление найденных ошибок
Обновление от 08.03.2017
Выпущена версия 1.0.2.011
Обновление от 23.02.2017
Выпущена версия 1.0.2.006 (Обновление от 23.02.2017)
- Добавлены проверки комментария, который указали при помещение изменений в хранилище 1с:
- Проверка заполнен ли комментарий;
- Указана ли задача в комментарии;
- Указана ли только одна задача в комментарии.
- ВНИМАНИЕ! необходимо заполнить реквизит "ПользовательХранилища" в справочнике "Пользователи";
Обновление от 06.02.2017
Выпущена версия 1.0.2.001 (Обновление от 06.02.2017)
- Реализована возможность добавлять любые статусы (теперь форма канбан доски генерируется динамически);
- Добавлена функциональная опция "Использовать свои цвета для задач"
- ВНИМАНИЕ! если у вас есть задачи, для которых используются свои цвета. Тогда после обновления включите опцию "Использовать свои цвета для задач"
- ВНИМАНИЕ! Также в канбан доске необходимо нажать на кнопку "Установить стандартные настройки"
Обновление от 29.01.2017
Выпущена версия 1.0.1.019
Обновление от 15.01.2017
Выпущена версия 1.0.1.015
Мне нужен был функционал, который позволяет в любой момент времени получить все открытые вопросы по выбранным проектам.
Поэтому был добавлен справочник "Вопросы и ответы".Обновление от 29.12.2016
Выпущена версия 1.0.1.013
Обновление от 13.12.2016
Выпущена версия 1.0.1.012
- Теперь Канбан доска и отчет по задачам показывает только те задачи у которых реквизит "ПоказыватьВОтчетахИКанбанДоске" = Истина;
- Исправление прав ролей по найденным ошибкам;
Обновление от 06.12.2016
Выпущена версия 1.0.1.011
Добавлены новые статусы задач:
- "Запрос на добавление";
- "К переносу в рабочую".
Обновление от 04.12.2016
Выпущена версия 1.0.1.010
Исправление прав и найденных ошибок.
Обновление от 26.11.2016
Выпущен версия 1.0.1.009
- реализована возможность указывать дополнительные реквизиты и дополнительные свойства для задач;
Чтобы включить дополнительные реквизиты и свойства необходимо:
1) Нажать Администрирование - Общие настройки - Установить признак "Дополнительные реквизиты и сведения"
2) добавить дополнительные реквизиты или свойства
3) теперь дополнительные реквизиты будут показаны в задаче на закладке "Дополнительно".
По дополнительным реквизитам и свойствам можно делать отборы на канбан доске, списке задач, отчеты по задачам.
- реализована возможность указывать заметки для задач.
Чтобы включить заметки необходимо:
1) Нажать Администрирование - Органайзер - Установить признак "Заметки"
2) теперь можно добавлять заметки к задачам.
ВОбновление от 15.11.2016
Выпущена версия "1.0.1.007" исправлены ошибки. Пора делать сервер сборок и писать тесты, прошу прощения у тех, кого ошибки затронули.
Обновление от 14.11.2016
Выпущена версия "1.0.1.006" исправлены ошибки.
Обновление от 13.11.2016
Выпущена версия "1.0.1.005" изменения:
Обновление от 04.11.2016
Выпущена версия "1.0.1.003" изменения:
- Комментарии перенесены на первую закладку, теперь они могут выступать и в роли подзадач;
- Реализована возможность ручного ввода информации об измененных объектах (выполнено пожелание пользователя).
Обновление от 23.10.2016
Выпущена версия "1.0.1.001" изменения:
- Реализована возможность загрузки изменений из хранилища конфигурации 1с;
- Добавлено регламентное задание «Загрузка изменений из хранилища» выполняется раз в сутки в 23:00.
Обновление от 04.10.2016
Выпущена версия "1.0.0.006" изменения:
- При создании задач из канбан доски, реквизиты задачи заполняются из установленных отборов (выполнено пожелание пользователя);
- Реализовано сохранение отборов и настроек для канбан доски. Если необходимо установить стандартные настройки, воспользуйтесь соответствующей кнопкой на закладке "Настройки" (выполнено пожелание пользователя).
В зависимости от того какой статус у задачи, она распределяется по колонкам канбан доски. Задачу можно открыть, перетащить из колонки в колонку, задачу можно добавить в спринт. При этом если у задачи указана высокая важность тогда она будет первой на доске, соответственно если низкая, то в самом низу. Можно настроить различные отборы для доски, для этого необходимо перейти на закладку “Настройки”. Также на этой закладке можно указать видимость колонок.
Если нажать CTRL+SHIFT+` тогда будут скрыты все панели и для канбан доски будет больше места
Спринт - короткий промежуток времени (1-4 недели) после завершении которого в программе появляется новая функциональность. После спринта сразу получают обратную связь, смотрят какие задачи успели выполнить, какие нет. Благодаря спринтам можно понять скорость работы команды разработчиков.
В информационной базе может храниться большое количество различных задач пользователям: это и выполненные задачи, и те, которые только предстоит сделать. Очень неэффективно, если каждый пользователь получает общий перечень задач, поскольку ему придется фильтровать список, оставлять только свои задачи, выбирать, какие из них нужно выполнить. Кроме того, по соображениям безопасности и конфиденциальности не все задачи можно просматривать другим пользователям, кроме исполнителя.
В связи с этим в конфигурациях, использующих задачи, чаще всего предусмотрена отдельная форма, которая будет отображать только невыполненные задачи текущего пользователя.
На аттестации есть специальное требование к задачам по бизнес-процессам – при запуске конфигурации в пользовательском режиме на начальной странице должен располагаться список невыполненных задач текущего пользователя.
Также есть требование, что пользователь должен иметь возможность видеть полный список задач, без отбора по исполнителю. Поэтому в каждом экзаменационном билете, где встречается задача по бизнес-процессам, должны быть доступны две формы – форма со списком невыполненных задач текущего пользователя, а также форма с общим списком задач.
Рассмотрим подробнее, как выполнить эти требования.
Как отобразить на форме список задач
Создадим форму списка задачи:
Рисунок 1 – Создание формы списка задачи
Основной реквизит в созданной форме – динамический список:
Рисунок 2 – Реквизит формы типа ДинамическийСписок
Подробно динамические списки управляемых форм рассматриваются в курсе «Профессиональная разработка интерфейсов и форм в 1С:Предприятие 8.3» (см. Занятие 19), а также в курсе«1С:Программист – Быстрый старт в профессию» (см. Модуль 4, Глава 8).Обратимся к свойствам динамического списка, в качестве свойства ОсновнаяТаблица укажем ЗадачиИсполнителям.ЗадачиПоИсполнителю:
Рисунок 3 – Настройка основной таблицы динамического списка
Это виртуальная таблица для объекта метаданных Задача, которая возвращает список задач, назначенных конкретному пользователю.
Для того, чтобы такой динамический список работал, система должна понимать, для какого пользователя следует отображать список задач. Поэтому необходимо для объекта метаданных ЗадачиИсполнителям (ранее созданный объект типа Задача) указать значение свойства Текущий исполнитель на закладке Адресация окна редактирования объекта:
Рисунок 4 – Свойство «Текущий исполнитель» объекта метаданных «Задача»
В этом свойстве нужно указать параметр сеанса, где хранится текущий исполнитель, для которого нужно получить список задач.
Создадим новый параметр сеанса, назовем его ТекущийПользователь (тип – СправочникСсылка.ФизическиеЛица):
Рисунок 5 – Параметр сеанса «Текущий пользователь»
На закладке Адресация для объекта метаданных ЗадачиИсполнителям (объект типа Задача) укажем в качестве свойства Текущий исполнитель созданный параметр сеанса:
Рисунок 6 – Указание для Задачи значения свойства «Текущий исполнитель»
Рассмотрим кратко, как работает виртуальная таблица ЗадачиПоИсполнителю.
Система получает значение параметра сеанса, указанного в свойстве Текущий исполнитель. Все задачи, у которых Основной реквизит адресации (Исполнитель) равен значению параметра сеанса ТекущийПользователь, попадают в результат виртуальной таблицы.
Затем система ищет задачи, у которых не указан основной реквизит адресации (Исполнитель), но значения остальных реквизитов адресации точно совпадают со значениями измерений регистра адресации.
Для лучшего понимания работы виртуальной таблицы рассмотрим отвлеченный конкретный пример. В регистр адресации внесены следующие записи:
Рисунок 7 – Заполнение регистра адресации
Существуют следующие задачи исполнителей:
Рисунок 8 – Перечень задач
Пусть текущим пользователем является Иванов, тогда в виртуальную таблицу ЗадачиПоИсполнителю попадут следующие задачи:
Рисунок 9 – Задачи пользователя Иванов
Если текущим пользователем является Петров, в виртуальную таблицу ЗадачиПоИсполнителю попадут следующие задачи:
Рисунок 10 – Задачи пользователя Петров
Таким образом, в виртуальную таблицу ЗадачиПоИсполнителю попадут те задачи, у которых или явно указан требуемый исполнитель, или его можно определить косвенно по записям регистра адресации. При получении данных учитываются настройки объекта конфигурации типа Задача и те записи, которые были внесены в регистр сведений РегистрАдресации.
Важно, что виртуальная таблица не фильтрует задачи по их выполненности. Она возвращает как выполненные, так и невыполненные задачи. Чтобы отображались только невыполненные задачи, нужно установить отбор. Для этого обратимся к настройкам динамического списка на форме:
Рисунок 11 – Реквизит формы «Список» типа «ДинамическийСписок»
Рисунок 12 – Настройка динамического списка
В настройках установим отбор по значению поля Выполнена равному Ложь:
Рисунок 13 – Настройка отбора записей динамического списка
Чтобы определить, для какого конкретного исполнителя необходимо отображать список задач, требуется указать системе, какой пользователь является текущим. То есть нужно установить значение параметра сеанса ТекущийПользователь.
Рассмотрим два варианта установки значения параметра сеанса ТекущийПользователь для решения поставленной задачи.
Как вручную установить значение параметра сеанса
Первый вариант установки значения параметра сеанса – это указывать текущего пользователя вручную. Данный вариант самый простой и быстрый. В этом случае не потребуется организовывать связь пользователей информационной базы со справочником физических лиц, элементы которого в нашем случае являются Исполнителями. Можно будет вообще не заводить пользователей информационной базы (списка справочника ФизическиеЛица).
Создадим форму списка справочника ФизическиеЛица. Создадим команду формы: УстановитьТекущегоПользователя:
Рисунок 14 – Создание команды формы списка справочника «Физические лица»
Вынесем добавленную команду на форму:
Рисунок 15 – Размещение созданной команды на форме
В обработчике команды УстановитьТекущегоПользователя выполним установку значения параметра сеанса:
В пользовательском режиме назначим Иванова текущим пользователем:
Рисунок 16 – Установка текущего пользователя
В форме списка «Задачи исполнителям» будут отображаться задачи для выбранного текущего исполнителя Иванова:
Рисунок 17 – Задачи исполнителя (текущего пользователя)
Если не установить текущего пользователя и попытаться обратиться к списку задач, система выдаст ошибку:
Рисунок 18 – Ошибка, возникающая при неустановленном значении параметра сеанса
Дело в том, что виртуальная таблица ЗадачиПоИсполнителю при получении данных использует значение параметра сеанса ТекущийПользователь. Если это значение не было установлено, возникает ошибка.
Чтобы такая ошибка не возникала, можно в модуле сеанса инициализировать параметр сеанса при помощи пустой ссылки на справочник Физические лица:
В таком случае при открытии списка задач ошибка не возникнет, даже если текущий пользователь не был предварительно назначен из формы списка. Но нужно понимать, что в таком случае в списке задач будут отображаться задачи, для которых не определен исполнитель. В нашей базе таких задач нет, поэтому список будет пустым:
Рисунок 19 – Список задач, для которых исполнитель не определен
Таким образом, текущего пользователя можно назначать вручную. При этом в списке задач отображаются только задачи, касающиеся текущего пользователя.
Как автоматически установить значение параметра сеанса по данным информационной базы
Второй вариант установки значения параметра сеанса более сложный. Необходимо связать пользователей информационной базы со справочником физических лиц. Тогда устанавливать значение параметра сеанса можно будет автоматически.
Чтобы в информационную базу можно было добавить пользователей, необходимо создать роли. Создадим только одну роль ПолныеПрава, в ней разрешим все действия, кроме интерактивного удаления объектов:
Рисунок 20 – Создание роли ПолныеПрава
В Конфигураторе создадим двух пользователей (Иванов и Петров) и назначим им роль ПолныеПрава:
Рисунок 21 – Создание пользователей информационной базы
При запуске конфигурации в пользовательском режиме нужно выполнить проверку, не является ли имя текущего пользователя пустым. Если имя текущего пользователя заполнено, то находим в справочнике ФизическиеЛица элемент, Код которого совпадает с именем текущего пользователя.
Параметру сеанса ТекущийПользователь присваиваем найденное значение (ссылку на элемент справочника ФизическиеЛица). Если такого элемента в справочнике нет, то нужно его создать, а ссылку на созданный элемент присвоить параметру сеанса.
Для выполнения этих действий заполним соответствующий код в модуле сеанса, в процедуре УстановкаПараметровСеанса. Код процедуры может выглядеть следующим образом:
В таком случае после открытия пользователем базы можно будет сразу просматривать задачи по исполнителю, дополнительного назначения параметра сеанса вручную не требуется.
Теперь необходимо обеспечить, чтобы при запуске приложения в пользовательском режиме список невыполненных задач отображался на рабочем столе. На экзамене рекомендуется использовать данный способ заполнения параметра сеанса ТекущийПользователь.
Как разместить список задач на рабочем столе
Общие принципы настройки рабочего стола (начальной страницы) рассматриваются в курсах: «1С:Программист – Быстрый старт в профессию» (см. Модуль 4, Глава 1), «Профессиональная разработка интерфейсов и форм в 1С:Предприятие 8.3» (см. Занятие 20), бесплатный курс «Программирование в 1С – за 21 день!» (Модуль 1, День 5).К решению аттестационной задачи предъявляются следующие требования:
- На начальной странице должен располагаться список невыполненных задач текущего пользователя
- Должен быть доступен полный список задач, без отбора по исполнителю.
Сначала разместим созданную форму списка объекта конфигурации ЗадачиИсполнителям на рабочем столе. Для этого из контекстного меню корневого элемента конфигурации выберем пункт Открыть рабочую область начальной страницы:
Рисунок 22 – Выбор команды «Открыть рабочую область начальной страницы»
В открывшемся окне выберем форму списка задачи:
Рисунок 23 – Выбор формы списка объекта «ЗадачиИсполнителям» в рабочей области начальной страницы
Запустим приложение в пользовательском режиме. На начальной странице отобразятся невыполненные задачи текущего пользователя:
Рисунок 24 – Невыполненные задачи пользователя Иванова
Однако кроме списка задач по исполнителю необходимо вывести полный список задач. Поэтому в окне настроек объекта конфигурации ЗадачиИсполнителям очистим поле для формы списка задачи:
Рисунок 25 – Очистка поля для формы списка задачи в окне настроек
В таком случае система будет генерировать форму списка автоматически, и в ней будут отображаться все задачи, а не только невыполненные задачи по исполнителю. При выборе в пользовательском режиме команды для открытия списка задач будет открываться форма, сгенерированная автоматически:
Рисунок 26 – Общий список задач
Таким образом, необходимые формы отображаются – поставленная задача решена.
В следующем блоке материалов разберем, как реализовать отображение карты маршрута в форме бизнес процесса.
Задачи тесно связаны с бизнес-процессами. При продвижении бизнес-процесса по карте маршрута в точках действия или в точках вложенного бизнес-процесса могут автоматически создаваться задачи. Каждая задача связана с бизнес-процессом и точкой маршрута:
При необходимости можно вручную создать задачу, без связи с бизнес-процессом и точкой маршрута. Или указав произвольную связь, в том числе с точками старта и завершения.
Помимо реквизитов для связи с бизнес-процессом и точкой маршрута у задач есть реквизит Выполнена типа Булево:
По умолчанию данный реквизит не отображается на форме, чтобы он появился нужно явно создать форму задачи.
Выполнено автоматически устанавливается в Истина при выполнении задачи кнопкой Выполнено или Выполнено, закрыть:
В остальном задачи похожи на справочник. Для них можно добавлять реквизиты, табличные части, настраивать нумерацию, создавать формы и т.п.
В настройках нумерации задачи есть свойство Авто префикс. Если там выбрать Номер бизнес-процесса:
То при создании задач номер бизнес-процесса будет добавляться в номер задачи. Соответственно длина номера задачи должна быть больше, чем длина номера бизнес-процесса.
В этом случае номер первой задачи по бизнес-процессу будет совпадать с номером бизнес-процесса, а в дальнейшем будет увеличиваться только вторая часть номера:
Адресация бизнес-процессов
У каждой задачи должен быть исполнитель. Для определения исполнителя используется система адресации бизнес-процессов.
Данная система включает в себя несколько элементов:
- Регистр адресации (регистр сведений)
- Параметр сеанса для определения текущего пользователя
- Реквизиты адресации
- Вспомогательные справочники
Для начала нужно создать вспомогательные справочники. Это будет 2 справочника: Пользователи и Роли пользователей:
В справочнике Пользователи будут все пользователи системы. В справочнике Роли пользователей будут храниться различные роли, которые могут принимать пользователи в рамках предприятия. Например, руководитель, бухгалтер, менеджер по продажам и т.п. Разные пользователи могут иметь одну и ту же роль, например на предприятии есть несколько менеджером по продажам.
Теперь нужно создать параметр сеанса, в котором будет храниться ссылка на текущего пользователя:
В модуле сеанса в обработчике УстановкаПараметровСеанса будем заполнять параметр сеанса. Сопоставление с пользователем информационной базы будет выполняться по наименованию. Если такого пользователя еще нет в справочнике, то будем создавать его:
Процедура УстановкаПараметровСеанса ( ТребуемыеПараметры ) ИмяПользователя = ПользователиИнформационнойБазы . ТекущийПользователь ( ) . Имя ; Пользователь = Справочники . Пользователи . НайтиПоНаименованию ( ИмяПользователя ) ; НовыйПользователь = Справочники . Пользователи . СоздатьЭлемент ( ) ; ПараметрыСеанса . ТекущийПользователь = Пользователь ;Теперь создадим регистр сведений, который будет использоваться как регистр адресации. Это будет независимый непериодический регистр сведений с двумя измерениями: Пользователь и Роль:
В данном регистре будет храниться список пользователей системы, а также их роли. Например:
Теперь нужно выполнить настройки системы адресации. Это делается на закладке Адресация в задаче:
Во-первых нужно создать реквизиты адресации.
Добавим 2 реквизита адресации: Пользователь и Роль:
В свойстве Адресация нужно выбрать регистр сведений, который используется для адресации:
В свойствах каждого реквизита адресации нужно связать реквизит с измерением регистра сведений. Связь указывается в свойстве Измерение адресации. Соответственно реквизит Пользователь нужно связать с измерением Пользователь, а реквизит Роль с измерением Роль:
В свойстве Текущий исполнитель нужно выбрать параметр сеанса, в котором хранится ссылка на текущего пользователя. В свойстве Основной реквизит адресации нужно выбрать тот реквизит адресации, который будет являться основным. Тип этого реквизита должен совпадать с типом параметра сеанса из свойства Текущий исполнитель. Именно этот реквизит адресации должен однозначно определять исполнителя.
Теперь для точки действия бизнес-процесса нужно заполнить реквизиты адресации. Это делается в свойствах точки в группе Адресация:
В конфигураторе можно выбирать только из предопределенных элементов.
Не предопределенные элементы можно заполнять в обработчике ПриСозданииЗадач у точки действия. У данного обработчика есть параметр ФормируемыеЗадачи, который содержит в себе массив объектов созданных задач.
Например, добавим у бизнес-процесса реквизит Исполнитель типа СправочникСсылка.Пользователи:
В обработчик ПриСозданииЗадач у всех точек действия бизнес-процесса добавим следующий код:
Читайте также: