Возврат (loop) в Алгоритмах визирования. Бит Финанс

Публикация № 865857

Программирование - Практика программирования

Бит Финанс Алгоритм Визирование Возврат loop

6
В статье рассматривается минимальная доработка конфигурации БИТ Финанс, с сохранением поддержки, для расширения функционала Визирования: Возрат к предидущим точкам алгоритмов. Полезно будет для программистов и специалистов, занимающихся внедрением БИТ Финанс.

В данной статье пойдет речь об алгоритмах визирования в конфигурации Бит Финанс. Многие программисты сталкивались с проблемой, что в Алгоритмах визирования в Бит Финанс отсутствует возможность возвращать алгоритм к предыдущим точкам маршрута. Как только вы попытаетесь это сделать, система выдаст ошибку.

Вопрос, возможно, кем-то и решенный, но я на просторах интернета так и не нашел решения. Пришлось колдовать самому. Представляю вниманию небольшой набор средств для организации возможности условного и безусловного возврата на предыдущие шаги визирования в алгоритме согласования. Я не претендую на истину в последней инстанции, однако система работает. Итак, приступим.

Идея очень простая. Для возврата на предыдущий этап будем использовать «Решение».

Например, что б вернуть Заявку на этап визирования «Руководитель ЦФО», создадим решение «Возврат рук ЦФО», а для возврата в начало инициатору, создадим решение «Возвращено на доработку» 

Теперь создаем регистр сведений «ТочкиВозврат».

Заходим в программу , и заполняем регистр.

По решению «Возвращен на доработку» Алгоритм визирования должен вернуться в начало.

А по решению «Возврат рук ЦФО»  алгоритм должен вернуться в точку «Проект договора. Рук ЦФО».

Естественно для каждого алгоритма и решения, нужно указывать свои точки.

Теперь приступим к программированию.

Нам нужно написать Функцию которая определит , что алгоритм запущен повторно БылиВозвраты.

Процедура очистки виз ВернутьНаДоработку.

Создадим общий модуль Алгоритмы и в нем пропишем нужные процедуры и функции , которые будем использовать в алгоритмах.

Итак, приступим:

Теперь собственно реализуем наш механизм. Для реализации механизма , мы воспользуемся алгоритмом изменения статусов.

Для начала в создадим колено с условием , где проверим, что есть решения по возврату . Это собственно и будет путь перенаправления маршрута назад.

 

Ну и самый ключевой шаг , это присвоение статуса "Возращено на доработку".  Обработчике , пропишем вызов нашей процедуры возврата . Пожалуй, это и все. 

 

Но нет, не все. Есть еще один маленький шаг. При возврате алгоритма назад, к началу, инициатор должен будет сделать какие то действия с документом (исправить ошибки и т.п.), и после этого,каким то образом сообщить системе что исправления завершены. Соответственно делаем колено, в котором проверяем, это loop или нет. Если это итерация, а не первый проход, то  просим Инициатора подтвердить, что он учел все замечания и исправил документ.

 

6

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Vyatcheslav 12 20.08.18 10:30 Сейчас в теме
Спасибо, вроде логично сделано. Тоже при внедрении Бит.Финанс много чего пришлось доделывать, например статус Заявки на платеж "включена в реестр платежей" или статус самого реестра платежей "Оплачен", когда все заявки реестра платежей оплачены или закрыты, финансистам очень удобно. Еще структура подчиненности для платежки и выписки, чтобы было видно, из какой заявки на платеж сделаны...
ну и механизмы адресации, конечно, не только по предопределенным ЦФО/Проект/Организация... всего и не упомнить.
Оставьте свое сообщение