Большое внедрение Битрикс24. Проблемы и решения



Три последних этапа внедрения:
- Поиски виновных.
- Наказание невиновных.
- Награждение непричастных.
Андрей Орлов, Записки автоматизатора

В статье Битрикс24 — не игрушка было сказано много хорошего. Я сделал два вывода:
1. система уникальна и хороша, по возможности ее надо использовать без доработок;
2. если это действительно важно, можно заняться развитием Битрикс24 силами программистов.



Цель сегодняшней статьи — дать ответственному за внедрение понимание возможностей системы, гибкости настроек и стоимости доработок Битрикс24 , если вы на них решились.

Какую ценность вам дает внедрение — зависит от компании.
Cпособный руководитель может использовать Битрикс24 как прекрасный инструмент  управления коллективом.

Сегодня будем решать задачи по доработке Битрикс24 .

Позитива будет существенно меньше, а технических подробностей больше.

Проблемы

Проблему я обозначил в первой статье и повторю ее.

Любая сложная бизнес-функция в Битрикс24 нуждается в проверке, прежде чем вы начнете ее всерьез использовать.

Очень может оказаться, что функция реализована совсем не так, как вы этого хотели. Очень может оказаться что все работает с странностями, которые вы посчитаете неприемлемыми ошибками.

Несколько примеров.

Пример первый, мистический.

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

Мистика в том что в нашем облачном портале это происходит регулярно и, казалось бы, вне всякой системы. Однажды, когда я улетел в Москву на семинар, в портале появилось скромное сообщение “Буду в 11”.

2.png

Глюк отлавливался неоднократно, есть обращения в поддержку (43661 и 23169).

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

Наш дотошный ведущий специалист Сергей Покоев даже снял видео про этот глюк.

С 26 мая 2014 года “ожидаем исправления”.

Пример второй, или “разве никто этим пользуется?”.

В Битрикс24 есть CRM. Ее можно интегрировать с сайтом.

Выглядит это так.

Есть прекрасный сайт прекрасной компании Итгаз , которая производит и поставляет сложное газовое оборудование.


На сайте есть 8 опросных листов, которые автоматически становятся лидами CRM.

Если сайт на Битриксе, то подобная интеграция требует не более часа настроек.

Лид выглядит так:

4.png


Очень удобно, когда такой автоматически созданный лид сразу становится задачей ответственному. Если этого не сделать, сотрудник должен сам контролировать свой список лидов или отслеживать уведомления в почте. Неудобно.

Такая функция есть, она реализована через Бизнес-процессы.

5.png

Так вот, этот “бизнес-процесс”, который просто создает задачу на базе нового лида, не работает.

6.png

Там сделана очень простая ошибка, которая исправляется за 2 минуты.

7.png

Пример третий, “копейка”.

Тестируем сложную, но нужную функцию: генерация счетов и предложений из CRM.

Создаем товар.

8.png

Добавляем этот же товар в предложение… и видим что появилась одна лишняя копейка.

9.png

Но при печати коммерческого предложения копейка, как по волшебству, пропадает.

10.png

Поддержка и развитие

Обращение в поддержку, как правило, не дает ожидаемого результата. Девушки вежливо поблагодарят за рекомендации и пообещают подумать над пожеланиями. Ошибку передадут ответственным. Злой баг может уйти “в разработку” и вернуться оттуда через несколько месяцев. Или не вернуться.
Виноваты в этом не девушки из первого уровня поддержки. Денис Шаромов, руководитель ТП Битрикса, тоже не решает задачи стремительного развития сложных функций и роста общего качества.
Максимум что он может сделать — подготовить и выпустить очень приличный FAQ по Битрикс24 .
Я не считаю что поддержка и Битрикс в целом работают плохо. Я лишь констатирую что та позиция, которую может занять Битрикс24 в мире корпоративного программного обеспечения, требует совсем иного подхода к разработке и поддержке.

Причины и выводы

Система Битрикс24 реально очень сложна как программный продукт.
Рывком исправить все ошибки нельзя.
Радикально увеличить функциональность тоже.
Честно говоря, на рынке, где в основном вяло крутят пропеллеры, Битрикс работает на сверхзвуковой скорости.
Для того, чтобы “просто пользоваться”, нужно расслабиться и подождать пока Битрикс все доделает.
А если нужно внедрять систему в самое ядро бизнес-процессов, как системообразующий софт — нужны гиперзвуковые технологии разработки. Их нет.
Если вы решили доверять бизнес-критичные задачи этому продукту, действуйте поэтапно и осторожно.
Я бы советовал тактику маленьких шагов.
Выберите то, что работает “почти” как вам нужно, внедрите, получите эффект.
Затем переходите ко второму шагу.
Если вы напишете ТЗ на 100 страниц и будете искать внедренца, который это сделает — через 2 года, заплатив пару миллионов рублей, вы все еще будете ждать старта внедрения.
Разминка закончена, переходим к силовым упражнениям.

11.png

Задача

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

12.png


Решение через штатные возможности и регламенты. Пригодно для облачной версии.

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

Я бы разработал и ввел простой регламент:

Каждый день сотрудник перед уходом домой смотрит новые задачи. Если у него нет вопросов по задаче, он обязан ее принять. Если есть вопросы — задать. Аналогично с “начать выполнение” и просрочкой.

Руководителю для контроля нужно воспользоваться конструктором отчетов.

13.png


Вот так выглядит результат

14.png


Я уверен что 2-3 показательных внушения сотрудникам на основании подобного отчета наведут порядок.

