Бизнес-процессы
Цель лекции: научиться автоматизировать бизнес-процессы с использованием средств 1С:Предприятие 8
5.1. Постановка задачи
В любой организации существуют некие последовательности взаимосвязанных действий, которые выполняют ее сотрудники. Например, менеджер выписывает счет покупателю, правильность этого счета и обоснованность скидок или наценок проверяет руководитель подразделения, после чего работник склада получает распоряжение отгрузить покупателю товары по счету, а работник кассы - принять от покупателя денежные средства.
Еще один пример - сотрудники некоего отдела получают от руководства фирмы поручение составить отчеты по своим участкам деятельности, после составления всех отчетов руководитель отдела получает сообщение о том, что отчеты составлены, получает их, составляет сводный отчет и передает его руководству.
Таких примеров может существовать бесчисленное множество - все зависит от каждой конкретной организации. Часто подобные явления существуют на уровне устных или письменных распоряжений, часто они даже не выделяются в особые структуры, которые принято называть бизнес-процессами, а существуют лишь благодаря естественным образом заведенному порядку вещей. Но с приходом в организации компьютерных средств обработки информации бизнес-процессы этих организаций могут быть формализованы, описаны с помощью инструментов этих компьютерных средств, и, в конечном счете, автоматизированы.
1С:Предприятие содержит специальные механизмы для реализации бизнес-процессов. С их помощью можно воссоздать в электронной форме бизнес-процесс практически любой сложности и обеспечить его функционирование.
Наша условная организация, в частности, нуждается в автоматизации следующих бизнес-процессов:
- Первый бизнес-процесс, который будет называться "Клиент", заключается в распределении клиентов по сотрудникам и в контроле за исполнением заказов и "прохождения" клиента по инстанциям организации. В нашем случае он выглядит следующим образом. Администратор салона красоты принимает заказ от клиента, пришедшего в салон или позвонившего по телефону. Клиент называет время, когда он хотел бы быть обслужен и мастера. Администратор передает информацию о клиенте определенному сотруднику - мастеру. Когда мастер выполнит заказанные клиентом работы, он передает сведения о результатах бухгалтеру, после чего бухгалтер получает от клиента оплату и на этом бизнес-процесс завершается.
- Второй бизнес-процесс ("Отчет") заключается в подготовке всеми мастерами отчетов о проделанной работе. Мастерам, от директора организации, поступает задание на подготовку отчетов на текущий момент. После того, как мастера подготовят отчеты, эти отчеты передаются бухгалтеру, который готовит сводный отчет, и, после подготовки этого отчета, директор собирает весь коллектив для обсуждения результатов работы.
- Третий бизнес-процесс "Закупка товаров". От директора поступает задание на закупку товаров. Задание может выполнить любой сотрудник отдела Парикмахерская. Сотрудник готовит смету, и, если стоимость приобретаемых товаров не превышает 10000 рублей, смета сразу же попадает на подпись к директору. Если же превышает - то перед тем, как попасть к директору, ее должен утвердить бухгалтер.
5.2. Реализация бизнес-процесса "Клиент" и создание дополнительных объектов
В 1С:Предприятие существуют два ключевых, для решения задач автоматизации бизнес-процессов, объекта. Первый из них так и называется - Бизнес-процесс. Второй объект - это Задача. Бизнес-процессы и задачи тесно взаимосвязаны.
Объект Бизнес-процесс содержит в себе карту маршрута бизнес-процесса, при прохождении по карте создаются задачи, адресуемые тем или иным исполнителям. Создаваемые задачи - это объекты Задача.
Кроме того, для реализации бизнес-процесса нужен регистр сведений, который называют регистром адресации. Этот регистр содержит сведения об организационной структуре организации, важные для распределения задач по исполнителям.
В реализации механизма бизнес-процессов принимает участие так же параметр сеанса - он применяется для хранения сведений о том, какой именно сотрудник в данный момент работает с системой.
Итак, для того, чтобы заставить механизмы бизнес-процессов работать, нам понадобятся следующие объекты:
Начнем решение первой задачи по автоматизации бизнес-процесса "Клиент" с создания параметра сеанса и настройки механизма определения сотрудника, вошедшего в систему.
Параметр сеанса
Параметр сеанса, понадобится для того, чтобы настроить фильтрацию задач по пользователю, то есть, чтобы пользователь, вошедший в систему, мог видеть только свои задачи.
Создадим новый параметр сеанса, назовем его ТекущийПользователь, тип - СправочникСсылка.Сотрудники рис. 5.1.
Теперь нам нужно записать в этот параметр ссылку на элемент справочника, представляющий собой сотрудника, вошедшего в систему. Для этого нам понадобится написать соответствующий код в модуле сеанса. В частности, ранее мы уже пользовались этим модулем для того, чтобы определить, работает ли с системой пользователь-расчетчик или обычный пользователь. Сейчас в модуле сеанса имеется следующий код:
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры) Сотрудник = Справочники.Сотрудники.НайтиПоРеквизиту("Пользователь", ИмяПользователя()); Если не Сотрудник.Пустая() тогда ПараметрыСеанса.ПользовательРасчетчик = Сотрудник.Расчетчик; КонецЕсли; КонецПроцедуры
Фактически, этот код уже выполняет то, что нам нужно - ищет в справочнике Сотрудники сотрудника, который соответствует пользователю, который вошел в систему.
Добавим в блок Если - КонецЕсли такую строку:
ПараметрыСеанса.ТекущийПользователь=Сотрудник;
Таким образом, мы инициализировали параметр сеанса (на рис. 5.2 приведено окно с обновленным кодом процедуры) и он теперь сможет выполнять свои функции при реализации механизма бизнес-процесса.
Регистр адресации
Регистром адресации при организации работы бизнес-процессов является непериодический регистр сведений. Система использует его для определения адресатов задания - то есть - сотрудников, которым нужно назначить задания, созданные при работе бизнес-процесса. В основе структуры регистра, в частности - его измерений, по которым и осуществляется поиск адресатов, лежит обычно штатное расписание организации. В нашем случае руководство салона красоты, автоматизацией которого мы занимаемся, предоставило такое расписание:
Сотрудник | Подразделение | Должность |
---|---|---|
Васильев П.П. | Администрация | Директор |
Александров А.А. | Администрация | Администратор |
Иванов И.И. | Парикмахерская | Мастер |
Петров П.П. | Парикмахерская | Мастер |
Расчетчиков А.И. | Бухгалтерия | Расчетчик |
Бухгалтеров Б.Б. | Бухгалтерия | Бухгалтер |
Вспомним состав нашей текущей конфигурации. В ней отсутствует справочник для хранения информации о должностях - ранее руководство фирмы не предъявляло подобных требований, ограничившись хранением сведений о сотрудниках и о подразделении, где они работают. Но с ростом и развитием фирмы требования изменились, что приводит нас к модификации нашей конфигурации. А именно, сейчас мы создадим новый справочник. Назовем его Должности ( рис. 5.3). Дополнительных изменений вносить в него не будем - для хранения названия должность нам достаточно наименования элемента справочника длиной 25 символов, которое присутствует в нем по умолчанию.
Внесем в справочник Подразделения следующие предопределенные подразделения:
- Администрация
- Бухгалтерия
- Парикмахерская
Ранее в справочнике Подразделения уже присутствовало подразделение Парикмахерская. Если при создании предопределенного элемента будет использован тот же код, что и у существующего элемента, система выдаст предупреждение, но конфигурация будет запущена. Следует привести справочник в состояние с неповторяющимися кодами элементов вручную, заменить ссылки на элементы справочника, созданные в пользовательском режиме, на ссылки на предопределенные элементы (в частности, такие ссылки есть в реквизите Подразделение справочника Сотрудники ), после его удалить непредопределенные элементы.
Предопределенные данные понадобятся нам в дальнейшем, для использования автоматического механизма формирования групповых задач в бизнес-процессах.
Посмотрим на список пользователей, зарегистрированных в системе, рис. 5.4. Очевидно, он нуждается в пополнении в соответствии с предоставленным штатным расписанием.
Назначим новым пользователям роль Сотрудник. В итоге мы получили такой список пользователей, рис. 5.5.
Позже, в пользовательском режиме работы, мы дополним справочник Сотрудники для того, чтобы внести в него информацию о новых сотрудниках и, в итоге, обеспечить их "узнавание" системой с записью в параметр сеанса, при входе.
Создадим непериодический независимый регистр сведений, рис. 5.6. Назовем его Адресация.
Этот регистр должен содержать измерения, по которым планируется адресовать задачи. В нашем случае это - три измерения, рис. 5.7):
Сотрудник: | Тип - СправочникСсылка.Сотрудники, Ведущее |
Подразделение: | Тип - СправочникСсылка.Подразделения, Ведущее |
Должность: | Тип - СправочникСсылка.Должности, Ведущее |
Теперь нам нужно запустить систему в пользовательском режиме и заполнить регистр адресации.
Но сначала внесем изменения в справочник Сотрудники - дополним его новыми записями ( рис. 5.8). В частности, нас особенно интересует реквизит Пользователь - его содержимое должно соответствовать имени пользователя. При желании вы можете самостоятельно дополнить этот справочник реквизитом Должность с типом СправочникСсылка.Должности - для решения задач о бизнес-процессах ах эта деталь несущественна - здесь важен лишь состав регистра сведений Адресация, а справочник Сотрудники, в части содержания в нем сведений о подразделении и должности носит лишь справочный характер. Форма списка справочника настроена в пользовательском режиме, при помощи команды контекстного меню Настройка списка были скрыты столбцы, которые в данный момент нас не интересуют.
Заполним справочник Должности ( рис. 5.9)- он нам понадобится при заполнении регистра адресации, и, в дальнейшем, при работе с бизнес-процессами.
Внесем в справочник следующие данные:
- Администратор
- Бухгалтер
- Директор
- Мастер
- Расчетчик
Заполнение регистра сведений ведется на основе штатного расписания. В заполненном виде он будет выглядеть следующим образом, рис. 5.10:
Обратите внимание на то, что от заполнения регистра адресации зависит возможность системы по созданию задач, адресованных нескольким исполнителям. В частности, при текущем заполнении регистра мы можем адресовать задачи конкретным исполнителям. При дальнейшем рассмотрении мы вернемся к заполнению этого регистра.
Задача
Создадим новый объект Задача, назовем его УниверсальнаяЗадача.
Перейдем на вкладку Адресация окна настройки свойств объекта ( рис. 5.11). Настроим свойства этой вкладки следующим образом:
Адресация: | выберем регистр сведений Адресация. |
Текущий исполнитель: | параметр сеанса ТекущийПользователь |
В поле Реквизиты адресации добавим следующие реквизиты:
Основной реквизит адресации: Сотрудник. Этот реквизит мы можем выбрать после ввода состава реквизитов адресации задачи.
Перейдем на вкладку Данные, создадим реквизит Задание, тип - Строка, длина - 100, рис. 5.12. Этот реквизит мы будем использовать для того, чтобы, при запуске бизнес-процесса, указывать задание для мастера - информацию о клиенте и услугах, которые он хочет получить, а так же о стоимости услуг.
Перейдем на вкладку Формы, создадим форму списка задачи, согласившись с параметрами, предложенными по умолчанию, и, на этапе выбора состава элементов, установив все галочки, рис. 5.13.
После того, как форма списка задачи будет создана, откроем свойства табличного поля и установим его параметр Отображение задач в значение По исполнителю, рис. 5.14. Так мы включим фильтрацию задач по исполнителям, то есть - каждому исполнителю будут видны лишь его задачи.
Для упрощения процесса тестирования системы добавим на командную панель формы кнопку ОтобразитьВсеЗадачи, которая будет переключать свойство Отображение задач в значение Все задачи, введя в обработчик ее нажатия следующий код:
Процедура ДействияФормыОтобразитьВсеЗадачи(Кнопка) ЭлементыФормы.ЗадачаСписок.ОтображениеЗадач=РежимСпискаЗадач.ВсеЗадачи; КонецПроцедуры
Добавим еще одну кнопку ОтобразитьЗадачиПоИсполнителю, с таким кодом:
Процедура ДействияФормыОтобразитьЗадачиПоИсполнителю(Кнопка) ЭлементыФормы.ЗадачаСписок.ОтображениеЗадач=РежимСпискаЗадач.ПоИсполнителю; КонецПроцедуры
На рис. 5.14 вы можете видеть итоговую форму списка задач.