Как правильно дорабатывать Битрикс24. Добавляем функции в коробочную версию

Самое страшное — дурак с инициативой.
Авиаконструктор Андрей Туполев.
Коробочная версия Битрикс24 в умелых руках — прекрасный инструмент быстрой автоматизации процессов.
Все больше предприятий внедряют Битрикс24 и заказывают доработки под свои нужды.
Формально существует более 10 тысяч компаний, способных развивать эту мощную систему, а на практике правильных доработок Битрикс24 почти не бывает.
Но CRM Битрикс24 и не создавалась как «продукт для массовой доработки». Мало кто действительно понимает ее особенности и способен добавлять новые функции в Битрикс24 правильно. Мы — умеем.
Суть статьи одним абзацем: Битрикс24 — система мощная и хитро устроенная. Избегайте дилетантов в работе со сложной техникой.
ИНТЕРВОЛГА — один из лучших подрядчиков по развитию Битрикс24. Почему?
Специалисты ИНТЕРВОЛГИ умеют делать доработки правильно. Мы — разработчики ключевых учебных материалов, выпущенных 1С-Битрикс:
Мы помогаем бизнесу зарабатывать больше за счет автоматизации процессов.
Заполните форму заказа новых функций в Битрикс 24.
Что доступно для доработки ТОЛЬКО в коробочной версии Битрикс24
Коробочная версия — уникальная черта Битрикс24.
Другие CRM не позволяют клиентам получить коробочную версию (Фактически это собственная копия облачного сервиса),
Битрикс24 не только дает эту возможность, но и позволяет менять логику системы под себя.
В статье мы расскажем как делать это правильно.
Нестандартные отчеты. Чего не может конструктор
Для бизнеса важны сделки, задачи и проекты. Управлять бизнесом значит видеть результаты и принимать решения. Много пользы может дать конструктор отчетов Битрикс24. Если вам нужно больше — переходите в коробочную версию и заказывайте собственные отчеты.
Примеры отчётов, которые вы НЕ получите «из коробки»:
Мы знаем как правильно решать эти задачи. Правильно — значит технологично и эффективно. Вы можете прислать нам свою задачу.
Новые страницы и сущности. Чего не умеют Приложения24 и REST API
В Битрикс24 есть несколько стандартных таблиц, где можно хранить данные и строить бизнес-процессы:
В разделе CRM применяются:
Однако, бизнес ставит задачи, которые нередко выходят за возможности стандартных таблиц Битрикс24. Как правило, нужно создать нескольких новых сущностей и логику работы с ними. Это нормально.
Пример новой сущности с особым интерфейсом.
Профессиональный разработчик должен держать в голове структуру данных системы, с которой работает. Выглядит это примерно как на картинке ниже.
Если вам нужна новая сущность в Б24, спросите программиста — с чем и как он ее собирается связать.
Если «в ответ — тишина», стоит задуматься.
Мы расскажем как это сделать правильно.
Изменения интерфейса: кнопки, собственные типы полей, связи
Компания 1С-Битрикс старается сделать продукт удобным для массового бизнеса, для всех — и в среднем, как мы написали выше, охватывает большинство потребностей бизнеса. А вот отраслевые особенности приходится учитывать интегратору — компании, которая адаптирует стандартное решение под специфику заказчика.
Пример доработки: добавить новый статус у задачи «на контроле», связать сделку CRM с проектом.
Это можно сделать только в коробочной версии системы.
Обычно список задач выглядит как таблица. Хорошая практика — «раскрашивать» задачи в зеленые, которые решаются просто настройкой, желтые (требуют программирования) и красные — их лучше не делать вовсе.
Интеграция Битрикс24 с учетными системами 1С и другими ERP
Обмен данными и синхронизация с любой нетиповой 1С во многих случаях можно реализовать в облачной версии Битрикс24. Стандартные модули хорошо помогают в стандартных ситуациях для основных сущностей и при невысоких нагрузках.
Мы реализовали большой проект на 200 часов работ по интеграции с 1С, сервисами Google и телефонией.
Возможностей API для работы со стандартными сущностями достаточно. Коробка нужна, когда нужны свои веб-сервисы для новых сущностей.
Если необходимо вводить новые сущности — нужна коробочная версия и ее правильная доработка.
Работа продавца в Битрикс24 вместо 1С. Так бывает?
Что дает бизнесу синхронизация 1С и Битрикс24?
Она позволяет упростить работу продавцов. Битрикс24 дает возможность сотрудникам работать в более простом по сравнению с 1С интерфейсе, а руководству — контролировать процесс.
Чтобы продавцу было действительно удобно, нужно комплексно решить все его задачи. Настройка системы продаж, отлаживание процессов, разработка и внедрение регламентов для продавцов — все важно.
Система должна быть дружественна, проста для продавца. Банк не сможет работать в CRM, заточенной под киноиндустрию.
Для этого нужно дорабатывать интерфейсы, убирать лишние кнопки, упрощать, делать работу пошаговой. То есть — пилить коробку.
Стандартные модули и их ограничения
Почти всегда требуется обмен данными между Битрикс24 и 1С. И почти всегда нужно начинать со стандартных модулей для интеграции Битрикс24 с 1С. Почти всегда функций этих модулей недостаточно.
Чего не умеют стандартные модули:
Любая задача информационного обмена Б24 и 1С решается в коробочной версии созданием собственного механизма обмена.
Двусторонняя онлайн-синхронизация CRM с 1С в реальном времени. Миф?
Существует мнение, что синхронизация с 1С это долго и ненадежно.
Много лет были доступны только долгие и капризные «файловые обмены» между 1С и другими системами. Приходилось бороться с ошибками и ждать окончания «полной выгрузки».
Времена изменились. Если ваши программисты не способны создать двустороннюю онлайн-синхронизацию двух систем в режиме «почти» реального времени или называют большую оценку из-за необходимости настройки и отладке файлового обмена — стоит задуматься о их квалификации.
Двусторонний реалтайм-обмен — дорогое, но эффективное решение.
У нас есть специалисты и по Битриксу, и по 1С. Мы соберем требования, спроектируем и запустим такой обмен. Это не миф.
Чего хочет бизнес? Когда нужно менять интерфейс и логику
Битрикс24 можно использовать «как есть», в облачной версии. После правильного базового внедрения люди начинают работать в системе, а бизнес — зарабатывать больше.
Мы знаем тому много примеров.
«Все хорошо, но у нас своя специфика»
Свои правила не только в каждой отдельно взятой отрасли, но иногда и в бизнесах внутри отрасли. Что-то нужно подстроить: процессы в компании или систему под процессы.
Что бы вы ни выбрали, мы поможем:
«У нас другие процессы: лидов нет, зато есть медиапланы и отгрузки. А еще персональные цены»
Очень часто компании используют уникальные термины и документы. Например:
Кроме того, очень многим компаниям нужна возможность в каталоге указывать различные цены для разных клиентов или давать скидки в зависимости от объема.
В Битрикс24 сейчас таких возможностей нет. ИНТЕРВОЛГА умеет их добавлять.
«В старой системе это уже есть, зачем нам вкладываться в новую CRM?»
Нередко в компании уже есть программа, в которой работают менеджеры. Например, это Excel-документ для расчета наценок или дописанная форма в 1С для сборного заказа.
Бизнес уже вложил деньги в эту программу и второй раз платить не хочется. Как быть? Легкого пути нет.
Если такой вопрос вообще возник, значит есть боль. Она может проявляться в потере данных, отсутствии должного контроля, банальном неудобстве, которое тормозит работу — то есть неизбежной потере времени и денег.
Есть 2 решения, которые мы успешно применяем:
Мы умеем повторно использовать ИТ-системы и знаем как минимизировать потери денег.
Как не надо делать доработки кода CRM. Вредные советы
Итак, вы решили поменять логику работы Битрикс24 «под себя». Ваши программисты согласились и даже попросили не очень много денег. Вопросов не задавали. Хотите расскажу что вас ждет?
Менять ядро Битрикс? Нет
Правильные программисты Битрикс знают, что «менять ядро» неправильно. При создании сайтов и интернет-магазинов довольно легко делать доработки, не трогая ядро. В Битрикс24 логики больше и искушение «пойти и поправить» очень велико.
Почти все проекты, которые мы получаем после других программистов, имеют правки ядра.
Клиенту это приносит остановку работы после каждого обновления и мучительную отладку в режиме «пинг-понг». Ваш интегратор будет ругать Битрикс и его техподдержку, а вы будете ждать, мучиться и тратить время.
Вместо точки роста бизнеса вы получаете точку риска. Не позволяйте интегратору менять ядро продукта.
Хотите узнать как проверить вашего программиста? Поделитесь статьей в соцсетях, а мы пришлем вам чеклист правильной доработки и инструкцию по проверке качества.
Редактировать стандартные компоненты Битрикс24? Нет
Допустим, вам нужно в карточку задачи Битрикс24 добавить новую кнопку «на контроль». Что делает разработчик-junior, который считает себя гуру?
Он вносит правку в стандартный компонент, создавая копию. Формально он ничего не нарушает, ядро продукта на месте. Решение правильное, если бы это был интернет-магазин.
Для Битрикс24 это НЕПРАВИЛЬНОЕ решение. Клиенту оно приносит отказ от обновлений системы.
Компания 1С-Битрикс обновляет Битрикс24 примерно раз в месяц, а раз в полгода приходят большие обновления.
Не позволяйте интегратору «заморозить» систему. Когда Битрикс выпустит что-то особенно полезное, вам придется понести неожиданные расходы.
Например, крупное обновление неправильно доработанного Битрикс24 может потребовать 100 часов работы.
Правильный подход позволяет бизнесу контролировать расходы, автоматизировать процессы и зарабатывать больше.
Создавать копии страниц CRM? Нет
Еще программисты любят создавать копии целых разделов Битрикс24 и «немного» их редактировать. Это чревато появлением двух разных версий одного и того же кода и проблемами совместимости.
Не позволяйте вашему интегратору захламлять систему. Это делает дороже сопровождение системы.
Хотите проверить качество вашей доработанной коробочной версии? Поделитесь статьей в Facebook, а мы пришлем вам чеклист правильной доработки и инструкцию по проверке качества.
Проблемы из-за неправильной доработки
Бездумное «ковыряние» кода приводит к ошибкам. Рассмотрим несколько примеров.
Конфликты между доработками
Пример: программисты добавили 200 дополнительных полей в сделку. Потом запрограммировали тяжелый отчет по эффективности менеджеров и показали там все поля. А потом программно загрузили 10000 старых сделок из 1С.
Результат — отчет не открывается. Даже при отсутствии в системе менеджеров — а, следовательно, и нагрузки по отслеживанию их эффективности — страницы CRM не открываются.
Как работает грамотный интегратор?
Битрикс24, адаптированный под специфику компании — способ заработать больше. Экономия на проектировании и тестировании лишит вас стабильности работы бек-офиса.
Обновления Битрикс24 все ломают
Обновления Битрикс24 нужно выполнять аккуратно, в специально отведенное для таких операций время. Каждое обновление нужно репетировать на копии для разработки.
Цель — обновления не должны портить ни штатную логику, ни доработанную под специфику вашего бизнеса.
Если ваш бизнес регулярно простаивает из-за программистов — пора что-то менять. Изучите чеклист качества доработки в конце статьи.
Производительность падает с каждой новой доработкой.
Коробочный Битрикс24 нормально работает при сотнях тысяч сделок, компаний и товаров. А вот несистемные правки способны его замедлить даже при отсутствии нагрузки.
Пример: потребовалось настроить права на просмотр стоимости сделки и процента наценки для разных групп пользователей. Программист сделал проверку неоптимально и при просмотре даже 20 сделок в списке CRM начала выдавать ошибку. Нагрузка на сервер выросла и система перестала открываться.
Как правильно добавлять функции в коробочную версию. Best practices
Зачем развивать Битрикс24 мы рассказали. И «как не надо» тоже ясно.
Поговорим о том чем работа профессионала отличается от энтузиаста-дилетанта.
Изящно меняем интерфейс. В перчатках.
ИНТЕРВОЛГА разработала технологию подмены любых стандартных элементов интерфейса системы на специфические. Эта технология позволяет устанавливать обновления без потери логики.
Квалификацию специалистов компании подтверждает то, что наш подход описан в вебинарах, опубликованных на сайте Битрикса. Мы профи в этом и готовы проверить ваших программистов и их работу. Для этого мы обычно делаем аудит качества решений.
Модули и установщики. Никак иначе.
Бизнес ждет стабильности и предсказуемости работы. Для него важна конфиденциальность и регламентированность.
Поэтому любые изменения логики должны оформляться как модули — так можно ограничить места доступа программиста, а кроме того иметь страницы настроек, включаться и выключаться по кнопке. Естественно, у модуля должен быть установщик и возможность корректного удаления.
Битрикс24 — система для взрослых. Программисты тоже должны вести себя по-взрослому.
Во многих наших проектах программисту доступ к Битрикс24 заказчика вообще не нужен. ИТ-служба ставит и обновляет наши модули самостоятельно. Вопрос доступа к конфиденциальной информации даже не стоит.
Да, это дороже, но оправдывает себя.
Соблюдаем правила вендора
Все специалисты ИНТЕРВОЛГИ умеют делать доработки правильно и проходят специальное обучение. Наши ведущие программисты и аналитики являются разработчиками ключевых учебных материалов, выпущенных 1С-Битрикс:
Наша внутренняя база знаний содержит много информации по типовым задачам и архитектуре.
Как проверить разработчиков и свой портал? Чеклист
Адекватная оценка уровня своих подрядчиков и сотрудников — необходимый аспект для принятия верных решений в бизнесе.
Мы научим вас проверять разработчиков и их работу.
Как у вас проходит установка обновлений коробочной версии?
Оценка ваших программистов и их работы
Никак, мы отказались от обновлений, несмотря на то что обновления закрывают уязвимости.
Безопасность? Не думали.
Мы иногда сами устанавливаем, что-то всегда отваливается. Резервных копий не делаем
Иногда падает телефония или рассылки, и приходится что-то срочно обновлять. Работа стоит, ждем программистов и техподдержку.
Обновляем прямо на боевом сервере, не «репетируем».
Каждый день делается копия базы данных системы.
Каждую неделю — полная копия.
Битрикс24 размещен на сервере с функцией «мгновенного бекапа», не приходится ждать 10 часов на откат
История изменений кода ведется через систему контроля версий.
Установка обновлений проводится в оговоренный период по расписанию в нерабочее время.
собираем список доработок;
определяем ответственных за их тестирование после обновления;
делаем копию портала;
делаем правки доработок;
После каждого обновления выполняется проверка системы на ошибки.
Скорость работы системы мониторится автоматически.
В случае проблем с каким-то модулем он безопасно деактивируется или удаляется.

