Как правильно настроить произвольное пользовательское условие в «БИТ.Финанс»?

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

При работе с подсистемой визирования в «БИТ.Финанс» часто возникает необходимость задать нестандартную логику проверки заявок. Пользователи нередко пытаются вставить громоздкий программный код, включая запросы и циклы, непосредственно в поле «Пользовательское условие». Однако это приводит к ошибкам компиляции, так как механизм Вычислить() не предназначен для выполнения сложных конструкций в одну строку.

Почему нельзя писать сложные запросы прямо в поле условия?

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

Решение: вынос логики в общий модуль

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

  1. Создайте или используйте существующий общий модуль (лучше всего оформить его в расширении конфигурации).
  2. Разместите в этом модуле экспортную функцию, которая будет возвращать результат проверки.
  3. Вызывайте эту функцию из «Пользовательского условия».

Рассмотрим пример реализации такой функции:


// В общем модуле (например, Расш_МойМодуль)
Функция ПроверитьЛимитЗаявки(Контекст) Экспорт
    // Выполняем проверку через регистры накопления, а не документы
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   СУММА(Обороты.СуммаОборот) КАК Сумма
        |ИЗ
        |   РегистрНакопления.ОборотыБюджетов.Обороты(&НачалоПериода, &КонецПериода, , ) КАК Обороты";
    // ... установка параметров и логика вычислений
    Результат = Запрос.Выполнить().Выбрать();
    // Возвращаем Истину, если условие соблюдено
    Возврат Результат.Сумма > 50000;
КонецФункции

После создания функции, в поле «Пользовательское условие» в настройках «БИТ.Финанс» вам останется написать всего одну строку:

Расш_МойМодуль.ПроверитьЛимитЗаявки(СтруктураКонтекст)

Автоматизация визирования: советы и рекомендации

Часто возникает вопрос: как автоматически проставлять визу «Согласовано»? Важно понимать, что бизнес-процессы «БИТ.Финанс» строятся на маршрутах, а не на принудительной записи в регистры виз.

Основные принципы работы с визированием:

Рекомендации по оптимизации запросов

Чтобы ваша система работала быстро и стабильно, проанализируем следующие моменты:

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

← На главную