Когда только начал готовится к экзамену 1С Специалист по платформе, то приобрел себе сборник задач к экзамену и увидев задачу по Бизнес-процессам, где нет никаких условий — только схема и табличка к данной схеме, понял, что нужно как то разбираться с этими задачами.

Благо дальше в этом сборнике есть целых текст, как нужно решать данные задачи.
Как решать задачи по Бизнес-процессам. Текст из сборника
- Добавим в конфигурацию новый бизнес-процесс и новую задачу. Свяжем их между собой
- Для бизнес-процесса создадим карту маршрута
- Что бы пользователь имел возможность видеть прохождение бизнес-процесса по карте
маршрута:- Создадим основную форму бизнес-процесса.
- Добавим элемент управления с видом «Поле графической схемы».
- В модуле формы напишем программный код, отображающий карту маршрута в
созданном поле. - Для возможности обновления информации на карте маршрута без закрытия
формы в командную панель формы добавим кнопку «Обновить карту» с соответствующим обработчиком нажатия.
- Определим персональную и ролевую адресацию задач:
- Создадим реквизиты адресации задач, выделив из них основной.
- Настроим раздел адресации у точек карты маршрута, добавив при необходимости
предопределенные элементы в справочники. - Внесем изменения в структуру регистра адресации.
- Свяжем реквизиты адресации задачи с измерениями регистра.
- Реализуем связь между сотрудниками, введенными в справочник «Физические лица»
и пользователями системы:- Добавим новый параметр сеанса и свяжем его с таблицей задач.
- Создадим список пользователей.
- Свяжем список пользователей с физическими лицами программным образом
через параметр сеанса.
- Для вывода списка невыполненных задач текущего пользователя создадим форму
списка задач по исполнителю:- Сделаем форму не основной.
- Настроим свойство основного реквизита формы «Основная таблица», указав
«Задача.Задача.ЗадачиПоИсполнителю». - В настройках списка установим отбор «Выполнена Равно Ложь».
- Разместим созданную форму на рабочем столе.
- В режиме «1С:Предприятие» занесем записи в регистр «Сведения по адресации».
На самом деле, если до этого не решал задачи по Бизнес-процессам, то разобраться в написанном очень сложно. На курсах же по подготовке к экзамену 1С Специалист на первом же занятии сообщалось, что на этом курсе не даётся информации, как решать данные задачи. Разбирайтесь сами или идите на другой курс по Бизнес-процессам.
Решение задачи по Бизнес-процессам
Первое, что нужно помнить при решении задач по Бизнес-процессам — лишние данные в систему не надо заводить. Заводятся только те данные, которые присутствуют на схеме. Пример: Если написано «Любой сотрудник отдела», то в регистре адресации указывается в качестве измерений: Исполнитель и Отдел. Ни в коем случае нельзя указывать должность. А если будет написано «Любой Менеджер», то в регистр вносится Исполнитель и Должность, а Отдел в этом случае нельзя указывать.
Возьмем самую сложную задачу по Бизнес-процессам из списка экзаменационных задач:


Всё решение производится, как и на экзамене в каркасной конфигурации.
Первым делом необходимо сделать так, что в конфигурации появились пользователи, а для этого нужно сделать следующее:
Создать Роль со всеми правами (Меню Действия -> Установить все права). Иначе система не позволит создавать пользователей

Создать Пользователя по умолчанию. Я обычно создаю пользователя Администратор. Он в свою очередь помогает понять, что код ниже рабочий.

Далее нужно создать Параметр сеанса — Текущий пользователь.

Следующим этапом необходимо создать связь между Справочником Физических лиц и Параметром сеанса ТекущийПользователь, для этого в модуле сеанса нужно написать следующий код:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры) //В переменную ТекущийПользователь добавляем имя текущего пользователя ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь().Имя; //Производим Поиск сотрудника в Справочнике Физических лиц ФизЛицо = Справочники.ФизическиеЛица.НайтиПоКоду(ТекущийПользователь); //Если ничего не найдено, то создаём Сотрудника в справочнике Физических лиц Если ФизЛицо.Пустая() Тогда НовоеФизлицо = Справочники.ФизическиеЛица.СоздатьЭлемент(); НовоеФизлицо.Код = ТекущийПользователь; НовоеФизлицо.Наименование = ТекущийПользователь; НовоеФизлицо.Записать(); ФизЛицо = НовоеФизлицо.Ссылка; КонецЕсли; //Связываем параметры сеанса с конкретным сотрудником из Справочника Физических лиц ПараметрыСеанса.ТекущийПользователь = ФизЛицо; КонецПроцедуры |
Запускаем 1С в пользовательском режиме, выбираем Администратор при входе и дальше смотрим справочник Физических лиц — там должен появится Администратор.
Следующим этапом добавляем в список пользователей всех пользователей из таблицы в задании.