Вы клиент ИНТЕРВОЛГИ с услугой « обслуживание по SLA »
Полный список вопросов для проверки вы получите, если поделитесь статьей в соцсетях и заполните форму под статьей.
Монитор производительности
Запустите встроенный в Битрикс24 монитор производительности. Картина не должна сильно отличаться от этой (не обращайте внимание на язык, это международный проект):
Особое внимание уделите просадке производительности в рабочее время, когда среднее время открытия популярной страницы более 2с.
Полный список вопросов для проверки вы получите, если поделитесь статьей в соцсетях и заполните форму под статьей.
Как организовать работу по самым частым задачам
ИНТЕРВОЛГА работает с технологиями 1С-Битрикс больше 10 лет. У нас накоплен большой опыт анализа, постановки, проектирования и внедрения новых функций в Битрикс24. Мы готовы поделиться своими проектными шаблонами.
Все нижеперечисленные документы в виде шаблонов вы получите, если поделитесь статьей в соцсетях и заполните форму под статьей.
Я все понял, как начать? Что делать перед стартом доработок Битрикс24
Грамотный интегратор отделяет разумные изменения от избыточных, учит клиента правильно пользоваться базовыми возможностями и создает новые, когда это нужно.
На практике не более 20% задач требуют доработки системы. Бойтесь тех, кто на любой вопрос отвечает «могём, сейчас допилим».
Добавление функций в систему и автоматизация процессов с помощью Битрикс24 может сделать ваш бизнес эффективнее. Вы повысите скорость работы, захватите большую долю рынка, заработаете больше денег и избежите проблем — если сделаете все, как советуем мы, и как требует наш чеклист.
Мы профессионалы в развитии коробочной версии Битрикс24.
Для заказа новых функций Битрикс24 перейдите на специальную страницу.
Для получения наших учебных материалов поделитесь статьей в соцсетях и заполните форму под статьей.
Вам может быть интересно:
Проблемы и принципы кастомизации коробочной версии Битрикс24
Многие компании в определенный момент приходят к тому, что ряд процессов в бизнесе нужно автоматизировать, чтобы не потерять свое место под солнцем и своих заказчиков. Поэтому все чаще клиенты начинают «оцифровывать» свой бизнес.
Для этой цели есть разные платформы, Битрикс24 — одна из самых популярных. Скорость развития и появления новых фич, качественная поддержка и богатый набор инструментов, который даже с минимальной кастомизацией покрывает базовые потребности большинства разных компаний, делает эту платформу практически идеальным решением для бизнеса.
Но, увы, не для разработчиков, особенно начинающих.
Специалисты пишут обучающие статьи по 1С-Битрикс и разным модулям системы, но после их прочтения у новичков все равно нет общей картинки и понимания, как же все устроено на этой платформе. В интернете есть статьи про best practice разработки на фреймворках, но разработку на Б24 обходят стороной. Есть и компании, которые научились делать качественный продукт, но они держат свои наработки в тайне.
Если хотите узнать, как можно работать с Битрикс24, сохранив при этом исходный цвет волос, добро пожаловать под кат.
Юлия Силантьева — ведущий разработчик Битрикс24 в digital-агентстве полного цикла ITECH.
Что из себя представляет Битрикс24
Наверное, все, кто по долгу службы или из интереса хоть раз сталкивался с разработкой под Битрикс24, знают продукт 1С-Битрикс: Управление сайтом (БУС). Это CMS для создания сайтов или, по определению самого Битрикса, система управления интернет-ресурсами.
Но мало кто знает, что корпоративный портал Битрикс24 — это сервис, написанный на 1С-Битрикс.
Битрикс24 имеет 2 решения: облачное и коробочное. Отличаются они, как понятно из названия, местом размещения кода портала: на серверах Битрикс или на сервере клиента. Коробка дает больший простор для фантазии, но имеет более дорогую лицензию и нуждается в поддержке серверов, а облако стоит дешевле, но имеет ряд ограничений на кастомизацию.
В целом же дорабатывать можно как облачные, так и коробочные версии. Какое решение использовать, зависит от нужд клиента.
В рамках этой статьи я хочу более детально рассмотреть общие подходы к разработке на коробочной версии Битрикс24.
Коробочное решение: архитектура продукта
Внутри сервиса лежит Bitrix Framework, являющийся ядром сайта.
Bitrix Framework содержит модули и компоненты:
Ядро Bitrix Framework — файлы, находящиеся в директории /bitrix. Вносить изменения в ядро нельзя (Вообще. Никогда. Даже не думайте об этом) в силу нескольких причин:
Портал Битрикс24, как и любой другой сайт, написанный на 1С-Битрикс, включает в себя шаблон сайта, публичную часть (т. е. разделы и страницы), компоненты и шаблоны компонентов. А отличается он от обычного сайта тем, что при установке обновлений все вышеперечисленное также обновляется. Поэтому публичную часть, шаблон Битрикс24 и стандартные компоненты также можно считать ядром Битрикс24. А это значит, что в них тоже нельзя вносить изменения (как минимум потому, что они будут удалены при очередном обновлении).
Но лазейки все же есть, и безболезненно внести изменения реально.
Обновляемость
Обновления продукта очень важны. Они решают проблемы с безопасностью, закрывают имеющиеся баги (правда, иногда тут же плодят новые
). Иногда с обновлениями прилетают новые крутые плюшки.

