Содержание:
В современных системах электронного документооборота ключевое значение имеет автоматизация процессов назначения и распределения задач. Особенно это актуально для проектной деятельности, где состав участников может меняться, а роли остаются постоянными. Проблема ручного назначения ответственных в документах имеет несколько негативных аспектов:
- Человеческий фактор– высокая вероятность ошибок при выборе ответственного
- Потеря времени– постоянный ручной поиск нужного сотрудника
- Негибкость– сложности при изменении состава проектной команды
- Отсутствие прозрачности– непонятные критерии назначения ответственных
Автоматическое получение ссылки на участника команды по его роли решает эти проблемы, обеспечивая:
- Точность– система всегда выбирает актуального ответственного
- Скорость– мгновенное назначение без ручного ввода
- Гибкость– автоматическое отслеживание изменений в команде
- Прозрачность– четкие правила назначения, основанные на ролях
В 1C:Документооборот эта задача решается через механизм запросов к данным проектной команды с последующей подстановкой полученных значений в документы и задачи.
1. Подготовка: структура данных
Предположим, у нас есть:
- Документ, связанный с проектом
- Проектная команда (справочник «Проекты», таблица «Проектная команда»)
- Назначенные роли участникам (например: «Главный сметчик», «Руководитель объекта» или «Начальник технической службы»)
2. Алгоритм решения и пример кода при работе в системе 1С:Документооборот
- Получить проект из документа
- Найти участника команды по нужной роли
- Вернуть ссылку на соответствующего сотрудника
Для реализации данного функционала используется механизм автоподстановок для объектов. Ниже приведён код для автоподстановки:
Запрос = Новый Запрос;
Запрос.Текст = “ВЫБРАТЬ ПЕРВЫЕ 1
| ПроектнаяКоманда.Исполнитель КАК Исполнитель
|ИЗ
| Справочник.Проекты.ПроектнаяКоманда КАК ПроектнаяКоманда
|ГДЕ
| (ВЫРАЗИТЬ(ПроектнаяКоманда.РольВПроекте КАК СТРОКА(20))) = (ВЫРАЗИТЬ(&РольВПроекте КАК СТРОКА(20)))
| И ПроектнаяКоманда.Ссылка = &Ссылка”;
Запрос.УстановитьПараметр(“Ссылка”, Объект.Проект);
Запрос.УстановитьПараметр(“РольВПроекте”, “Наименование роли в проекте”);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ВыборкаДетальныеЗаписи.Следующий();
Результат = ВыборкаДетальныеЗаписи.Исполнитель;
Данный код вернёт исполнителя подставленной роли. Для использования необходимо поменять значение параметра запроса с «Наименование роли в проекте» на искомую роль, например «Главный сметчик».
3. Интеграция с бизнес-процессами
Код можно использовать в обработчиках:
- При создании документа
- При изменении статуса
- В регламентных заданиях
- В обработчиках маршрутов согласования
Представленный подход позволяет:
- Унифицировать назначение ответственных
- Снизить количество ручных операций
- Повысить точность подстановки данных
- Легко адаптироваться к изменениям в команде
Рекомендации:
- Добавьте проверку на актуальность состава команды
- Реализуйте механизм замещения для отсутствующих
- Логируйте случаи, когда участник не найден