Запустив поочередно 1С Предприятие под каждым пользователем — Справочник Физические лица должен стать таким:

Настройка Бизнес-процессов в Конфигураторе.
В первую очередь создаются Бизнес-процесс и Задачи, и связываются между собой.

Так как в задаче есть условие «Оплата наличными», то в Бизнес-процессе создаётся реквизит «ОплатаНаличными» с типом Булево

Дальше в Задачах необходимо настроить Адресацию, но что бы это сделать необходимо настроить регистр сведений РегистрАдресации, добавив туда измерения Исполнитель, Должность, Подразделение. И каждое измерение связывается со своим справочником.
Справочника Должности в каркасной конфигурации нет и поэтому его нужно создать и заполнить предопределёнными данными о должностях, которые присутствуют на схеме, и в данной задаче это Бухгалтер и Кассир. Если данные будут вводиться из пользовательского режима, то не получится в конфигураторе настроить Адресацию.

Дальше в Задачах настраивается Адресация

Где в поле Адресация указывается Регистр Сведений РегистрАдресации, добавляются Реквизиты Адресации — Исполнитель, Должность, Подразделение и каждый реквизит связывается со своим справочником.
В качестве основного реквизита адресации указывается Исполнитель и в качестве текущего исполнителя указываем параметр сеанса ТекущийПользователь.
Вот для этого в начале связывали пользователя системы и справочник физических лиц.
Следующим этапом необходимо нарисовать карту маршрута:

Каждую точку действия (желтый прямоугольник) нужно связать на вкладке Адресация с измерениями регистра сведений.
А у точки условия необходимо указать процедуру условия, которая пишется в модуле объекта Бизнес-Процесса

И код очень простой:
|
1 2 3 |
Процедура ОплатаНаличнымиПроверкаУсловия(ТочкаМаршрутаБизнесПроцесса, Результат) Результат = ОплатаНаличными; КонецПроцедуры |
Дальше необходимо отобразить на форме Бизнес-Процесса только что нарисованную Карту маршрута.

Для этого необходимо создать реквизит КартаБП с типом ГрафическаяСхема и перенести её на форму.
Далее создаём процедуру на событие ПриСозданииНаСервере и пишем следующий код:
|
1 2 3 4 5 6 7 |
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) //Вставить содержимое обработчика Карта = РеквизитФормыВЗначение("Объект"); КартаБП = Карта.ПолучитьКартуМаршрута(); КонецПроцедуры |
Далее создаём команду для обновления карты маршрута и по сути она должна выполнять тот же код, что и выше. По этой причине весь код модуля формы Бизнес-процесса будет выглядеть так:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ОбновитьКартуМаршрутаСервер(); КонецПроцедуры &НаКлиенте Процедура ОбновитьКартуМаршрутаКлиент(Команда) ОбновитьКартуМаршрутаСервер(); КонецПроцедуры &НаСервере Процедура ОбновитьКартуМаршрутаСервер() Карта = РеквизитФормыВЗначение("Объект"); КартаБП = Карта.ПолучитьКартуМаршрута(); КонецПроцедуры |
Следующим этапом нужно создать НЕ основную форму списка задач и вывести её на рабочий стол 1С Предприятия.
Первым этапом изменяем основную таблицу у динамического списка «Список» на ЗадачиПоИсполнителю

И в настройках динамического списка сделать Отбор по невыполненным задачам

И теперь осталось последнее — вывести получившуюся форму на рабочий стол и это делается очень просто. Правой кнопкой мыши по наименованию Конфигурации и выбираем пункт «Открыть рабочую область начальной страницы», где добавляем только что созданную форму.

