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

По данным специалистов, система управления контентом 1С Битрикс стремительно набирает популярность у владельцев бизнеса – от крупных корпораций до индивидуальных предпринимателей. Сейчас на этой платформе реализовано более 100 тысяч проектов коммерческих сайтов и с каждым месяцем эта цифра растет. Одни бизнесмены делают выбор в пользу создания сайтов на Битрикс благодаря широкому функционалу этой CMS, позволяющему воплотить любые пожелания.

На этой платформе можно реализовать веб-ресурсы любой сложности и назначения – от сайта-визитки в несколько страниц до высоконагруженных информационных порталов и Интернет-магазинов на десятки тысяч наименований товаров.

Владельцы розничных сетей и бизнеса, связанного с логистикой, выбирают Битрикс, поскольку платформа легко интегрируется с системой операционного учета 1С. Это многократно облегчает ведение товарооборота, снятие товарных остатков, проведение инвентаризаций и формирование заказов клиентов.

Третьим нравятся коробочные решения Битрикс, дающие возможность расширять функционал сайтов, подключая новые модули в пару кликов мышкой. В зависимости от сложности проекта, разработчики Битрикс предлагают несколько версий продукта, от стартовой до продвинутой. Стоимость различных версий программного обеспечения может колебаться от 2 до 55 тысяч рублей.

Почему стоит заказать перенос сайта с бесплатной CMS на 1С Битрикс?

Страницы корпоративного сайта на Битриксе намного быстрее загружаются в браузере. По статистике, если сайт грузится дольше 3 секунд, он теряет 25-30% аудитории. Ускорение сайта CDN не заставит пользователей ждать ни одной лишней секунды и ни один потенциальный клиент не закроет вкладку в браузере, отправляясь смотреть аналогичные товары у конкурентов.

Поддержка технологии Композитный сайт – эта опция позволяет разделять статическую и динамическую часть веб-ресурса. Такие сайты прогружаются в десятки раз быстрее медленных многостраничных сайтов, созданных на бесплатных движках. Технология Композитный сайт многократно ускоряет загрузку веб-страниц не только на стационарных устройствах но и на компактных гаджетах – планшетах и смартфонах. По оценкам специалистов, число пользователей мобильных устройств ежегодно растет на сотни тысяч, и потерять такую аудиторию из-за медленной загрузки страниц просто непростительно.
Проактивная защита – ни один владелец сайта на бесплатной CMS не может чувствовать себя защищенным от многочисленных хакерских атак. Каждый год миллионы сайтов подпадают «под прицел» хакеров-любителей или умельцев, нанятых конкурентами по бизнесу. В результате взлома хакеры могут скачать конфиденциальную информацию или «заразить» сайт вирусом. Пользователи ресурсов на Битрикс надежно защищены от взлома благодаря передовой технологии обновления программного обеспечения SiteUpdatе. Обновленные версии расширяют функциональность ресурсов и улучшают интерфейс без потери данных или ущерба размещенному в разделах сайтов контенту.

Автоматическое резервное копирование - позволяет быстро развернуть сайт на резервном сервере, в случае отказа боевого. Буквально за 10 минут, можно запустить проект в актуальном состоянии из облачного хранилища. Сайт оповестит Вас по СМС и по электронной почте о проблемах в работе.

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

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

В Битрикс24 есть группы и проекты. Основное отличие группы от проекта – в проекте можно задать сроки реализации проекта, сроки задач в проекте не могут выходить за рамки сроков проекта.

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

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

2. Кто может создавать группы и проекты?

Каждый сотрудник может создавать группу или проект и приглашать в нее участников. Количество групп и проектов в Битрикс24 неограниченно на всех тарифах.

3. Как посмотреть все группы (проекты), которые есть на портале?

Все группы на портале может посмотреть сотрудник с правами администратора. Для этого нужно .

4. Как архивировать группу (проект)?

Для этого во вкладке группы Основное выбрать меню Действия и в нем пункт Редактировать группу (проект) . В открывшемся окне отметить Тип группы (проекта): Архивный .

Архивные группы и проекты не отображаются в общем списке групп. Найти их можно по фильтру Архивные либо с помощью поискового запроса.

Вернуть архивную группу (проект) в работу можно аналогичным способом – снять галочку с типа группы Архивная .

5. Как удалить группу?

Для удаления группы выберите во вкладке группы Основное пункт меню Действия > Удалить группу :

После клика откроется форма подтверждения удаления группы.

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

6. Как удалить группу (проект), которая принадлежит уволенному сотруднику?

Удалить такую группу может администратор портала. Для этого нужно на странице Моя страница и далее в меню Действия выбрать пункт Удалить группу :

Если группа или проект еще нужны, то можно просто поменять владельца группы (руководителя проекта) через меню Действия : либо в Редактировании группы (проекта) , либо в Редактировании состава .

7. Можно ли запретить участникам группы (проекта) видеть друг друга?

Если вам необходимо разделить видимость сотрудников именно по группам, есть функция Экстранет (внешние пользователи) , которая доступна на коммерческих тарифных планах Битрикс24 . Этот инструмент позволяет работать с внешними сотрудниками, приглашать их в группы (проекты) и вести всю работу именно в рамках группы. При этом внутренние и внешние сотрудники будут видеть друг друга, только если являются участниками одной экстранет-группы (проекта).

При этом если у вас несколько экстранет-групп (проектов), то между собой участники не видят друг друга.

8. Как пригласить экстранет-пользователя в группу (проект)?

Пользователей можно пригласить как непосредственно при создании рабочей группы (проекта), так в любой момент после создания рабочей группы (проекта) на закладке Основное страницы уже существующей группы или проекта (меню Действия > Пригласить в группу ).

За все время своей работы с Битрикс мне довелось поработать с очень большим количеством проектов, которые кто-то разрабатывал до меня. Тут и мелкие доработки, фикс различных багов и ошибки работы логики, редизайн сайта и глобальные изменения существующего функционала. И, как и любой другой разработчик, я терпеть не могу разгребать чужой мусор, костыли и «временные» заплатки, которые на деле помнят еще 8 редакцию продукта.

Здесь я постараюсь не акцентировать внимание на стандартных «worst practice» при программировании на PHP, типа наплевательского отношения к выборам имен переменных и функций, излишних запросов к БД в цикле, отсутствия проверок пользовательских данных в формах, игнорирование комментариев и тому подобного. Я попытаюсь коснуться именно моментов, свойственных разработке на Битриксе, которые в последствии позволят избежать негодования и проклятий в ваш адрес от программиста, которому выпало сопровождать ваш код. И да, нередко этим программистом будете оказываться вы сами через год, или более, когда уже совершенно забудете, зачем вы вставляли сюда тот или иной костыль.

«Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте» (с) Джон Ф. Вудс

Первое, и самое, на мой взгляд, важное - ради всего святого, используйте папку local . Это просто жизненно необходимо при использовании системы контроля версий – все, что вам нужно – добавить в исключения папку /bitrix/. Всё. Далее практически вся разработка ведется только в ней. Это заметно упрощает поиск нужных файлов и компонентов в последствии, помогает не засорять репозиторий лишними файлами, да и вообще – приводит дерево проекта в более опрятный, «человеческий» вид.

Не модифицируйте ядро . Даже если вы уверены, что оно не будет обновляться. Даже если так быстрее. Даже если вам лень. Забудьте эту мысль, как страшный сон. Если необходимо изменить логику работы стандартного компонента – перенесите его в новое пространство имен /local/components/modify/ и работайте с ним. То же самое касается модулей, гаджетов и activities бизнес-процессов.

Не засоряйте файл init.php . Объединяйте функции для работы с каким-то конкретным модулем или функционалом в класс, весь этот класс записывайте в отдельный файл, а в init.php просто подключайте эти файлы и прописывайте обработчики событий. Мне встречались файлы init.php по 500Kb, где в кашу были смешаны функции, определение констант, классы и инициализация обработчиков. Разумеется, когда приходилось разбираться в этих файлах, я сыпал проклятиями на своих предшественников.

Следующий пункт не касается случая разработки готовых решений для Marketplace, когда целью ставится сделать максимально настраиваемый функционал из публичной части для конечного потребителя. Если вы работаете над конкретным проектом, по конкретному ТЗ – не стоит пытаться сделать унифицированный шаблон для компонента на все случаи жизни . Лично я придерживаюсь философии – лучше несколько простых шаблонов, использующихся для разных целей, чем один универсальный, но в котором сам черт потом ногу сломит. Разумеется, в каждом конкретном случае нужно отталкиваться от того, что есть – техзадание, варианты реализации и тому подобное, но некоторые слишком рьяно используют «Бритву Оккама». Как пример приведу один проект лизинговой компании, который мне довелось править. Сам проект, конечно, был реализован ужасно, на настоящий ужас был в страницах раздела каталога услуг. У каждого из пяти разделов была собственная верстка, на которых отличалось как положение блоков на странице, так и в принципе наличие некоторых из них. И для всех пяти страниц использовался один шаблон с кучей if-else, дублированием вызовов компонентов, подключением стилей и скриптов, которые, к тому же, периодически конфликтовали друг с другом. Как итог – огромный файл, в котором разобраться «без поллитры» было смерти подобно. Хотя, казалось бы, что мешало сделать 5 разных шаблонов и не создавать трудностей на ровном месте?

Используйте API . Не изобретайте велосипеды там, где это не нужно. Юзайте документацию – весь продукт довольно хорошо описан, а так же каждую функцию можно посмотреть детально на bxapi.ru.

Избегайте прямых запросов к базе . Это частный случай предыдущего пункта – используйте API. Необдуманные, незащищенные запросы могут привести к порче, утере или даже к компрометации данных.

Не используйте компоненты с ЧПУ из корня сайта . Последствия, как правило, довольно печальны, так как ЧПУ использует файл обработчика адресов, попытка использовать его из корня легко ломает вам адресацию других компонентов, а так же 404 страницы. Ничего страшного не будет, если статьи у вас будут адресоваться относительно папки /articles/, а товары относительно /catalog/.

Подключайте css и js с помощью API. До сих пор повсеместно встречаю подключение скриптов и стилей с помощью тегов

Для начала хорошо было бы определится, по какой причине возникла такая задача, как перенос сайта на битрикс. Причина для переноса на битрикс лежит, как правило, в одной из плоскостей:

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

Вот это все, иногда по отдельности, иногда вкупе, подталкивает бизнес к переезду. А иногда бизнес к переезду подталкивает посещение какой-нибудь конференции, и вот от такой ситуации, вас, уважаемый читатель, мы бы хотели предостеречь.

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

Получите оценку переноса на платформу
«1С-Битрикс: Управление сайтом» уже завтра

Заявка на расчет

Страх и ненависть Подводные камни 1С-Битрикс

Начнем с того, что Битрикс действительно хорош для клиентов (но об этом ниже) и довольно ужасен для программистов. Если совсем на чистоту - программисты его терпеть не могут. Не будем вдаваться в подробности. Если вам интересно, зайдите хотя бы на официальный форум партнеров Битрикса. Там будет масса мнений на тему умственных способностей разработчиков последнего, а уж архитектор данного продукта, как мне кажется, должен был давненько помереть с голоду, так как в рабочее время ему должно ну уж очень сильно икаться. Все это приводит к тому, что для того, чтобы удержать толкового и перспективного программиста в рамках стека технологий Битрикса, владельцам студий, тимлидам и менеджерам приходится прилагать просто неимоверные усилия. Что приводит к тому, что хороший разработчик на Битриксе - это очень дорого. Безусловно, вы можете найти дешевый вариант, но... не от этого ли вы пытаетесь уйти, задумываясь о переносе сайта на Битрикс? Низкое качество кода, сложности поддержки и, как следствие, высокая стоимость владения. Это все возможно и на Битриксе, особенно, если экономить на разработке.

Вывод: разработчик, который работает с Битриксом, в среднем стоит дороже, чем чувак, который собирал вам сайт на Wordpress или Joomla.

Вторая проблема сайтов на Битриксе - это низкая кастомизуемость некоторых компонентов. Например, вы хотите перенести поле ввода населенного пункта для доставки из первого шага, где он находится по умолчанию, в третий. Казалось бы, просто перенести поле (сразу всем станет гораздо удобнее, думаете вы). Знаете, во сколько вам оценят эту доработку партнеры Битрикса? У меня для вас плохие новости: ценник составит порядка 45 000 рублей. За перенос одного поля, вдумайтесь. Причем поверьте, толковые разработчики прекрасно понимают абсурдность такой оценки. Но что делать, если это правда занимает столько времени (порядка 20-30 часов).

Вывод: Битрикс - это готовый продукт, и, как следствие, он содержит в себе некоторые ограничения вашего полета фантазии. С этим придется смириться. Или же придется принять суммы счетов, которые будут выставляться за незначительные доработки.

Но, даже учитывая все вышесказанное, Битрикс это лучшее решение для сайта компании, которая живет и работает в России. Основной аргумент - количество подрядчиков, контент-менеджеров и SEO-специалистов, которые умеют работать с сайтом на Битриксе. И тот факт, что когда вам нужно что-то сделать, вы выходите, свистите в 2 пальца, и у вашего офиса выстраивается шеренга желающих - дорогого стоит и практически перекрывает все недостатки.

Если проблему можно решить за деньги, это не проблема, а расходы. А когда у вас внутренняя учетная БД на IBM DB2 - это проблема.

Собственно перенос

Но мы же с вами про перенос сайта на Битрикс. Давайте вернемся к этому. Повторюсь, в целом - это верное решение, особенно если бизнес может себе это позволить. Вы тратите деньги, но за это получаете продукт другого уровня. Не будем сейчас заострять внимание на том, почему Битрикс - это хорошо. Они сами с этим прекрасно справляются и самое главное - большая часть того, что вещает Битрикс - правда. Особенно на территории РФ.

Окей, переносим. Давайте теперь про процесс.

Процесс переноса

Как выглядит среднестатистическая логика заказчика. Мы хотим перенести сайт на Битрикс, потому что у нас... (тут следует список проблем, подтолкнувших к этому решению). А давайте (барабанная дробь), мы все эти проблемы решим в процессе переноса. И начинается:

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

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

Это очень плохая идея, и вот почему. Каждая из «хотелок» требует времени. Чем больше хотелок, тем больше времени нужно на проект. Чем длиннее (по времени) проект, тем больше вариантов, что он зафакапится. Проект, рассчитанный на 2 недели, управляется стажером и все будет хорошо. Проект на 3 месяца управляется опытным менеджером, и, скорее всего, будет успешен. Проект на пол года (да, такое может быть. 3 месяца на функционал магазина и еще 3 - на список хотелок) - неуправляем, и его завалит даже самый опытный менеджер. Вообще говоря, это уже не перенос. Это, на самом деле, просто разработка нового проекта. А переносом заказчик его называет, потому что ему кажется, что так будет дешевле. Ведь не надо ничего делать с нуля. Вот, смотрите, у нас уже все есть. Просто нужно взять и все переделать. Я думаю, вы уловили.

Так как же должен выглядеть правильный перенос на 1С-Битрикс?

Берем тот сайт, который есть сейчас, стягиваем с него верстку (подчистую, без правок) и натягиваем на Битрикс. Желательно, придерживаясь функционала стандартных компонентов, что особенно касается компонента sale.order.ajax. Если стандартный функционал Битрикса решает какие-то проблемы, которые у вас были - великолепно. Все. Вот это - перенос. Это реально сделать за пару недель и цена переноса сайта будет более чем адекватна.

  1. Пишем список необходимых доработок (хотелок, результаты аудита, и т.д.)
  2. Приоритезируем (сначала то, что окажет пользу бизнесу, улучшит конверсию, потом "хочу собачку")
  3. Оцениваем (в сроках и деньгах)
  4. Разбиваем на этапы (по две недели)
  5. Делаем
  6. Радуемся проекту, где все происходит вовремя и за понятные деньги.

Выводы

  • Если у вас Joomla или Wordpress или, не дай бог, самописная CMS, то перенос сайта на Битрикс - это отличная идея, особенно, если вы понимаете, зачем.
  • Перенос - это взяли старый дизайн и натянули на Битрикс. Редизайн в процессе переноса, это, по факту, разработка нового проекта.
  • Все хотелки - следующим этапом.

Потребность переноса сайта на Битрикс возникает тогда, когда у вас уже есть веб-ресурс, будь то корпоративный сайт или интернет-магазин, но его функциональность вас не устраивает. 1С-Bitrix - система управления сайтом (CMS), которая в последнее время становится все более популярной. Согласно данным компании, на «1С-Битрикс: Управление сайтом» работают и готовятся к выпуску 180 000 различных веб-проектов. Это объясняется широким функционалом этой системы управления, позволяющим воплотить любые идеи и пожелания.

Автоматизированная система управления контентом CMS 1C-Битрикс разработана российской компанией 1С-Битрикс в 2001 году. CMS Битрикс предназначена для создания и развития интернет-проектов компаний и организаций, интернет-магазинов и новостных порталов, а также других видов сайтов. Система 1C-Битрикс является коммерческой, однако ее функционал позволяет сделать сайт любой сложности и воплотить различные идеи, используя соответствующие шаблоны и модули.

Что входит?

Перенос сайта на Битрикс состоит из комплекса мероприятий, который включает в себя следующее:

    анализ работы текущего сайта;

    анализ структуры сайта;

    форматирование текстового контента и подготовка его к загрузке;

    подготовка графического контента к загрузке;

    адаптация дизайна к новой CMS-системе;

    перенос структуры сайта и контента.

Также процесс переноса зачастую дополняется этапами доработки и разработки нового функционала и изменением дизайна сайта. Можно сказать, что порой сайт практически создается заново. Именно поэтому стоимость услуг соответствующая и стремится к цене создания сайта.

На стоимость переноса сайта влияет еще и то, на какой CMS он был создан. У нас есть проекты, которые мы переносили на Битрикс с Wordpress, Joomla, OpenCart и пр., а также с различных самописных систем управления.

Что Вы получите при переносе сайта на Битрикс?

    Готовый к работе и функционирующий сайт.

    Покупка лицензионной системы и ежегодные обновления дают возможность пользоваться технической поддержкой (служба технической поддержки 1С-Битрикс).

    Возможность покупки модулей в маркетплейсе для расширения функционала и удобства пользования сайтом.

    Возможность использования модуля «Монитор производительности», который позволяет протестировать производительность проекта, скорость работы сайта и сравнить полученные результаты с эталонной системой.

В каких случаях нужен перенос сайта на 1С-Битрикс?

    Вы - обладатель крупного сайта с большим количеством страниц или ассортиментом, и ваш ресурс долго грузится, «тормозит» и зависает. Это может свидетельствовать о том, что движок сайта не справляется с нагрузкой. Перенос сайта на Битрикс позволит увеличить скорость загрузки сайта за счет постепенной выгрузки динамической части, в результате чего посетитель ресурса оперативно получает содержимое страницы.

    Вам необходима защита ресурса от взлома и заражения вирусами. Система 1С-Битрикс обеспечивает защиту интернет-проекта за счет более 10 обновляемых модулей, включающих в себя мониторинг уязвимостей, встроенный антивирус и защиту от хакерских атак. В стандартный пакет системы «1С-Битрикс: Управление сайтом» входит модуль «Проактивная защита» с готовым набором инструментов, который позволяет повысить уровень защищенности.

    Сайт кажется вам трудным в управлении, непонятным, неудобным. Если предыдущая CMS вам мало понятна и появляются сложности в ее использовании, возникает вопрос о переносе сайта. Система 1С-Битрикс обладает удобным интерфейсом и позволяет легко управлять сайтом, воплощая различные идеи по поводу структуры и внешнего вида ресурса.

    Существуют ограничения в функционале сайта на прежней CMS. В процессе работы сайта происходят изменения, которые могут потребовать новые функциональные возможности ресурса. На платформе Битрикс можно воплотить различные замыслы. Также, возможно, ваш сайт работает на одной из популярных систем управления контентом (WordPress, Joomla, Drupal, Netcat и др.), но вы по каким-либо причинам недовольны этими системами или хотите расширить их возможности. Система Битрикс отлично подойдет для этих целей.

    Вам нужна интеграция данных сайта с 1С. Это актуально, если ваша компания активно применяет технологии 1С для бухгалтерского, складского и других видов учета.

А в каких – не нужен?

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

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

    Вам не нужны навороты. У вас достаточно простой сайт с простым понятным функционалом и лишние сложности вам не нужны.

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

Вы не знаете, подходит ли Битрикс под ваш проект? Сколько задач он сможет закрыть? Какие риски он может снизить?

Если вы все еще не уверены и сомневаетесь, нужен ли вашему сайту перенос на Битрикс, просто позвоните нам!
Мы с удовольствием вас проконсультируем!

Если вы думаете, что ваш сайт необходимо перенести на Битрикс из-за сложности и стоимости услуг технической поддержки, то проконсультируйтесь с нами. Мы берем сайты на поддержку на любой CMS.

Что входит в услугу?

    Анализируем ваш сайт, структурируем данные и определяем стратегию переноса.

    Создаем шаблоны для новой CMS на основе имеющейся верстки и дизайна. При необходимости вносим изменения.

    Переносим на новую платформу все функциональные возможности проекта. При необходимости вносим изменения и настройки.

    Переносим структуру данных, статистические разделы, страницы, каталоги товаров и т.д.

    Устраняем недочеты и ошибки старого сайта. При необходимости вносим коррективы как в дизайне, так и во внутренней оптимизации сайта.

Преимущества работы с нами

    Мы оперативно осуществляем услуги по переносу сайта или интернет-магазина на Битрикс, так как имеем большой опыт работы. Осуществляется непосредственный перенос сайта на Битрикс с URL, т.е. таким образом, чтобы сохранить прежние адреса страниц и перекрестные ссылки. Это гарантирует, что сайт не потеряет позиции в Яндекс и Google.

    Мы следим за качеством услуг и осуществляем перенос в несколько этапов. При этом мы создаем резервную копию сайта и проводим тестирование.

За все время своей работы с Битрикс мне довелось поработать с очень большим количеством проектов, которые кто-то разрабатывал до меня. Тут и мелкие доработки, фикс различных багов и ошибки работы логики, редизайн сайта и глобальные изменения существующего функционала. И, как и любой другой разработчик, я терпеть не могу разгребать чужой мусор, костыли и «временные» заплатки, которые на деле помнят еще 8 редакцию продукта.

Здесь я постараюсь не акцентировать внимание на стандартных «worst practice» при программировании на PHP, типа наплевательского отношения к выборам имен переменных и функций, излишних запросов к БД в цикле, отсутствия проверок пользовательских данных в формах, игнорирование комментариев и тому подобного. Я попытаюсь коснуться именно моментов, свойственных разработке на Битриксе, которые в последствии позволят избежать негодования и проклятий в ваш адрес от программиста, которому выпало сопровождать ваш код. И да, нередко этим программистом будете оказываться вы сами через год, или более, когда уже совершенно забудете, зачем вы вставляли сюда тот или иной костыль.

«Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте» (с) Джон Ф. Вудс

Первое, и самое, на мой взгляд, важное - ради всего святого, используйте папку local . Это просто жизненно необходимо при использовании системы контроля версий – все, что вам нужно – добавить в исключения папку /bitrix/. Всё. Далее практически вся разработка ведется только в ней. Это заметно упрощает поиск нужных файлов и компонентов в последствии, помогает не засорять репозиторий лишними файлами, да и вообще – приводит дерево проекта в более опрятный, «человеческий» вид.

Не модифицируйте ядро . Даже если вы уверены, что оно не будет обновляться. Даже если так быстрее. Даже если вам лень. Забудьте эту мысль, как страшный сон. Если необходимо изменить логику работы стандартного компонента – перенесите его в новое пространство имен /local/components/modify/ и работайте с ним. То же самое касается модулей, гаджетов и activities бизнес-процессов.

Не засоряйте файл init.php . Объединяйте функции для работы с каким-то конкретным модулем или функционалом в класс, весь этот класс записывайте в отдельный файл, а в init.php просто подключайте эти файлы и прописывайте обработчики событий. Мне встречались файлы init.php по 500Kb, где в кашу были смешаны функции, определение констант, классы и инициализация обработчиков. Разумеется, когда приходилось разбираться в этих файлах, я сыпал проклятиями на своих предшественников.

