Кастомные Vue.js интерфейсы для смарт-процессов Битрикс24

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Кастомные Vue.js интерфейсы для смарт-процессов Битрикс24
Средний
~1-2 недели
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1321
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    914
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    663
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    810
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    709
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1043

Стандартная карточка смарт-процесса в Битрикс24 — это копия CRM-формы. Она не поддерживает динамические шаги, зависимые поля и визуальный прогресс. Когда бизнес требует многошагового согласования с ветвлением или кастомной валидации, стандартный интерфейс не справляется. Vue.js решает эти задачи: мы создаём placement-приложения, которые полностью замещают форму смарт-процесса. За 10 лет мы разработали более 50 интерфейсов для Битрикс24 — от простых одношаговых форм до сложных CRM-надстроек с интеграцией 1С, ЮKassa и СДЭК. Каждый проект начинается с аудита бизнес-процесса и заканчивается передачей документации и обучением администраторов. В среднем разработка занимает от 4 до 20 рабочих дней, а экономия времени на согласованиях достигает 40%. В этой статье разберём, как мы проектируем мультишаговые интерфейсы для смарт-процессов: от получения стадий до запуска бизнес-процессов, и почему кастомный UI на Vue.js снижает затраты на доработки в 2-3 раза.

Проблемы, которые решаем

  • Нестандартная последовательность шагов. В стандартном интерфейсе стадии идут линейно. Для сложных сценариев (заявка на отпуск с ветвлением, согласование договора с несколькими подписантами) нужен динамический пошаговый UI.
  • Сложная логика полей. Зависимые списки, условное отображение, валидация на стороне клиента — всё это выходит за рамки настроек UF-полей.
  • Визуальный контроль. Заказчики хотят видеть статус этапов, кто согласовал, какие документы прикреплены. Стандартный интерфейс этого не даёт.

Как работает интеграция Vue.js с Битрикс24?

Vue.js — идеальный выбор для placement-приложений Битрикс24. Лёгкий фреймворк, быстрая реактивность, возможность использовать компоненты из экосистемы. В отличие от React, Vue проще встраивается в iframe и не требует сложной настройки сборки. Компонентная архитектура позволяет переиспользовать шаги формы, а Pinia — централизованно управлять состоянием.

Типичный кейс — форма согласования с несколькими шагами, где каждый шаг соответствует стадии смарт-процесса:

<!-- SmartProcessWizard.vue -->
<template>
  <div class="wizard">
    <StepIndicator :steps="steps" :current="currentStep" />

    <Transition name="slide" mode="out-in">
      <component
        :is="currentStepComponent"
        :key="currentStep"
        :item="store.item"
        @next="handleNext"
        @back="handleBack"
        @save="handleSave"
      />
    </Transition>
  </div>
</template>

<script setup>
import { computed } from 'vue'
import { useSmartProcessStore } from '@/stores/smartProcess'

const store = useSmartProcessStore()

const steps = [
  { id: 'initial', label: 'Исходные данные', component: StepInitial },
  { id: 'approval', label: 'Согласование', component: StepApproval },
  { id: 'documents', label: 'Документы', component: StepDocuments },
  { id: 'completion', label: 'Завершение', component: StepCompletion },
]

const currentStep = computed(() => store.currentStep)
const currentStepComponent = computed(
  () => steps.find(s => s.id === currentStep.value)?.component
)

async function handleNext(data) {
  await store.saveStepData(data)
  store.nextStep()
}
</script>

Технические аспекты: стадии, поля, права

Получение списка стадий смарт-процесса выполняется через crm.status.list с фильтром по ENTITY_ID = DYNAMIC_{entityTypeId}_STAGE. Каждая стадия имеет цвет и название — их можно использовать для визуальной индикации. Например, индикатор прогресса отображает текущую стадию цветом.

UF-поля смарт-процессов имеют префикс ufCrm_{entityTypeId}_. Для работы с перечислениями используется userfield.enumvalues.get. Пример получения и обновления поля:

// Получение и обновление UF-поля
const item = await callMethod('crm.item.get', {
  entityTypeId: 1040,
  id: itemId
})
const customDate = item.ufCrm_1040_1704067200   // тип date
await callMethod('crm.item.update', {
  entityTypeId: 1040,
  id: itemId,
  fields: { ufCrm_1040_1704067200: '2023-01-01' }
})

