Как настроить гибкое согласование заявок на расход денег в 1С:УНФ 3.0?

Программист 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Управленческий учет
← На главную

Рассмотрим, как эффективно организовать процесс согласования заявок на расход денежных средств в конфигурации 1С:УНФ 3.0, используя мощный функционал расширений и бизнес-процессов. Мы проанализируем различные подходы и выясним, как адаптировать систему под уникальные требования вашего бизнеса, делая процесс максимально прозрачным и управляемым, в том числе применяя готовое расширение для согласования документов в УНФ.

Использование расширений и бизнес-процессов для согласования

Для начала, давайте разберем основной подход. Мы будем использовать расширение конфигурации, чтобы добавить необходимый функционал, не затрагивая типовую конфигурацию — для этого есть расширение для согласования документов в 1С:УНФ. Это позволит нам сохранить возможность обновления системы без потерь наших доработок. Внутри расширения мы построим механизм согласования, тесно связанный с объектом ЗаявкаНаРасходДенежныхСредств.

  1. Создание расширения. На первом шаге мы создаем новое расширение. В него мы будем добавлять все необходимые объекты и логику. Это могут быть новые справочники для хранения маршрутов согласования, регистры сведений для настройки участников и, конечно же, сам бизнес-процесс.

  2. Бизнес-процессы как основа. Центральным элементом нашего решения станет бизнес-процесс. Мы привяжем его к документу ЗаявкаНаРасходДенежныхСредств. При запуске бизнес-процесса, ссылка на исходный документ автоматически будет передаваться и сохраняться как предмет согласования. Это позволяет нам отслеживать статус согласования конкретной заявки.

    Например, мы можем создать шаблон бизнес-процесса под названием СогласованиеЗаявкиНаРасходДенег. Этот шаблон будет содержать базовую схему, которую мы затем сможем динамически изменять, реализуя настройку маршрута согласования для каждого типа предмета.

  3. Задачи для исполнителей. Бизнес-процессы в 1С генерируют задачи для конкретных пользователей или ролей. Это ключевой элемент, поскольку он позволяет согласующим лицам видеть, какие заявки ждут их решения. Мы будем использовать существующий механизм Задач, который уже имеет отлаженный интерфейс в конфигурации, избегая необходимости "изобретать велосипед".

    После выполнения всех задач, связанных с определенной заявкой, мы сможем автоматически присвоить ей статус Согласована или Утверждена. Это важный момент для автоматизации дальнейших действий, например, включения заявки в платежный календарь для УНФ.

Реализация гибкой маршрутизации согласования

Одним из важнейших требований к системе согласования является ее гибкость. Мы разберем, как реализовать различные типы маршрутов, аналогично тому, как это сделано в 1С:Документообороте — для этого подойдёт готовое расширение для автоматизации согласования документов.

Мы рассмотрим следующие варианты маршрутизации:

Для настройки такой гибкой маршрутизации, мы можем использовать следующие подходы:

  1. Справочник "Шаблоны согласования". Создадим справочник, например, ШаблоныСогласованияЗаявок, где будут храниться предустановленные маршруты. Каждый элемент этого справочника может иметь табличную часть, описывающую этапы согласования, или реквизит для хранения схемы маршрута в виде XML или другого структурированного формата.

  2. Динамическое построение схемы бизнес-процесса. При запуске бизнес-процесса для конкретной заявки, мы будем динамически формировать его схему. Это происходит на основе выбранного шаблона согласования и списка согласующих лиц.

    Посмотрим на пример логики, которая может быть использована для динамического добавления блоков в схему:

    
    // Предположим, у нас есть коллекция согласующихЭтапов,
    // где каждый этап содержит информацию о типе (параллельный/последовательный)
    // и списке участников.
    
    Для Каждого ЭтапСогласования Из СогласующиеЭтапы Цикл
        Если ЭтапСогласования.Тип = "Последовательный" Тогда
            // Добавляем точки действия для каждого участника последовательно
            Для Каждого Участник Из ЭтапСогласования.СписокУчастников Цикл
                // Создать точку действия (Задача) для Участник
                // Привязать к предыдущей точке
            КонецЦикла;
        ИначеЕсли ЭтапСогласования.Тип = "Parallel" Тогда
            // Создаем развилку и параллельные точки действия для всех участников
            // Все параллельные ветви сходятся в одной точке
        КонецЕсли;
    КонецЦикла;
    

    Такой подход позволяет нам программно добавлять элементы схемы бизнес-процесса, такие как ТочкиДействия, ТочкиРазвилки и ТочкиСлияния, формируя уникальный маршрут для каждой заявки.

  3. Определение исполнителей. Исполнителями в маршруте могут быть как конкретные пользователи, так и роли. При внедрении важно использовать качественную ролевую модель определения исполнителей. Если используются роли (например, "Финансовый директор"), то мы должны предусмотреть механизм определения фактических пользователей. Это может быть реализовано через отдельный регистр сведений, хранящий соответствия ролей и пользователей.

    Например, функция, определяющая руководителя подразделения, к которому относится инициатор заявки:

    
    Функция ОпределитьРуководителяПодразделения(ИнициаторЗаявки)
    
        // Пример: получить подразделение сотрудника
        ПодразделениеСотрудника = ИнициаторЗаявки.Подразделение;
    
        // Найти руководителя по подразделение (например, в справочнике "СтруктураПредприятия")
        Руководитель = Справочники.СтруктураПредприятия.НайтиПоНаименованию("Руководитель " + ПодразделениеСотрудника.Наименование);
    
        Возврат Руководитель;
    
    КонецФункции
    