Битрикс советует устанавливать обновления, как только они становятся доступными. Но я бы рекомендовала этого совета придерживаться не всегда. Желательно устанавливать обновления в моменты минимальной нагрузки на сервер, например, в выходные или ночью — по закону Мерфи, в момент, когда требуется сделать все быстро и незаметно, Битрикс падает с ошибкой при обновлении.
Конечно, это бывает нечасто, но подстраховаться не помешает. И не забывайте делать бекапы перед запуском обновлений.
Принципы кастомизации
Вся разработка должна вестись в одной папке — /local.
Чтобы добавить свой функционал в сайт, написанный на БУС, достаточно найти нужный компонент, скопировать его в папку /local, кастомизировать класс и шаблон компонента.
На Битрикс24 этот подход является в корне неверным.
Во-первых, если скопировать шаблон в каталог /local, система всегда будет использовать его вместо стандартного. Это означает, что после очередного обновления клиент не увидит новых функций, которые могли быть добавлены в этот компонент, а также не будут исправлены ошибки, если они есть. Вручную поддерживать актуальность компонентов сложно, а если изменения носили глобальный характер, то невозможно.
Во-вторых, компоненты сервиса представляют собой целостную систему, и их код написан, исходя из предположения, что во всей системе используются оригинальные шаблоны. Это означает, что кастомизированный шаблон может привести к информационной несовместимости с остальными частями системы и стать источником трудно уловимых ошибок.
Что же в таком случае делать разработчику, которому необходимо изменить или добавить какую-то логику?
Есть несколько вариантов решения проблемы:
Local
Основная папка, куда может и должен запустить руки разработчик, — /local. Изначально на проекте ее нет, так что наполнять папку можно по своему усмотрению, но в части путей важно следовать указаниям Битрикс, иначе платформа не увидит кастомизированные компоненты и модули.
Предлагаем универсальную структуру папки /local:
При обработке папок приоритет всегда у папки /local перед /bitrix. Это означает, что, если в /local/templates/ и /bitrix/templates/ находиться шаблоны сайта с одинаковым названием, то подключится шаблон из /local.
Отсюда следует важное замечание: чтобы Битрикс понимал, что следует забирать кастомизированные шаблоны компонентов из папки /local, она должна обладать определенной структурой:
При этом папка шаблона сайта в /local (речь идет о Битрикс24, а не БУС) должна содержать шаблон, созданный компанией Битрикс (/bitrix/templates/bitrix24/). Только в этом случае система поймет, что необходимо подключить компонент из /local.
Что еще важно иметь в виду при разработке?
Для каждого языка существует свой набор языковых файлов, хранящихся в подкаталогах /lang/ структуры файлов системы или модуля.
Почему важно выносить все тексты в отдельные файлы? При переводе вашего портала на другой язык будет достаточно собрать и перевести только фразы из языковых файлов, создав при этом новые разделы для соответствующего языка. Не нужно будет искать места, где могут встречаться тексты в коде, и вносить изменения непосредственно в код портала.
Подробнее о том, как пользоваться языковыми файлами, написано в официальном документе.
2. При работе с компонентами не надо обращаться к базе напрямую. Концепция работы с продуктом предполагает работу с данными через функции API. Структура данных может меняться от версии к версии, а функции сохраняют обратную совместимость. Битрикс настоятельно не рекомендует использовать прямые запросы к БД, так как это может нарушить целостность данных и привести к неработоспособности системы.
Более того, если речь идет о системных таблицах самого Bitrix Framework, это не просто не приветствуется, а в принципе не поддерживается. Необходимо работать с ними через API системы, так как физическая структура БД может измениться, а работа даже самого древнего API гарантирована.
3. Версионировать работу над проектом с помощью системы контроля версий. При этом, в силу особенностей разработки на Битрикс, имеет смысл предусмотреть «особенность» и в настройке репозитория для проекта: разделять файлы ядра и кастомизируемые.
4. Читайте доки. По многим локальным вопросам, особенно общим с 1С-Битрикс, можно найти отдельные статьи или документацию. Для разработчиков, привыкших гуглить сразу на английском, будет сюрпризом, что большинство статей написано на русском. 
И необходимо помнить золотое правило, которого советуют придерживаться опытные разработчики: меньше кода — меньше багов.
Итого
Сегодня можно наблюдать дисбаланс между спросом и предложением на рынке разработки под Битрикс24. Потребность в разработчиках стремительно растет, а многие специалисты не хотят связываться с продуктом от Битрикс, так как знакомы с его старшим и уже практически почившим детищем — БУС.
Но не так страшен черт, и даже начинающие разработчики смогут освоиться и выпускать качественный продукт, который «не стыдно пацанам показать» © пользователь habr.