Трудоемкость : регламент, отчет, проведение 1 воспитательной беседы — 1-2 часа.

Неаккуратное, но быстрое решение через вмешательство в программный код.

Помним, что Битрикс24 — сайт на Битриксе. Внутри — просто компоненты, шаблоны, таблицы базы данных.
То, что один программист сделал, другой всегда сломать изучить и изменить может.
Этим и займемся.
Что такое “задачи” в Битрикс24?
Это набор таблиц в базе данных и несколько компонентов в модуле tasks. Программист может понять как работают уведомления и найти место, которое нужно изменить.
Напоминания о задачах — класс в модуле tasks. Его код исследовать особо смысла нет, логика работы проста.

15.png

Сами напоминания хранятся в таблице

16.png

Самое интересное — место в коде компонента tasks.task.edit, где устанавливаются напоминания.

17.png

Видно что компонент, обладая данными о задаче, просто создает напоминания постановщику задачи (текущему авторизованному пользователю).
Кстати. По этому коду видно, что если напоминание установлено, оно никогда не будет удалено. Последнее напоминание не удаляется ни в коробочной, ни в облачной версии. Тикет в поддержку 58401.
Решение напрашивается — добавить “ответственного” и “соисполнителей”. Код написан “просто в лоб” без какой-либо оптимизации.

18.png

Проверяем:

19.png

Вот что видим в таблице с напоминаниями:

20.png

Вот напоминание у моего “виртуала” в почте.

21.png


Трудоемкость
: 2 часа на программирование.

Более корректным решением будет реализация логики в обработчике события создания задачи. Это сохранит возможность обновлений. Это мы сделаем далее.

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

В предыдущем способе решения мы писали код прямо в компоненте. Это некрасиво, есть правильный способ, которому учат разработчиков на Битриксе — собственный обработчик события создания задачи.
Способ на первый взгляд простой и прямой, написать надо то же самое. Но на деле все несколько сложнее и вот почему:

  • в обработчик события Битрикс передает только номер задачи, остальные данные нужно получать;
  • напоминания не являются частью задачи, их приходится получать вызовом другого метода;
  • самое неприятное — Битрикс добавляет напоминания, разбирая POST, ПОСЛЕ того, как вызывает событие добавления задачи. Как следствие — никакого простого и аккуратного способа обработать именно установку напоминания не найдено.
    Можно было вызывать агента с отсрочкой в 5 секунд,  делать очередь заданий на установку дополнительных уведомлений, или писать триггер на уровне базы данных, но все это неэстетично.
    Наименьшим злом была признана обработка того же POST по условию.
22.png

  • раздражающая мелочь: поля в таблице и в POST называются немного по-разному, для этого пришлось писать следующее:

23.png

В целом код несложный и работает нормально.

code4.png


Трудоемкость
: написание программного кода — 3 часа.

Если включить исследование и преодоление разнообразных затруднений, общение с техподдержкой — еще 10 часов чистого времени.

Пробуем решение через бизнес-процессы

В предыдущем способе решения мы писали код. Более интересный и понятный администратору (не-программисту) способ — настроить бизнес-процесс.

Конструктор бизнес-процессов — перспективный и очень интересный элемент Битрикс24.

С его помощью можно “рисовать” процессы, задавать условия и действия.

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

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

Нужно создать процесс “напоминание пользователю-ответственному за задачу” и вызвать это уведомление в нужный момент.

Для этого мы создадим новый шаблон бизнес-процесса всего из одного шага.

24.png


У шаблона процесса будут параметры:

25.png

Эти параметры используются при создании уведомления:

26.png

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

27.png

К сожалению, на момент написания статьи Битрикс может запускать бизнес-процессы автоматически только для элементов инфоблоков, документов или сущностей CRM.
Для задачи бизнес-процесс автоматически не запускается.
Вызов бизнес-процесса нужно запрограммировать. Это можно сделать в обработчике события редактирования задачи.
Печально, но просто вызвать бизнес-процесс нельзя, он стартует на базе нового элемента инфоблока, к которому привязан. В нашем случае получается, что нужно в этот инфоблок передать интересующие нас свойства задачи, и затем бизнес-процесс запустится сам.
Сделать это можно программно, однако теряется весь смысл применения бизнес-процессов: тонкая настройка частной логики БЕЗ программиста.

Трудоемкость : неоправданно высока, решение не выполнено.

Тем не менее если Бизнес-процессы станут более функциональны, просты и будут работать везде — это будет прекрасный инструмент расширения функций портала.

Выводы

Решение обычной задачи может занять от 2 до 20 часов в зависимости от ее сложности.
Каждое изменение внешнего вида и частной логики придется проводить через кастомизацию комплексных компонентов, а возможно, и изменение базы данных.
Подтверждается тезис, с которого я начал: доработки Битрикс24 вполне возможны и приносят результат, их трудоемкость достаточно высока, поручать их можно разработчику с широким кругозором и пониманием бизнес-задач.

28.gif

Комментарии (3)

...
  • Виталий Черепанов
  • 20.02.2015 09:08:26
Степан, спасибо за статью, подсел на эту серию статей как на наркотик, жду следующую.
...
  • Kogan Pavel
  • 20.04.2016 14:57:06
Степан, а какую CRM порекомендуете, где решены эти детские ошибки?
...
Честно -- не являюсь специалистом по другим CRM.
знаю что есть целые сайты-конкурсы-обзоры-сравнительные механизмы.

да и CRM надо выбирать под задачу.

могу сказать при этом что CRM Б24 развивается и улучшается