Особенности работы с заявками на расход денежных средств в 1С:УНФ 3.0

В 1С:УНФ 3.0 уже предусмотрены некоторые специфические механизмы для работы с денежными средствами, которые мы можем использовать или расширить. Например, можно организовать распределение денежных средств по фондам, чтобы контролировать расход средств из различных источников дохода.

  1. Рабочее место "Заявки к согласованию". В типовой конфигурации УНФ есть удобное рабочее место: Казначейство – Планирование и контроль денежных средств – Заявки к согласованию. Мы можем настроить интеграцию нашего механизма согласования с этим рабочим местом, чтобы согласующие лица видели все ожидающие их решения заявки в одном месте. После согласования заявке будет присваиваться статус Согласована, и она автоматически попадет в платежный календарь.

  2. Опциональность и ограничение доступа. Механизм согласования может быть опциональным. Мы можем настроить его включение для выбранных организаций и с определенной даты, что дает гибкость при внедрении. Кроме того, на время прохождения заявкой маршрута согласования, мы можем ограничить доступ к ней для редактирования. Денежные документы, такие как РасходныйКассовыйОрдер или СписаниеСРасчетногоСчета, должны выписываться только по полностью утвержденным заявкам.

Дополнительные возможности и автоматизация

Для создания полноценной системы согласования, давайте рассмотрим дополнительные инструменты и подходы:

  1. Действия по событиям. Мы можем реализовать выполнение определенных действий на встроенном языке 1С при наступлении ключевых событий бизнес-процесса. Это могут быть:

    • При запуске согласования. Например, изменение статуса заявки на НаСогласовании, блокировка документа для редактирования.

    • При успешном согласовании. Автоматическая установка статуса Согласована, отправка уведомления инициатору, включение в платежный календарь. После завершения всех оплат будет полезен итоговый анализ остатков и движения денежных средств для УНФ 3.0.

    • При отказе в согласовании. Установка статуса Отклонена, разблокировка документа для редактирования, отправка уведомления с причиной отказа инициатору.

    Пример логики для действия при успешном согласовании:

    
    // Получаем ссылку на документ-предмет бизнес-процесса
    ДокументЗаявка = БизнесПроцесс.Предмет.ПолучитьОбъект();
    
    // Устанавливаем статус
    ДокументЗаявка.Статус = Перечисления.СтатусыЗаявокНаРасходДенег.Согласована;
    
    // Записываем документ
    ДокументЗаявка.Записать();
    
    // Оповещаем инициатора
    МодульУведомлений.ОтправитьУведомление(ДокументЗаявка.Инициатор, "Ваша заявка согласована.");
    
  2. Обратная связь и аналитика. Как и в 1С:Документообороте, полезно предусмотреть возможность внесения замечаний согласующими лицами. Для глубокого понимания финансовых потоков в компании, мы рекомендуем также настроить отчет движение денег по проектам, что позволит видеть эффективность каждого направления деятельности.

Таким образом, комбинируя возможности расширений, гибкой маршрутизации бизнес-процессов и специфического функционала 1С:УНФ 3.0, мы можем создать мощную и удобную систему согласования заявок на расход денежных средств, которая будет полностью соответствовать потребностям вашего предприятия.

← На главную