Почему необходимо переносить проект на bitrix. Как не надо разрабатывать проект на Битрикс25.07.2018

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Приток клиентов

1С-Битрикс большая и известная компания, десятки тысяч сайтов находятся под управлением cms Bitrix, а значит каждый день появляется множество заказов на создание сайтов, на перенос и, конечно же, на доработку функционала. Как правило, средний заказчик совсем не ориентируется в интернет сфере, и ему просто нужен сайт (ну или по крайней мере он так думает), и он не знает к кому обратиться. Довольно быстро, он выходит на сайт Битрикса (это слово, как минимум, на слуху) и пытается обратиться к ним, несмотря на то что на том же самом сайте написано, что эта компания не занимается разработкой сайтов, но эти заявки было решено собирать вместе и пересылать их своим партнёрам. А все мы знаем, что одна из самых больших проблем в бизнесе это как раз поиск клиентов, так что партнёрская программа здесь сильно помогает в поиске заказов.

Кстати, если вы живёте в Москве, вы можете, вообще, посадить своего сотрудника в офис Битрикса и он будет принимать телефонные заявки , таким образом вы будете получать ещё более подготовленных клиентов.

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

Marketplace

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

Но выкладывать платные решения могут только партнёры. Поскольку действительно много сайтов находятся под управлением этой cms, то и продажи в этом магазине идут очень активные. Так что на самом деле один только этот пункт может побудить вас оформить партнёрское соглашение, по крайней мере, так было со мной.

Скидки на лицензии

Самый большой минус cms Битрикс это цены. Она совсем не бесплатная, для примера, минимальная редакция для интернет-магазина на начало 2015 года стоит 27900р, но минимальная партнёрская скидка на неё - 11160р, что существенно. И так на каждую редакцию, мне кажется, что это ещё одна существенная причина подружиться.

Бесплатная лицензия (NFR-лицензия)

Есть ещё один способ партнёру сэкономить на лицензии. Есть пара способов получить для своих нужд абсолютно бесплатный экземпляр управления сайтом любой редакции . Данный сайт работает, например, на ней, на редакции "Эксперт". О способах получения NFR-лицензии я подробнее расскажу .

Битрикс24

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

Ускоренная техническая поддержка Битрикса

Техподдержка - одна из визитных карточек 1с-Битрикса, если проблему не получается решить своими силами или с помощью документации или форумов, то можно обратиться в тех. поддержку и её обязательно решат. Но отвечает она вечность(сутки), но с помощью партнёрства это время можно сократить до нескольких часов.

Кратко подытожим

При партнёрстве с Битриксом вы получаете следующие плюсы:

  • Авторитет в чужих глазах
  • Скидки на лицензии
  • Возможность заработка в Marketplace
  • Бесплатную nfr-лицензию
  • Свободный доступ к Битрикс24
  • Ускоренную тех. поддержку
  • Заявки на разработку
  • И приглашения на огромное количество семинаров, конференций и вебинаров

Если вы заинтересовались, или просто хотите узнать, стоит ли игра свеч, прочитайте в данной главе, в которой рассказывается как раз о пути заключения партнёрского соглашения.

24 Ноября 2017. Время чтения 5 минут. 🙈 ∞

1. Изменять все стандартное/Изменять содержимое папки Bitrix

Изменение всего, что лежит в папке /bitrix/ - табу.

Если вам нужно изменить шаблон компонента - копируйте его в шаблон сайта.

Если вам нужно изменить компонент - используйте result_modifier.php, component_epilog.php (про них я подробно писал в этой статье), напишите свой компонент, в конце концов.

Если вам нужно изменить модуль - медицина бессильна пишите свой, наследуйтесь от стандартных.

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

Для пользовательских модулей/компонентов/шаблонов/обработчиков должна использоваться папка /local/.

Добавляйте папку /bitrix/ в.gitignore. Если в вашем git репозитории есть файлы /bitrix/, значит, скорее всего, что-то вы делаете не так. Вы можете подумать, что есть исключения. Да, но прибегать к созданию чего-либо в папке Bitrix нужно только если по-другому никак.

2. Получать данные в template.php

Никогда, слышите, никогда не делайте этого! Я говорю о CIBlockElement::GetList (и подобных им функциях) в template.php.

Если вам нужно получить какие-то дополнительные данные используйте result_modifier.php или component_epilog.php. Серьезно. Все что Вам нужно - лишь создать файл в папке шаблона. Это займет не на много больше времени, чем писать код в самом шаблоне.

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

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

3. Неверное подключение скриптов и стилей сайта

Откройте свой сайт, найдите основной шаблон и откройте файл header.php.

Если вы видите что-то похожее - гоните Вашего разработчика взашей.

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

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

Соберите скрипты из шаблона сайта, поместите их в JS файл, а потом подключите его с помощью AddHeadScript() .

Тоже самое касается и стилей. Если вам необходимо подключить стили, вынесите их в отдельный файл, а потом используйте SetAdditionalCSS() .

В итоге получится нечто похожее:

Или, если вы используете D7, так:

4. Неверное подключение скриптов и стилей компонента

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

Допустим, для главной страницы сайта необходимо разработать слайдер с баннерами. Ок. Что может быть проще.