Следующий пункт не касается случая разработки готовых решений для Marketplace, когда целью ставится сделать максимально настраиваемый функционал из публичной части для конечного потребителя. Если вы работаете над конкретным проектом, по конкретному ТЗ – не стоит пытаться сделать унифицированный шаблон для компонента на все случаи жизни . Лично я придерживаюсь философии – лучше несколько простых шаблонов, использующихся для разных целей, чем один универсальный, но в котором сам черт потом ногу сломит. Разумеется, в каждом конкретном случае нужно отталкиваться от того, что есть – техзадание, варианты реализации и тому подобное, но забывать про «Бритву Оккама» все-таки не стоит. Как пример приведу один проект лизинговой компании, который мне довелось править. Сам проект, конечно, был реализован ужасно, на настоящий ужас был в страницах раздела каталога услуг. У каждого из пяти разделов была собственная верстка, на которых отличалось как положение блоков на странице, так и в принципе наличие некоторых из них. И для всех пяти страниц использовался один шаблон с кучей if-else, дублированием вызовов компонентов, подключением стилей и скриптов, которые, к тому же, периодически конфликтовали друг с другом. Как итог – огромный файл, в котором разобраться «без поллитры» было смерти подобно. Хотя, казалось бы, что мешало сделать 5 разных шаблонов и не создавать трудностей на ровном месте?

Используйте API . Не изобретайте велосипеды там, где это не нужно. Юзайте документацию – весь продукт довольно хорошо описан, а так же каждую функцию можно посмотреть детально на bxapi.ru.

Избегайте прямых запросов к базе . Это частный случай предыдущего пункта – используйте API. Необдуманные, незащищенные запросы могут привести к порче, утере или даже к компрометации данных.

Не используйте компоненты с ЧПУ из корня сайта . Последствия, как правило, довольно печальны, так как ЧПУ использует файл обработчика адресов, попытка использовать его из корня легко ломает вам адресацию других компонентов, а так же 404 страницы. Ничего страшного не будет, если статьи у вас будут адресоваться относительно папки /articles/, а товары относительно /catalog/.

Подключайте css и js с помощью API. До сих пор повсеместно встречаю подключение скриптов и стилей с помощью html-тегов. Используйте объект класса \Bitrix\Main\Page\Asset и функции addJs() и addCss(). Это позволит объединять файлы и, в последствии, кешировать их одним нажатием чекбокса в настройках главного модуля

Ну и напоследок, ошибка касается не только Битрикса, но уж больно часто я стал встречать проблемы, связанные с ней. Проверяйте на пустоту массив с результатами выборки . Как пример, последний раз встретился с данной проблемой при работе с одним интернет-магазином. Жалоба: страницы иногда грузятся по 16 секунд. С чем связано – не ясно. Методом проб и ошибок выяснил, что страницы грузятся неприлично долго только тогда, когда корзина пустая. Казалось, с чего бы? Как выяснилось, у корзины при наведении появлялось всплывающее окно, в котором отображались изображения товара, положенного в корзину. Ну что сделал предыдущий разработчик? Взял результат работы компонента «маленькая корзина» и в файле result_modifier.php сделал вызов GetList() товаров для выборки изображений с фильтром из массива ID товаров, потом из результатов выборки в массив соответствующего товара добавлял src изображения. В итоге, когда товаров в корзине не было, фильтр уходил пустой, и в выборку попадал ВЕСЬ каталог товаров. Ну а дальше цикл по каждому и… имеем то, что имеем. Ясно, что на этапе разработки при тестовых 15 товарах это было незаметно, и проблемы возникли уже в боевых условиях. Хотя, казалось бы, чего стоило поставить проверку на empty($arResult[‘ITEMS’])…

На этом я заканчиваю свой личный топ «worst practice», касательно разработки на Битрикс. Если хоть кому-то данная информация поможет избежать ошибок в будущем и улучшить свой стиль разработки, значит это было не зря.