Доработка Битрикса: правим в вашем коде, а не рядом
Разговор о чужом сайте почти всегда начинают с фразы «тут всё плохо, давайте соберём заново». Иногда это правда, но гораздо реже, чем звучит: собрать рядом новое проще подрядчику, а платит за это заказчик. Мы начинаем с ревизии — что читается, что чинится настройкой, что нужно вынести из ядра и что действительно честнее переписать. Ревизия делается до договора и имеет право закончиться выводом, что переписывать ничего не надо.
- Ревизия до договора, с картой «оставить, починить, переписать»
- Работаем в вашем репозитории, с историей изменений, а не в копии
- Оценка задачами и часами, а не общей суммой «за проект»
- Когда подходит: код читается, ядро не тронуто, а проблема в настройке или в одном месте
- Что делаем: чиним точечно в вашем репозитории, каждая правка отдельной записью в истории
- Чем платите: часами по факту, и объём известен до начала
- Когда подходит: правки внесены прямо в файлы платформы, и обновить её нельзя
- Что делаем: переносим чужие правки в свой слой, возвращаем файлы платформы к эталону
- Что получаете: сайт, который снова обновляется штатно, — это проверяется, а не обещается
- Когда подходит: код не читается, истории изменений нет, а нужного поведения без правок ядра не добиться
- Что делаем: пересобираем конкретный узел, а не сайт целиком — данные и адреса остаются
- Чем платите: это уже проект и сметы направления, и мы говорим об этом до договора
Почему «надо всё переписать» слышат почти все
Пять причин, и только одна из них про качество вашего кода. Остальные четыре — про удобство подрядчика, и знать о них полезно: они одинаково работают и против нас, если мы вдруг предложим вам то же самое без доказательств.
-
Разбираться в чужом коде дольше, чем писать свой
И это правда — для подрядчика. Прочитать, понять замысел и не сломать соседнее стоит времени, которое никто не любит тратить. Написать с нуля приятнее и предсказуемее. Но платит за эту разницу заказчик, причём дважды: за новую разработку и за потерю всего, что в старом сайте уже работало. Поэтому ревизию мы делаем до договора: она показывает, читается код или нет, а не оставляет это на усмотрение того, кому выгоднее переписать.
-
За чужие ошибки не хочется отвечать
Понятное опасение: тронул одно — отвалилось другое, а виноват тот, кто трогал последним. Решается это не переписыванием, а историей изменений. Когда каждая правка — отдельная запись в репозитории, видно, что именно менялось, и любое изменение откатывается по одному. Если репозитория у сайта нет, первым делом мы заводим его, и только потом что-то трогаем.
-
Новый проект продать проще, чем часы
Сумма за проект — одна строка и одна подпись. Часы надо оценивать, объяснять и потом отчитываться по каждому. Это неудобно продавцу и удобно заказчику: в часах видно, за что заплачено, а в общей сумме — нет. Мы считаем доработку задачами и часами именно поэтому, а не из скромности.
-
Не отличают правки ядра от нормального кастома
Вот это уже про технику, и здесь вывод «переписать» иногда верен. Но проверяется он за час: файлы платформы в репозитории должны совпадать с тем, что отдаёт вендор. Если совпадают — сайт обновляемый, и переписывать его нет причин, какими бы странными ни казались отдельные решения. Если нет — есть третий путь между «терпеть» и «переписать»: вынести чужие правки в свой слой.
-
Иногда переписать действительно честнее
Бывает и так, и мы это говорим. Код без истории изменений, в котором логика размазана по шаблонам и правкам ядра, а нужного поведения без новых правок ядра не добиться, — случай, когда починка обойдётся дороже пересборки. Разница в том, что мы пересобираем конкретный узел, а не сайт целиком: данные, адреса и всё работающее остаются на месте.
Карта кода: оставить, починить, переписать
Главный документ ревизии и единственная причина заказывать её отдельно от работ. Каждый узел сайта попадает в одну из трёх колонок, и у каждой строки написано, почему он там оказался. Карта остаётся у вас: с ней можно пойти к любому подрядчику, включая того, кто писал этот код.
Колонку с этим названием показывают редко, а она и есть причина читать эту страницу. Чужая работа почти никогда не плоха целиком: в ней обычно есть вещи, которые заново собирать незачем, а иногда и нельзя.
- Содержимое сайта и структура разделов — тексты, карточки, характеристики и адреса, за которыми стоит накопленный поиском вес
- Настроенный обмен, если он работает и сделан штатным протоколом — самая трудоёмкая часть любого магазина
- Права и группы пользователей, если они разведены по ролям и люди ими пользуются
- Шаблоны, которые верстались под вас — даже неидеальная вёрстка дешевле новой, если она не мешает задаче
- Интеграции, которые доставляют заявки — проверяем доставкой и не трогаем, пока работает
Самая населённая колонка почти на любом сайте. Сюда попадает то, что выглядит как «нужен новый сайт», а на деле решается часами.
- Выключенное или настроенное наполовину кеширование — самая частая причина жалобы «сайт тормозит»
- Картинки, отдаваемые в исходном размере — чинится один раз и на всём сайте сразу
- Модули из маркетплейса, которые не используются — ревизия часто освобождает больше денег, чем стоит сама
- Формы, которые пишут не туда или не пишут вовсе — проверяется пробной отправкой за пять минут
- Отсутствие репозитория — заводится первым делом, до любых правок: без истории изменений работать в чужом коде нельзя
Колонка всегда самая короткая, и каждая строка в ней обязана объясняться. «Мне не нравится, как это написано» объяснением не считается.
- Правки, внесённые прямо в файлы платформы — выносятся в свой слой, иначе обновления не накатятся никогда
- Самописный обмен вместо штатного — он будет ломаться после каждого обновления с любой из двух сторон
- Узлы, где логика размазана по шаблонам и одно и то же правило записано в трёх местах по-разному
- Код, который перестал читаться — если разобраться в узле дольше, чем написать его заново, переписать честнее
Долю сохранённого кода мы заранее не называем: у студии нет раскрытых работ по этой услуге, а чужие проценты в вопросе, где всё зависит от конкретного сайта, не значат ничего. Что мы обещаем — это что каждая строка в третьей колонке будет объяснена, и объяснение можно будет проверить своим разработчиком.
Спросить про свой сайт
Вам уже сказали, что надо всё переписать?Пришлите адрес сайта и то, что вам предложили. Посмотрим и скажем, обоснованно это или удобно подрядчику. Если обоснованно — подтвердим прямо, даже если работа достанется не нам. Без счёта и без созвона.
Спросить в Telegram А если правок потокСначала разбираемся, за тем ли вы пришли
Ревизия отвечает не только на вопрос «что чинить», но и на более важный — «ту ли работу вы заказываете». Три развилки ниже встречаются чаще всего, и в каждой правильный ответ лежит не там, где его искали.
-
Развилка 1
Пришли за доработкой — оказалось, нужен абонемент
Признак простой: задач не одна, а поток, и они приходят каждую неделю. Считать каждую отдельно неудобно обеим сторонам, а час вне договора дороже часа в абонементе. Тогда правильный ответ — поддержка сайтов: там другая единица работы и другие деньги, и эта тема принадлежит ей, а не нам.
-
Развилка 2
Пришли за скоростью — оказалось, дело не в коде
Жалоба «сайт медленный» примерно в половине случаев упирается не в код, а в выключенный кеш, картинки исходного размера и лишние модули. Это чинится за часы, и после этого разговор о переписывании закрывается сам. Проверить, что именно тормозит, можно до договора — это часть ревизии.
-
Развилка 3
Пришли за правками — оказалось, нужен другой сайт
Бывает и обратное: список правок на три страницы, и каждая следующая упирается в то, что сайт устроен не под эту задачу. Тогда чинить по одной — это платить частями за то, что всё равно придётся переделать. Мы говорим об этом прямо и отправляем к замеру или к разбору платформы, а не набираем часы.
Если задача вообще не решается нашими руками — скажем и назовём, к кому идти. Это невыгодно и делается сознательно: разбор, закончившийся честным «не к нам», стоит дешевле, чем проект, закончившийся тем же самым на приёмке.
Семь признаков, что в ваш код уже лазили напильником
Эти проверки делает ваш разработчик или нынешний подрядчик — за полчаса и не спрашивая нас. Они не про качество вёрстки и не про поиск, а про одно: обновляется ваш сайт или уже нет. Вердикт считается от числа непройденных пунктов, отметки остаются в этом браузере.
Вердикт появится, как только отметите первый пункт. Ничего никуда не уходит: это проверка для вас, а не заявка.
Сходится 0 из 7
Первая проверка весит больше остальных шести вместе. Если файлы платформы правили, всё прочее вторично: сайт постепенно теряет совместимость с окружением, и любая доработка на нём — работа в доме, который нельзя ремонтировать. Именно с выноса этих правок мы и предлагаем начинать.
Сколько стоит и как считается
Единица работы здесь — час, а не проект, и это единственный формат направления, где так. Час вне договора стоит 3 000 ₽, в абонементе — 2 000 ₽. Объём называется задачами: у каждой своя оценка, и она известна до начала. Ревизия, из которой эти оценки берутся, делается до договора и не стоит ничего.
| Что смотрим на ревизии | Как двигает объём | Как двигает календарь |
|---|---|---|
| Правили ли файлы платформы | Сильнее всего: вынос чужих правок в свой слой — отдельная работа, и делать её приходится до всего остального | Сильно: каждую вынесенную правку надо проверить на копии, а копию сначала собрать |
| Есть ли репозиторий и тестовый контур | Умеренно: если их нет, первые часы уходят на то, чтобы завести оба, — и это не доработка, а условие работы | Слабо: разово и в начале |
| Читается ли код и есть ли хоть какое-то описание | Сильно: разобраться в чужом узле бывает дольше, чем его изменить, и это те же часы | Умеренно: разбор идёт параллельно с первыми правками |
| Сколько платных модулей и насколько они переплетены | Умеренно: каждый модуль — чужой код, который нельзя править, и обходить его иногда дороже, чем заменить | Слабо: выясняется на ревизии и дальше не растёт |
| Поток задач или разовая правка | Прямо: одна задача считается часами по факту, поток — это уже абонемент и другая цена часа | Сильно: разовую правку берём в ближайшее окно, поток идёт по регламенту |
Часы здесь — единица объёма, а не способ растянуть счёт. Оценка задачи даётся до начала, и если мы ошиблись в свою сторону, это наша ошибка, а не ваша доплата. Обратное тоже верно: задача, оказавшаяся вдвое проще, считается по факту. Неизрасходованного остатка в этой работе не бывает — здесь нет ни пакета, ни предоплаченного объёма, есть сделанные задачи.
Ревизия до договора
Не готовы обсуждать работы — начните с ревизииСмотрим ваш сайт и отдаём карту из трёх колонок: что оставить, что починить и что честнее переписать, с объяснением по каждой строке. Бесплатно и до договора. Карта остаётся у вас — с ней можно пойти к любому подрядчику, включая того, кто этот код писал.
Кому подходит и кому — нет
Работа на живом чужом коде — единственная в направлении, где многое зависит не от нас, а от условий вокруг сайта. Правую колонку стоит прочитать раньше левой: если узнали себя там, ревизия сэкономит вам и нам по часу.
- Сайт работает и приносит заявки, а переделывать всё целиком не хочется
- Прежний разработчик недоступен, а сайту нужны правки прямо сейчас
- Вам сказали «надо всё переписать», и хочется второе мнение с доказательствами
- Доступ к коду, хостингу и лицензии у вас, и вы готовы его дать
- Сайт правит подрядчик, который не пускает в код. Работать вслепую нельзя, а через него — значит удваивать цену любой правки. Это решается до нас и не нами
- Нужны правки «на вчера» и без копии сайта. Мы не правим живой сайт вслепую: сначала тестовый контур, потом прод. Это медленнее ровно один раз
- Задача — «просто сделайте красиво», без списка. Часы считаются по задачам; там, где списка нет, нужен не разработчик, а замер
Эта страница — часть направления «Разработка сайтов»
Доработка — единственный формат направления, который считается часами, а не сметой: здесь нет проекта, есть задачи на существующем сайте. Всё, что касается разработки с нуля — состав работ, процесс, три сметы и калькулятор объёма, — живёт на странице направления.
Что стоит посмотреть рядом
Четыре соседние страницы. Разница между ними — в единице работы: у нас это задача, у поддержки месяц, у редизайна замер, у переезда число адресов. Выбирать надо по тому, что у вас на самом деле происходит, а не по названию.
Когда доработка вам не нужна
Четыре случая, в которых мы отправим вас в другое место. Три из них — про то, что задача решается дешевле, четвёртый — про то, что она вообще не решается правками кода. Все четыре выясняются на ревизии, то есть до денег.
-
Если задач не одна, а поток
Считать каждую правку отдельно неудобно обеим сторонам, и час вне договора дороже часа в абонементе. Когда задачи приходят каждую неделю, правильный ответ — не доработка, а поддержка: там другая единица работы, свой регламент реакции и час дешевле. Мы говорим это сразу, а не после третьего счёта.
-
Если речь про корпоративный портал, а не про сайт
Похожие названия продуктов путают постоянно. Если правки нужны внутри портала — воронка, поля сделки, права сотрудников, роботы, — это другой продукт и другая работа. Разбирается она на поддержке Битрикс24 и на настройке портала, и мы эту тему сюда не перетягиваем.
-
Если список правок упирается в устройство сайта
Когда каждая следующая правка требует обойти то, как сайт сделан, чинить по одной — значит платить частями за то, что всё равно придётся переделать. Тогда честнее посчитать переделку целиком: начать стоит с замера, а не с часов. Мы скажем это на ревизии, хотя часы нам выгоднее.
-
Если в код не пускают
Бывает, что сайт ведёт подрядчик, который отдаёт только админку, а правки принимает письмами. Работать так нельзя: мы не видим, что меняем, и не отвечаем за результат. Это решается не нами, а вашим разговором с ним — и, как правило, начинается с простого вопроса, где лежит репозиторий и на кого оформлена лицензия.
Доработка сайта на Битрикс: что стоит знать до заказа
Как понять, обоснованно ли предложение всё переписать
Проверяется это за час и без нас. Файлы платформы в репозитории сравниваются с эталонной поставкой той же версии: если они совпадают, ядро не правили, сайт обновляемый, и переписывать его нет технических причин — какими бы странными ни казались отдельные решения внутри. Если отличия есть, вывод «так дальше нельзя» обоснован, но из него не следует «соберём новый сайт»: между «терпеть» и «переписать» есть третий путь.
Этот третий путь — вынести чужие правки из файлов платформы в свой слой и вернуть ядро к эталону. Работа не маленькая, но она заметно дешевле новой разработки и, главное, сохраняет всё, что уже работает: содержимое, адреса, настроенный обмен, права. После неё обновления снова накатываются штатно, и это проверяется тем же сравнением с эталоном, а не обещанием.
Остальные четыре причины, по которым предлагают переписать, к качеству вашего кода отношения не имеют. Разбираться в чужом коде дольше, чем писать свой. За чужие ошибки не хочется отвечать. Проект продать проще, чем часы. И нежелание разбираться в том, где кончается нормальный кастом и начинается правка ядра. Все четыре — про удобство подрядчика, и оплачивает их заказчик.
Почему мы работаем в вашем репозитории, а не в копии рядом
Потому что копия рядом — это второй сайт, который через месяц расходится с первым. Пока идёт работа, на живом сайте кто-то правит тексты, добавляет товары, меняет цены; когда приходит время переключаться, выясняется, что копия отстала, и половину изменений надо переносить руками. Работа внутри существующего репозитория снимает этот вопрос: каждая правка — отдельная запись в истории, её видно, её можно проверить на тестовом контуре и откатить по одной.
Если репозитория у сайта нет, мы заводим его первым делом и до любых правок. Это не формальность и не наша прихоть: без истории изменений работать в чужом коде безответственно — нельзя ни доказать, что сломалось не от нашей правки, ни вернуть предыдущее состояние. То же касается тестового контура: заметные изменения сначала накатываются на копию с теми же данными, и только потом на живой сайт.
Изменения структуры базы записываются отдельно, а не делаются кнопками в админке. Разница становится очевидной при первом же переносе сайта на копию: описанное изменение применяется одной командой, а сделанное руками приходится повторять вручную и по памяти. Это же условие делает возможным откат — и именно его чаще всего не хватает на чужих сайтах.
Чем доработка отличается от поддержки и от редизайна
Единицей работы. Доработка — это задача: у неё есть описание, оценка в часах до начала и приёмка. Поддержка — это месяц: обновления, бэкапы, мониторинг, реакция на аварию и поток мелких правок, у которого нет конца. Редизайн — это замер и переделка внешнего вида, где логику и данные не трогают. Три разные работы, и путать их дорого: за поток задач по разовой ставке вы переплатите, а за разовую правку по абонементу заплатите за месяц, которым не воспользуетесь.
Практическое правило простое. Одна-две задачи в квартал — это доработка, час по факту. Задачи каждую неделю — это абонемент, час дешевле и есть регламент реакции. Список правок, каждая из которых упирается в устройство сайта, — это уже не доработка, а повод посчитать переделку целиком, и мы говорим об этом на ревизии, хотя часы нам выгоднее.
Сколько стоит доработка сайта на Битрикс
Час вне договора стоит 3 000 ₽, в абонементе — 2 000 ₽. Объём называется задачами: у каждой своя оценка, и она известна до начала работы. Если мы ошиблись в оценке в свою сторону, это наша ошибка, а не ваша доплата; если задача оказалась проще, она считается по факту. Неизрасходованного остатка в такой работе не бывает — здесь нет предоплаченного пакета, есть сделанные задачи.
Сильнее всего на объём влияет состояние кода: правили ли файлы платформы, есть ли репозиторий и тестовый контур, читается ли то, что написано. Ревизия, на которой всё это выясняется, делается до договора и не стоит ничего, а её результат — карта из трёх колонок — остаётся у вас независимо от того, будем мы работать вместе или нет. С этой картой можно пойти к любому подрядчику, включая того, кто писал этот код.
Вопросы про работу в чужом коде
Шесть вопросов, которые задают именно про доработку. Про платформу — редакции, лицензию, обновления — отвечает страница про Битрикс, про эксплуатацию — поддержка сайтов
Остался вопрос?
Написать в Telegram, отвечаем за 30 минутДа, это и есть предмет этой страницы. Единственное условие — доступ: к коду, к хостингу и к админке. Без него работать вслепую мы не беремся, потому что не сможем ни проверить правку, ни отвечать за результат. Начинается всё с ревизии, и на ней же выясняется, в каком состоянии сайт: правили ли ядро, есть ли история изменений, можно ли его обновлять. Ревизия делается до договора и не стоит ничего.
Начинать с восстановления доступов, а не с выбора подрядчика. Нужны три вещи: управление доменом у регистратора, вход на хостинг и учётная запись администратора на самом сайте. Первое восстанавливается через регистратора по документам на юрлицо, второе — через хостинг, третье иногда через базу данных, если есть доступ к хостингу. Отдельно проверьте, на кого оформлена лицензия у вендора: если на подрядчика, продлить её без него будет нельзя, и решать это надо до того, как понадобится.
Нисколько, и это не приём. Смысл в том, что без ревизии нельзя честно назвать ни объём, ни цену задач: сайт может оказаться обновляемым и аккуратным, а может — с правками в ядре, и это разные работы. Карта из трёх колонок остаётся у вас в любом случае, даже если работать вместе мы не станем. Слово «аудит» мы к этому не применяем намеренно: аудитом у нас называется платная услуга с письменным документом, и смешивать их было бы нечестно по отношению к обеим.
На то, что сделали мы, — да, и бессрочно: если наша правка работает не так, как описано в задаче, мы чиним это за свой счёт. На чужой код, который мы не трогали, гарантии нет и быть не может — мы его не писали и не знаем, что в нём заложено. Именно поэтому важна история изменений: по ней видно, что менялось нами, а что было до нас, и спорить об этом не приходится. Условия целиком — на странице оплаты и гарантий
Не раньше, чем правки будут вынесены в свой слой. Обновиться поверх них можно технически, но обновление их затрёт — и сайт либо сломается сразу, либо начнёт вести себя странно в местах, о которых никто не вспомнит. Поэтому порядок такой: находим все отличия от эталонной поставки, разбираемся, что каждое делает, переносим нужное в свой слой, возвращаем файлы платформы к эталону и только потом обновляем — сначала на копии. Ненужное при этом просто исчезает, и таких правок обычно находится изрядно.
Цену за конкретную понятную задачу назвать можно и без ревизии — например, поменять поведение формы или добавить поле в карточку. Но оценка будет с запасом, потому что неизвестно, во что эта задача упрётся внутри. Ревизия нужна ровно затем, чтобы запаса не было: после неё оценки становятся точными, а часть задач нередко отпадает — выясняется, что они решаются настройкой. Поскольку ревизия бесплатна, отказываться от неё смысла нет ни у вас, ни у нас.
Пришлите сайт — отдадим карту «оставить, починить, переписать»
- Проверим, правили ли ядро и обновляется ли ваш сайт вообще
- Разложим узлы по трём колонкам и объясним каждую строку
- Если правок поток — скажем прямо: в абонементе час дешевле
Заявка принята
Посмотрим сайт и вернёмся в течение рабочего дня с картой из трёх колонок. Если срочно — напишите в Telegram.
Или напишите сразу:
Telegram · отвечаем лично за 30 минут