Практика використання бізнес-процесів і завдань в «1С підприємстві 8
У цій статті ми розглянемо об'єкти «Бізнес-процеси» і «Завдання».
З одного боку, подзадача по реалізації бізнес-процесів є обов'язковою на Атестації 1С: Спеціаліст по платформі.
Тому, щоб розуміти роботу механізмів «Бізнес-процесів» і «Завдань», недостатньо просто «підглянути в типовій». Можливості даних об'єктів потрібно саме вивчати.
Цим ми і займемося в даній статті. Плюс, дамо загальні рекомендації щодо застосування даного механізму у вирішенні реальних завдань.
Що таке бізнес-процеси в 1С
Безвідносно 1С бізнес-процес - це сукупність взаємопов'язаних дій, спрямованих на створення продукту або послуги для споживачів.
Приклади бізнес-процесів: виробництво вентиляторів, допродаж товарів клієнта, підбір співробітників і так далі. Причому часто бізнес-процеси можна деталізувати. Наприклад, у виробництві продукції можна виділити такі бізнес-процеси, як закупівля матеріалів, передача матеріалів у виробництво, рух матеріалів у виробництві, випуск продукції.
Для наочної автоматизації бізнес-процесів в платформі «1С: Підприємство 8» існує об'єкт «Бізнес-процес». Він дозволяє вибудувати ланцюжок дій різних користувачів програми, яка призведе до певного результату. Таким результатом може бути формування звітності, затвердження документа, заповнення картки контрагента.
Об'єкт «Бізнес-процес» має графічне відображення, зване картою маршруту. Це не що інше, як блок-схема, складена з «цеглинок»:
Прив'язку до виконавців ми налаштуємо пізніше.
У точці умови потрібно визначити, чи працював приймається співробітник в нашій організації раніше. Якщо це так, то в базі вже заведений потрібний елемент довідника «Фізичні особи» і заповнені особисті дані. Додамо в бізнес-процес реквізит (тип Булево), який пізніше опрацюємо в точці умови (тобто вважаємо, що користувач сам визначає при прийомі - новий це співробітник чи ні):
Тепер, коли у нас є схема бізнес-процесу, необхідно організувати послідовність дій і розподіл цих дій по відповідальним особам.
Об'єкт конфігурації «Завдання»
За дію користувача в кожній точці бізнес-процесу відповідає спеціальний об'єкт «Завдання». Він є допоміжним об'єктом, але саме з його допомогою вибудовується ланцюжок дій користувачів: в кожній точці дії карти маршруту створюються завдання для одного або декількох користувачів. Поки поточний користувач не завершив свою задачу (тобто не встановив стандартний реквізит «Виконана» в значення «Істина»), завдання наступної точки маршруту для інших користувачів створені не будуть.
Тобто саме при виконанні завдань відбувається рух бізнес-процесу по карті маршруту.
Для наочності розглянемо, як виглядає список завдань в демонстраційній базі конфігурації «Документообіг 8 ПРОФ, редакція 2.1». При запуску програми від імені користувача Федоров О.П. (Директор) на початковій сторінці відкривається список всіх невиконаних завдань користувача:
Повернемося до нашої конфігурації, створимо новий об'єкт:
Відзначимо, що об'єкт «Завдання» може використовуватися окремо від об'єкта «Бізнес-процес», але ніяк не навпаки. Використовувана завдання вказується в налаштуваннях бізнес-процесу в конфігураторі, і буде автоматично створюватися в призначеному для користувача режимі при переході на наступну точку маршруту.
Зв'яжемо бізнес-процес із завданням:
Зверніть увагу! Незважаючи на те, що в різних точках бізнес-процесу можуть створюватися і редагуватися різні об'єкти системи, тип створюваних завдань на кожному з етапів буде однаковим. Наприклад, для розв'язуваної задачі будуть створюватися елементи довідників «Фізичні особи» та «Співробітники», а також документи «Прийом на роботу». При цьому в кожній точці бізнес-процесу будуть створюватися завдання «Завдання виконавця».
Більш того, в типових рішеннях 1С ( «Документообіг», «Управління торгівлею, ред. 11») в різних бізнес-процесах використовується один і той же тип завдань, найчастіше він називається «Завдання виконавця». Це робиться для того, щоб користувач міг бачити загальний список своїх завдань, що відносяться до різних видів бізнес-процесів, як в прикладі вище з «Документообігу».
Тут використовується довідник «Ролі виконавців», який має такі зумовлені елементи:
Візуалізація ходу бізнес-процесу
Поки функціональність нашої розробки майже на нулі - тільки формуються завдання і користувачі вручну відзначають їх виконання.
Для початку хотілося б мати можливість відстежувати стан бізнес-процесу, тобто в якій точці він зараз перебуває. Для цього створимо форму бізнес-процесу і додамо на неї реквізит КартаБП типу ГрафіческаяСхема. а також виведемо елемент управління на форму:
Потім в модулі форми бізнес-процесу створимо процедуру ОбновітьКартуМаршрута:
Викличемо цю процедуру в обробнику події ПріЧтенііНаСервере форми бізнес-процесу:
Після цього при відкритті форми бізнес-процесу на карті маршруту буде відзначатися поточний стан:
Ми використовуємо обробник ПріЧтенііНаСервере, тому що він викликається найпершим в процесі відкриття керованої форми об'єкта і виконується тільки для вже записаних об'єктів.
Використовувати обробник ПріСозданііНаСервере для виконання коду також допустимо, але цей обробник викликається і для тих об'єктів, які ще не записані. У нашому випадку це призведе до виконання зайвих дій, адже новостворюваний бізнес-процес ще не стартувала, а значить, він завжди знаходиться в своїй початковій точці.
Зробимо так, щоб при натисканні кнопки «Старт» на формі бізнес-процесу карта маршруту оновлювалася. Для цього викличемо ту ж процедуру ОбновітьКартуМаршрута в обробнику ПослеЗапісіНаСервере:
У такому вигляді задача може вважатися вирішеною в рамках підготовки до іспиту «1С: Спеціаліст» по платформі. Але ми підемо трохи далі.
Події завдань і точок дії бізнес-процесів
Для початку додамо автоматичну запис виконавця в задачу при її виконанні, щоб в майбутньому можна було відстежити, ким саме вона була виконана. Адже молодших кадровиків може бути кілька - баба Нюра і баба Катя. До моменту виконання завдання вона буде відображатися в списках всіх потенційних виконавців.
Отже, додамо в модуль об'єкта ЗадачаІсполнітеля стандартний обробник ПередВиполненіем з наступним кодом:
Тепер додамо в бізнес-процес реквізити, які дозволять зберігати інформацію про виконувані дії:
Попрацюємо і з завданням. Виведемо на форму задачі посилання на батьківський бізнес-процес і його реквізити:
У найменуванні завдання було б непогано бачити не тільки назва точки маршруту, а й ПІБ людини, якого потрібно прийняти на роботу. Для цього в модулі об'єкта бізнес-процесу визначимо процедуру УстановітьНаіменованіеЗадачі. і будемо викликати її при створенні завдань:
Процедуру ОбщаяПріСозданііЗадач прив'яжемо до кожної точки маршруту бізнес-процесу. Це можна зробити через карту маршруту:
На кожній точці маршруту можна задавати окремі обробники подій, якщо потрібно виконувати різні дії.
На етапі виконання завдання додамо контроль над користувачем з боку системи: чи не будемо дозволяти відзначати завдання як виконану, якщо необхідні дані не внесені. Для цього в модуль об'єкта бізнес-процесу додамо функцію ПроверітьВиполненіеЗадачі. яку будемо викликати в обробнику ОбщаяПередВиполненіем в кожній точці маршруту (прив'язка здійснюється також через карту маршруту):
Готово, можна тестувати!
Підведемо підсумки
Ми описали лише базові прийоми роботи з бізнес-процесами і завданнями в 1С: Підприємстві 8.3. Як мінімум, потрібно додати ще безліч перевірок введених даних і «красивостей» на рівні форм.
Але мета статті - показати, як можна використовувати об'єкти системи при автоматизації бізнес-процесів.
Вивантаження бази готового прикладу можна скачати в кінці статті і використовувати в якості шаблону.
Є ще безліч нюансів, які просто неможливо розглянути в одній статті: програмне створення і виконання завдань, групові завдання, використання вкладених бізнес-процесів, настройка ролей і прав доступу. Плюс часто замість «сумній» форми завдання викликається форма певного об'єкта конфігурації - документа або довідника.
Консультант-розробник, компанія «Infosuite» (м.Київ)
А за статтю спасибі, мало все-таки інформації про бізнес-процеси, доводилося самому колупати.
Є таке питання, на мою по цій темі якраз:
Займаємося випуском шаф з ел.оборудованія.
Наприклад одна бригад її день і процес складання шафи.
1 отримала комплектуючі (Етап Комплектуючі)
2 збирає металоконструкцію
3 робить монтаж
4 маркірувальники обклеюють (бригада паралельно робить інший шафа наприклад)
5 ВТК перевіряє
6 ЕТЛ проводить випробування
7 і тут знову монтажники його упаковують
У бригади по 3-5 шаф паралельно збирається, значить ми повинні побачити інформацію в 1С яка бригада і які співробітники займалися цим шафою.
Все це потрібно щоб:
1. Начальник виробництво міг бачити який етап виробництва. Які співробітники можуть почати наступного тижня нові проекти.
2. І бачити історію: Зав. номера, яка бригада, які співробітники, хто ОТК, Хто випробувач.
Я працюю в системі ПЛАНфіксе, адже зручно коли тобі нагадує про завдання, і від 1С хочу подібності. Щоб відразу прийшло повідомлення що шафа потрібно почати відчувати, маркірувальники його промарковані і т.д ...
Як це все реалізувати в ERP? Хто-небудь підкаже, що і де почитати на цю тему чи курс якої пройти? Просто тикаючи по вбудованому функціоналу та Новомосковському різні уривки відомостей в інеті - до мене не доходить загальне розуміння поставленого завдання (
Це завдання не має відношення до теми статті.
Для початку я рекомендую ознайомитися з базовими можливостями підсистеми «Виробництво» в ERP.
Дякую за статтю. Аліна, у мене питання: чи можлива повноцінна робота з бізнес-процесами за допомогою програмного коду?
Тобто: хотілося б створювати якусь консоль конструювання бізнес-процесів в призначеному для користувача режимі.
При цьому, була б можливість:
1. Використання не тільки зумовлених видів довідників, а й елементів створених в режимі 1С підприємства.
2. Без залучення програміста 1С і без внесення правки в конфігурацію, додавати нові бізнес-процеси.
У Франча «ПервийБіт» є власна розробка (надбудова) яка дозволяла робити щось подібне.
Так, повноцінна робота з бізнес-процесами за допомогою програмного коду можлива. Програмне створення завдань якраз і дає можливість застосування не визначених елементів довідника. З приводу додавання нових бізнес-процесів, я припускаю, що це можливо реалізувати шляхом використання бізнес-процесів одного виду (тобто в конфігураторі нічого не додаючи), але з настроюваної картою маршруту. Щось подібне, наскільки мені відомо, реалізовано в «1С: CRM 2.0».
Так, там можна створювати свої БП з власними картами маршруту і вкладеністю без використання конфігуратора: малюєте карту, далі налаштовуєте етапи БП, визначаєте автоматично створювані об'єкти, загальні настройки самого БП (наприклад, чи можна пропускати або достроково завершувати цей етап) і вуаля - все готово =)
справедливо для 1С: CRM 2.0 і 3.0