Проверка прав выполняется через crm.type.get. Поле userPermissions показывает, какие действия доступны текущему пользователю. Для компонента Vue реализована простая проверка:

async function checkPermission(entityTypeId, action) {
  const result = await callMethod('crm.type.get', { id: entityTypeId })
  const userRole = result.userPermissions?.[action]
  return userRole !== 'NONE'
}

Автоматизация и история изменений

Запуск BP из интерфейса осуществляется методом bizproc.workflow.start. Документ передаётся в формате ['crm', 'CCrmDocumentDynamic', '{entityTypeId}_{itemId}']. Параметры шаблона указываются в PARAMETERS. Статус запущенного процесса отслеживается через bizproc.workflow.instances.

await callMethod('bizproc.workflow.start', {
  TEMPLATE_ID: templateId,
  DOCUMENT_ID: ['crm', 'CCrmDocumentDynamic', `${entityTypeId}_${itemId}`],
  PARAMETERS: {
    approver_id: selectedApproverId,
    deadline: deadlineDate,
  }
})

Для построения ленты событий используются методы crm.timeline.bindings.list и crm.activity.list. Каждое событие содержит дату, автора и описание — эти данные отображаются в кастомном компоненте timeline.

Что входит в работу

  • Аудит бизнес-процесса и составление ТЗ
  • Прототипирование многошаговой формы
  • Разработка Vue-приложения (Vue 3, Pinia, Vite, TypeScript)
  • Интеграция с REST API Битрикс24 (crm.item, crm.status, userfield)
  • Настройка прав доступа и запуска BP
  • Документация и обучение администраторов
  • Гарантийная поддержка 3 месяца

Сравнение: стандартный интерфейс vs кастомный Vue.js

Параметр Стандартный интерфейс Кастомный Vue.js
Гибкость шагов Фиксированная последовательность Любая логика, ветвления, условные шаги
Визуальный прогресс Только список стадий Прогресс-бар, индикаторы, анимация
Зависимые поля Через настройки UF (ограниченно) Полный контроль через реактивность
Интеграция с BP Через стандартные кнопки Кастомные триггеры, вызов BP с параметрами
Время разработки 0 (из коробки) 4–6 дней (базовый), 2–4 недели (сложный)

Vue.js — один из самых популярных фреймворков для построения реактивных интерфейсов, что подтверждает его надёжность для корпоративных решений.

Пример структуры проекта Vue-приложения для смарт-процесса
  • src/
    • components/ — компоненты шагов
    • composables/ — хуки для работы с API
    • stores/ — Pinia store
    • api/ — REST-обёртки
    • App.vue — корневой компонент
    • main.js — точка входа

Процесс разработки и сроки

Разработка кастомного интерфейса проходит в пять этапов:

  1. Анализ — изучаем бизнес-процесс, определяем этапы, поля и роли.
  2. Проектирование — создаём прототип многошаговой формы.
  3. Разработка — пишем Vue-приложение (Vue 3, Pinia, Vite, TypeScript), интегрируем с REST API.
  4. Тестирование — проверяем на 20+ сценариях, включая граничные случаи.
  5. Деплой и обучение — размещаем placement-приложение, передаём документацию.

Сроки:

  • Простой интерфейс (одношаговая форма, базовая логика) — от 4 до 6 рабочих дней.
  • Сложное решение (многошаговое согласование, BP, внешние интеграции) — от 2 до 4 недель.

Стоимость рассчитывается индивидуально после оценки проекта. Средний диапазон — от 150 000 до 500 000 рублей, в зависимости от сложности. Мы гарантируем качество кода и соблюдение сроков.

Этап Длительность
Анализ 1–2 дня
Проектирование 1–2 дня
Разработка 2–10 дней
Тестирование 1–2 дня
Деплой 0.5 дня

Почему выбирают кастомные интерфейсы?

Кастомный интерфейс на Vue.js решает задачи, с которыми не справляется стандартная CRM: он адаптируется под уникальные бизнес-процессы, сокращает время согласования в 2-3 раза быстрее и снижает нагрузку на менеджеров. Встроенная аналитика и визуальный прогресс повышают прозрачность.

Хотите обсудить ваш смарт-процесс? Свяжитесь с нами — оценим проект за один рабочий день и предложим оптимальное решение. Получите консультацию прямо сейчас.

Полезные ссылки: