Добавить в корзинуПозвонить
Найти в Дзене
Блокнот интегратора

Справочник оборудования в Битрикс24: почему я дублирую Смарт-процесс в Универсальный список

Коллеги, хочу поделиться связкой, которую использую для ведения справочников с историей и одновременно удобным выбором значений в полях. На примере оборудования: его нужно не просто перечислить, а вести по нему документы, закупки, привязывать к клиентам. Но в сделках или задачах менеджеру нужен быстрый выбор только активных позиций. Смарт-процесс (СП) идеален для первого. Универсальный список (УС) — для второго. Расскажу, как подружил их и что из этого вышло. Коллеги, кто-то использует подобную схему? Может, у кого-то есть более элегантное решение, как подружить СП и Универсальные списки без ручной синхронизации? Делитесь опытом в комментариях — интересно обсудить подводные камни и альтернативы.
Оглавление

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

Смарт-процесс (СП) идеален для первого. Универсальный список (УС) — для второго. Расскажу, как подружил их и что из этого вышло.

Суть подхода

  1. Смарт-процесс «Оборудование» — основное хранилище. Здесь вся жизнь единицы техники: модель, серийный номер, дата ввода, привязанные документы, закупки, контракты, история ремонтов. Настроены стадии (например, «На складе», «У клиента», «В ремонте», «Списано»), бизнес-процессы, права доступа (отдел закупок видит всё, менеджеры — только базовую инфу).
  2. Универсальный список «Оборудование (активное)» — облегчённая копия. Содержит только поля, необходимые для идентификации: название, инвентарный номер, возможно, краткое описание. Этот список доступен всем сотрудникам без ограничений (иногда делают именно этот список для менеджеров).
  3. Синхронизация через БП или роботов. При создании, изменении статуса или удалении элемента в СП срабатывает бизнес-процесс, который обновляет запись в Универсальном списке. Если оборудование переводится в стадию «Списано» — запись из УС удаляется (или помечается неактивной через свойство «Активность», если нужно сохранить историю ссылок).
  4. Использование в полях. В сделках, других смарт-процессах, задачах создаётся пользовательское поле типа «Привязка к элементам универсального списка», которое ссылается на УС. Менеджер видит только актуальные позиции.
-2

Почему я выбрал именно такую архитектуру

Плюсы

  • Чистый выпадающий список. Без лишних стадий, бизнес-процессов и истории, которые путают пользователя при выборе.
  • Управление видимостью. СП с конфиденциальной информацией (закупочные цены, документы) может быть ограничен правами доступа, а УС открыт всем. Менеджер не видит лишнего, но знает, что такое оборудование существует.
  • Автоматическое скрытие неактуальных записей. При списании элемент исчезает из выбора. В СП такой фильтрации по умолчанию нет — в полях привязки отображаются все элементы, включая архивные.
  • Производительность. Выбор из Универсального списка работает быстрее, чем из большого СП с кучей дополнительных полей и процессов.

Нюансы, которые стоит учитывать

  • Дублирование данных. Нужно чётко синхронизировать изменения. Я использую роботы и/или БП, которые при изменении названия или других ключевых полей в СП обновляют УС. Ошибка в логике — и списки расходятся.
  • История изменений. В СП она есть, в УС — нет. Но для справочных целей это не критично.
  • Удаление записей. Если просто удалять из УС при списании, то в старых сделках поле выбора может отображаться как «Элемент удалён». Я предпочитаю не удалять, а ставить признак «Активен = Нет» и фильтровать в настройках поля. Тогда история ссылок сохраняется корректно.
-3

Как я настраиваю синхронизацию (краткая инструкция)

  1. Создаём СП «Оборудование» с нужными полями и стадиями.
  2. Создаём Универсальный список через «Настройки → Списки → Универсальные списки». Добавляем поля: название, инвентарный номер, ID из СП (для связи). Такое же тех поле делаем в СП.
  3. Создаём робота или БП в СП:
    Триггер: «При добавлении» и «При изменении».
    Условие: если стадия не «Списано», то через Активити создание или изменение универсального списка, вносить данные из СП.
    Если стадия меняется на «Списано» — либо удаляем элемент из УС, либо меняем его статус на неактивный.
-4

Вопрос к сообществу

Коллеги, кто-то использует подобную схему? Может, у кого-то есть более элегантное решение, как подружить СП и Универсальные списки без ручной синхронизации? Делитесь опытом в комментариях — интересно обсудить подводные камни и альтернативы.