Цель лекции: научиться автоматизировать бизнес-процессы с использованием средств 1С:Предприятие 8
В любой организации существуют некие последовательности взаимосвязанных действий, которые выполняют ее сотрудники. Например, менеджер выписывает счет покупателю, правильность этого счета и обоснованность скидок или наценок проверяет руководитель подразделения, после чего работник склада получает распоряжение отгрузить покупателю товары по счету, а работник кассы - принять от покупателя денежные средства.
Еще один пример - сотрудники некоего отдела получают от руководства фирмы поручение составить отчеты по своим участкам деятельности, после составления всех отчетов руководитель отдела получает сообщение о том, что отчеты составлены, получает их, составляет сводный отчет и передает его руководству.
Таких примеров может существовать бесчисленное множество - все зависит от каждой конкретной организации. Часто подобные явления существуют на уровне устных или письменных распоряжений, часто они даже не выделяются в особые структуры, которые принято называть бизнес-процессами, а существуют лишь благодаря естественным образом заведенному порядку вещей. Но с приходом в организации компьютерных средств обработки информации бизнес-процессы этих организаций могут быть формализованы, описаны с помощью инструментов этих компьютерных средств, и, в конечном счете, автоматизированы.
1С:Предприятие содержит специальные механизмы для реализации бизнес-процессов. С их помощью можно воссоздать в электронной форме бизнес-процесс практически любой сложности и обеспечить его функционирование.
Наша условная организация, в частности, нуждается в автоматизации следующих бизнес-процессов:
В 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 вы можете видеть итоговую форму списка задач.