Найти в Дзене
ИНТЕРВОЛГА

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

Оглавление

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Система Битрикс24 реально очень сложна как программный продукт. Рывком исправить все ошибки нельзя. Радикально увеличить функциональность тоже.

Честно говоря, на рынке, где в основном вяло крутят пропеллеры, Битрикс работает на сверхзвуковой скорости. Для того, чтобы “просто пользоваться”, нужно расслабиться и подождать пока Битрикс все доделает. А если нужно внедрять систему в самое ядро бизнес-процессов, как системообразующий софт — нужны гиперзвуковые технологии разработки. Их нет.

Если вы решили доверять бизнес-критичные задачи этому продукту, действуйте поэтапно и осторожно. Я бы советовал тактику маленьких шагов. Выберите то, что работает “почти” как вам нужно, внедрите, получите эффект.

Затем переходите ко второму шагу. Если вы напишете ТЗ на 100 страниц и будете искать внедренца, который это сделает — через 2 года, заплатив пару миллионов рублей, вы все еще будете ждать старта внедрения.
Разминка закончена, переходим к силовым упражнениям.

Задача

Мы возьмем одну задачу доработки Битрикс24 и решим ее.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Проверяем:

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

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


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

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

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

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

В целом код несложный и работает нормально.
Трудоемкость : написание программного кода — 3 часа.

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

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

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

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

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

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

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

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

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

-22


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

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

-24


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

-25

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

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

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

Выводы

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

Как организовать внедрение Битрикс24 в компании?

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


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

Разработка и доработка проектов на 1С-Битрикс.

Внедрение Битрикс24.

Настройка интеграции с 1С любой сложности.

B2B-платформа для автоматизации оптовой торговли.

Блог про сложные проекты.

Техническая поддержка сайтов.