И Вы правильно подумали, что переносить стили (и скрипты) в основной шаблон сайта (/local/templates/[ваш сайт]/template_styles.css и /local/templats/[ваш сайт]/script.js) не стоит - иначе они будут подключаться на каждой странице.

Но многие разработчики просто помещают css и js в файл template.php шаблона компонента и на этом успокаиваются. Правильным же подходом будет создание файлов script.js и style.css в папке шаблона. Они подключатся автоматически и избавят от головной боли при разработке.

5. Отключение кеширования

Кеширование позволяет значительно снизить нагрузку на БД. Это более остро чувствуется при росте аудитории (и соответственно запросов к БД).

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

Мой совет: перед сдачей проекта прогнать сайт через монитор производительности. Он покажет ошибки в разработке и вам не придется искать проблемные компоненты вручную.

6. Вложенные циклы при получении элементов инфоблока

Очень часто при разработке нового компонента возникает необходимость получать данные из двух (или больше) связанных Инфоблоков.

Давайте рассмотрим пример: нужно получить список всех деталей, подходящих ко моделям автомобилей.

$dbModels = CIBlockElement::GetList(array("SORT" => "ASC", "NAME" => "ASC",), array("IBLOCK_ID" => MODELS_IBLOCK, "ACTIVE" => "Y",), false, false, array("ID", "NAME",)); while ($arModels = $dbModels->GetNext()) { $dbItem = CBIBlockElement::GetList(array("SORT" => "ASC", "NAME" => "ASC",), array("IBLOCK_ID" => ITEMS_IBLOCK, "ACTIVE" => "Y", "PROPERTY_MODELS_VALUE" => $arModels["ID"],), false, false, array("NAME", "PROPERTY_COUNT", "PROPERTY_PRICE",)); while ($arItem = $dbItem->GetNext()) { // TODO: какая-то работа } }

Код упрощен для простоты восприятия, матерые разработчики найдут в нем сразу несколько ошибок;)

Суть в чем: чем больше на сайте будет моделей, тем больше будет SQLзапросов с получением данных о запчастях. Более правильным был бы такой вариант:

$dbModels = CIBlockElement::GetList(array("SORT" => "ASC", "NAME" => "ASC",), array("IBLOCK_ID" => MODELS_IBLOCK, "ACTIVE" => "Y",), false, false, array("ID", "NAME",)); while ($arModels = $dbModels->GetNext()) { $modelIDs = $arModels["ID"]; } $dbItem = CBIBlockElement::GetList(array("SORT" => "ASC", "NAME" => "ASC",), array("IBLOCK_ID" => ITEMS_IBLOCK, "ACTIVE" => "Y", "PROPERTY_MODELS_VALUE" => $modelIDs,), false, false, array("NAME", "PROPERTY_COUNT", "PROPERTY_PRICE",)); while ($arItem = $dbItem->GetNext()) { // TODO: какая-то работа }

В этом случае, вне зависимости от количества элементов инфоблока, будет всего 2 SQL запроса: получение моделей и получение деталей. А уже дальше в цикле должна быть проведена работа по распределению деталей на соответственные модели автомобилей.

Вообще, подобных ошибок очень много:

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

Перечислять все ушло бы очень много времени.

7. Бездумная разработка компонентов Bitrix

Не самым лучшим решением будет разрабатывать весь сайт на самописных компонентах. Мотивация может быть разная: «Стандартный компонент делает слишком мало», «Стандартный компонент делает слишком много», «Шаблон слишком массивный, а в данных не разобраться», «Работает не так как я хочу», «Работает так как я хочу, но не очень».

Почему не стоит делать это? По целому ряду причин:

  • От ошибок никто не застрахован. Но в случае стандартных компонентов можно расcчитывать, что их рано или поздно исправят, а ваша (если вы разработчик) ответственность закончится после сдачи проекта.
  • Компоненты Битрикс в некоторых случаях сложны и запутаны. Сделано это ради гибкости. Уверен, если делать упор на универсальность, в конечном итоге компонент получится похожим на стандартный (а то и будет еще запутаннее:)).
  • Если в будущем изменится структура данных, логика работы, а бОльшая часть сайта была написана сторонними разработчиками, поддержка проекта превратится в настоящий ад с постоянным переписыванием десятка компонентов.

В общем, прежде чем приступить к созданию очередного компонента, задайте себе вопрос: «А не возникнет ли проблем у Заказчика через год или два?».

Вместо заключения

Конечно, это лишь малая часть тех ужасов, с которыми приходится сталкиваться, получая очередной проект на поддержку. Я постарался собрать самые часто встречаемые.

За все время своей работы с Битрикс мне довелось поработать с очень большим количеством проектов, которые кто-то разрабатывал до меня. Тут и мелкие доработки, фикс различных багов и ошибки работы логики, редизайн сайта и глобальные изменения существующего функционала. И, как и любой другой разработчик, я терпеть не могу разгребать чужой мусор, костыли и «временные» заплатки, которые на деле помнят еще 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С Битрикс стремительно набирает популярность у владельцев бизнеса – от крупных корпораций до индивидуальных предпринимателей. Сейчас на этой платформе реализовано более 100 тысяч проектов коммерческих сайтов и с каждым месяцем эта цифра растет. Одни бизнесмены делают выбор в пользу создания сайтов на Битрикс благодаря широкому функционалу этой CMS, позволяющему воплотить любые пожелания.

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

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

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

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

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

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

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

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