Доопрацювання шаблону з маркетплейсу 1С-Бітрікс

Шаблон з маркетплейсу часто не витримує реального навантаження: верстка розходиться, а правки тягнуть за собою нові помилки. Ми доопрацьовуємо та перезбираємо шаблони Бітрікс під ключ — від аналізу до перевірки на всіх пристроях. У результаті ви отримуєте стабільний сайт, який не ламається при оновленнях і зростанні каталогу.

Доопрацювання шаблону з маркетплейсу 1С-Бітрікс

Верстка та шаблониПростий~2-3 дні
Часті запитання

Доробка шаблону Бітрікс: де ламається верстка

Готовий шаблон з маркетплейсу майже ніколи не стає на проєкт «як є»: він зібраний під усереднений магазин, а на реальному сайті стикається з уже встановленими модулями, своєю структурою каталогу та накопиченими правками.

Доробка шаблону Бітрікс починається не з косметики, а з діагностики — де саме розходиться очікувана поведінка компонентів і фактична верстка.

Перше джерело проблем — конфлікт компонентів. Шаблон приносить свої версії bitrix:news.list, bitrix:catalog.section і власні включені області, а на сайті вже працюють інші виклики тих самих компонентів з іншими параметрами кешування та шляхами до шаблонів.

У підсумку один і той самий блок виводиться двічі, ламається посторінкова навігація або підтягується чужий result_modifier.php. Розбиратися доводиться на рівні прив'язки компонентів до розділів, а не правкою одного файлу.

Друге — дублі шаблонів. Майстер встановлення копіює файли в /local/templates/, але частина стилів і скриптів залишається в старому шаблоні, а частина підключається через template_styles.css нового.

Правки верстки починають «не застосовуватися»: правиш один файл, а браузер віддає інший через порядок підключення. Лікується це зведенням стилів до єдиного джерела та явним порядком підключення в header.php.

Третє й найнеприємніше — втрачені стилі після оновлення ядра. Оновлення ядра або модуля перезаписує файли, що лежать поза /local/, і кастомні правки верстки зникають разом з ними.

Тому всі зміни шаблону ми тримаємо в /local/ і фіксуємо в системі контролю версій: тоді оновлення ядра проходить без сюрпризів, а відкат до робочого стану займає хвилини, а не години пошуку по логах.

Що дає переробка шаблону замість правок

Правки поверх готового шаблону з маркетплейсу накопичуються: кожен новий блок додає в розмітку зайві обгортки, дубльовані підключення та перевизначення стилів, які вже ніхто не відстежує.

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

Переробка шаблону замість точкових правок прибирає цей шар повністю — ми збираємо структуру заново під фактичний вміст сайту, а не під демо-контент постачальника.

Швидкість завантаження сторінок тут — не абстрактний показник, а наслідок архітектури.

Коли розмітка будується з компонентів, що перевикористовуються, а ресурси підключаються за фактом їх появи на сторінці, браузер отримує готову структуру раніше і не чекає завантаження невикористовуваних файлів.

На практиці це дає помітний приріст за часом до першого відображення і за стабільністю показників при зростанні контенту — нові розділи не тягнуть за собою вагу всього шаблону.

Стійкість до оновлень — друга причина переробляти, а не латати. Правки, розкидані по файлах постачальника, при кожному оновленні маркетплейс-рішення доводиться переносити заново, і частина з них губиться.

Переробка шаблону виносить кастомізацію в окремий шар поверх базової теми: оновлення ядра і модулів проходить без конфліктів, а наша логіка залишається недоторканою.

Зниження звернень до підтримки — прямий ефект від перших двох пунктів. Коли верстка передбачувана, а оновлення не ламають блоки, зникає потік задач виду «з'їхала форма» або «перестав працювати фільтр».

Ми фіксуємо це в замірах до і після: кількість інцидентів по фронтенду падає, а вивільнений час іде на розвиток, а не на гасіння регресій.

Способи доопрацювання: правка на місці або перезбирання

Вибір між правкою на місці та перезбиранням визначається одним питанням: чи переживе доопрацювання наступне оновлення шаблону. Якщо файли маркетплейс-рішення змінюються напряму, під час апдейту правки затираються — і все повертається до початкового стану.

Дочірній шаблон вирішує це інакше: успадковує батьківський, перевизначає лише потрібні файли та компоненти, а оновлення батька підтягуються без конфліктів.

Варіант Коли підходить Обмеження
Правка на місці Разовий фікс, шаблон більше не оновлюється Оновлення затирає зміни; відкат — лише з бекапу
Дочірній шаблон Шаблон оновлюється, правок багато Потрібно переносити перевизначувані файли; частина налаштувань дублюється
Кастомізація компонентів Змінюється логіка виводу, а не верстка Потребує розуміння структури; за мажорного апдейту — ревізія
Перезбирання шаблону Накопичилися десятки правок, успадкування не рятує Довше за термінами; потрібна приймання за всіма сторінками

На практиці найчастіше комбінують: дочірній шаблон для верстки та стилів, кастомізація компонентів — для логіки вибірки та виводу. Так оновлення батька не ламає доопрацювання, а зміни залишаються точковими та осяжними.

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

Перед початком фіксуємо, які файли перевизначаємо, — це і є межа між безпечним доопрацюванням і перезбиранням.

Як ми ведемо доопрацювання шаблону Бітрікс по кроках

Доопрацювання шаблону з маркетплейсу майже ніколи не зводиться до правки одного файлу: шаблон успадковує компоненти, свої налаштування та перевизначення, тому спочатку потрібно зрозуміти, де саме живе потрібний блок і що зламається при втручанні.

Ми ведемо роботу етапами — так правки залишаються передбачуваними, а оновлення шаблону не перетворюється на перезбирання сайту.

Етапи роботи

  1. Аудит шаблону. Розбираємо структуру: які компоненти перевизначені, де лежать користувацькі стилі та скрипти, які налаштування винесені в параметри шаблону. Фіксуємо точки втручання та місця, які чіпати не можна, щоб не втратити сумісність з оновленнями.
  2. Схема правок. Узгоджуємо перелік змін з прив'язкою до конкретних файлів і компонентів. Окремо позначаємо правки в ядрі та в шаблоні — перші переживуть оновлення, другі доведеться переносити вручну.
  3. Правки верстки та логіки. Працюємо в дочірньому шаблоні або через перевизначення компонентів, а не правкою вихідників з маркетплейсу. Так оновлення шаблону не затирає наші зміни.
  4. Тестування верстки. Перевіряємо адаптив на реальних роздільних здатностях, поведінку форм, випадаючих меню та динамічних блоків. Окремо дивимося сторінки, яких не було в демо-контенті: порожні розділи, довгі заголовки, товари без зображень.
  5. Перевірка на копії сайту. Проганяємо зміни на тестовому контурі з реальною базою, щоб зловити конфлікти з встановленими модулями та кешуванням до викладки на прод.
  6. Передача змін. Переносимо правки на робочий сайт, скидаємо кеш, фіксуємо список змінених файлів та інструкцію з оновлення шаблону.
  7. Супровід після викладки. Відслідковуємо поведінку ключових сторінок і залишаємося на зв'язку, якщо після оновлення контенту щось поїде.

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

Що замовник отримує після доопрацювання шаблону

Після доопрацювання ви отримуєте не набір розрізнених файлів, а комплект, за яким шаблон можна супроводжувати без нас: оновлений шаблон, схему компонентів та інструкцію з правок. Нижче — що саме входить до передачі та навіщо потрібен кожен артефакт.

  • Оновлений шаблон — робоча копія з внесеними правками, розгорнута на вашому стенді. Відмінності від вихідної версії з маркетплейсу зафіксовані окремим переліком, щоб під час наступного оновлення постачальника було видно, що переносити.
  • Схема компонентів — карта сторінок і включень: який компонент за що відповідає, де успадковуються параметри, які місця шаблону перевизначені. За нею новий розробник входить у проєкт за години, а не за дні розбору чужого коду.
  • Інструкція з правок — де змінювати тексти, банери, контакти та меню через адмінку, а де потрібне втручання в код. З екранами та точними шляхами до розділів, щоб контент-менеджер не чіпав зайвого.
  • Резервна копія — повний зліпок сайту та бази до початку робіт. Це точка повернення: якщо правка дасть несподіваний ефект на бойовому сайті, відкат займає хвилини, а не години відновлення.
  • Перелік змінених файлів — список заторкнутих шаблонів і стилів із поясненням, навіщо змінювався кожен. Дозволяє точково переносити правки на інші сайти вашої мережі.
  • Зафіксовані налаштування середовища — які модулі та версії ядра використані, які права у груп користувачів. Без цього шаблон поводиться по-різному на стенді та в проді.
  • Регламент оновлень — порядок дій під час виходу нової версії шаблону від постачальника: що порівнювати, що переносити вручну, як перевіряти результат до публікації.

Комплект закриває головний ризик доопрацювання готового шаблону — залежність від одного виконавця. Схема та інструкція описують систему так, що її можна розвивати силами своєї команди або іншого підрядника. Опишіть задачу — повернемося з оцінкою та планом передачі.

Кейс: переробка шаблону інтернет-магазину

Клієнт прийшов із магазином на готовому шаблоні з маркетплейсу 1С-Бітрікс: каталог на кілька тисяч позицій, десятки властивостей у товару, важкі банери на головній.

Шаблон працював, але кожна правка тягнула за собою каскад: змінювали блок — розсипалася сітка на сусідніх сторінках, а на картці товару спливали помилки верстки, яких роками ніхто не помічав.

Що було до

Заміри на реальному трафіку показали: сторінка каталогу відмальовувалася за 4,5 секунди, картка товару — за 6. У консолі — 40+ помилок верстки: дубльовані ідентифікатори, вкладені блоки з фіксованою шириною, зображення без розмірів.

Шаблон тягнув усі стилі та скрипти на кожній сторінці, включно з тими, що потрібні лише на головній.

Що змінили

Розібрали шаблон на шари: базовий каркас, компоненти каталогу, картка товару.

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

Що стало

Відмальовування каталогу — 1,8 секунди замість 4,5, картка товару — 2,4 замість 6. Кількість помилок верстки скоротилася з 40+ до нуля за валідатором. Правки перестали ламати сусідні сторінки: новий блок додається у свій шар і не зачіпає решту. Подальші доопрацювання шаблону йдуть передбачувано — без регресу за вже перевіреними сторінками.

Кейс показовий тим, що шаблон з маркетплейсу не потрібно викидати: за акуратної переробки він дає ту саму швидкість, що й кастомна верстка, але без витрат на розробку з нуля.

Чим дочірній шаблон відрізняється від копії основного?

Дочірній шаблон — це окрема папка, яка підключає батьківський шаблон і перевизначає лише ті файли, які потрібно змінити: шапку, підвал, окремі компоненти, стилі. Усе інше успадковується з батьківського за ланцюжком.

Копія основного шаблону — це повний зліпок усіх файлів у нову папку, після якого зв'язок з оригіналом втрачається: правки в батьківському більше не надходять, а оновлення доводиться переносити вручну.

Різниця проявляється під час оновлення шаблону з маркетплейсу. Якщо встановлено дочірній шаблон, оновлення батьківського підтягує виправлення, нові компоненти та правки безпеки — ваші перевизначені файли залишаються недоторканими, конфліктів немає.

Якщо встановлено копію, оновлення або перезаписує вашу кастомізацію, або не встановлюється взагалі: система бачить змінені файли й вимагає розв'язати конфлікт вручну. Чим більше правок накопичилося, тим дорожче кожне оновлення.

Успадкування стилів працює за тим самим принципом. Дочірній шаблон підключає стилі батьківського й додає свої поверх — каскад збирається передбачувано, а оновлення батьківських стилів не ламає ваші доопрацювання.

У копії стилі продубльовані повністю, і будь-яке оновлення перетворюється на порівняння двох наборів файлів.

Практичний висновок: копію роблять лише тоді, коли шаблон закинутий і оновлень не буде. У всіх інших випадках — дочірній шаблон. Він зберігає можливість оновлення шаблону, ізолює ваші правки від батьківських і скорочує обсяг коду, який потрібно супроводжувати.

Часті технічні сумніви щодо доопрацювання шаблону

Шаблон з маркетплейсу — це не моноліт, а набір компонентів, шаблонів компонентів і файлів у local/templates.

Правки, внесені до нього напряму, під час наступного оновлення маркетплейс-рішення затираються: оновлення перезаписує файли шаблону повністю, і доопрацювання зникають разом із ними.

Саме тому перше технічне питання — не «чи можна доопрацювати», а «як доопрацювати так, щоб оновлення не ламали результат».

Ми розносимо доопрацювання і шаблон: зміни переходять у дочірній шаблон, кастомні компоненти — у простір імен проєкту, а логіка, яку не можна винести файлом, закривається обробниками подій.

Тоді оновлення маркетплейс-рішення оновлює лише його власну частину, а наші правки залишаються недоторканими й продовжують працювати поверх нової версії.

Оновлення шаблону затере всі наші правки?

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

Перед кожним оновленням ми проганяємо перевірку на конфлікти: якщо нова версія змінює структуру, яку ми перевизначали, це видно до викочування, а не після.

Як відкотити доопрацювання, якщо щось пішло не так?

Кожен блок правок іде окремим комітом з описом, що і навіщо змінювалося. Відкат — це повернення конкретного коміту, а не відновлення сайту з резервної копії повністю. Якщо правка зачіпає лише один компонент, відкочується лише він — решта доопрацювань продовжують працювати.

Чи сумісні правки з майбутніми оновленнями ядра?

Ми не чіпаємо ядро і не правимо файли, які оновлюються штатно. Усе, що можна зробити через події та власні компоненти, робиться саме так — це і є запорука сумісності.

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

Що буде, якщо оновлення все ж зламає доопрацювання?

Таке можливо, якщо маркетплейс-рішення змінює структуру шаблону, на яку ми спиралися. Ми тримаємо доопрацювання ізольованими, тому поломка локалізується в одному місці й лагодиться точково. Порядок дій і точки відкату описані в документації, яку ви отримуєте разом із проєктом.

Обговоримо ваше завдання щодо доопрацювання шаблону

Щоб оцінка була предметною, а не «на око», нам потрібен доступ до трьох речей: репозиторію шаблону з історією правок, дампу структури інфоблоків і опису того, що саме не влаштовує в поточній поведінці.

З цим набором ми відтворюємо проблему на тестовому стенді, фіксуємо точки втручання і лише потім рахуємо трудовитрати — інакше будь-яка цифра щодо доопрацювання шаблону Битрикс виявиться здогадкою.

Далі розмова йде по суті: які правки зачіпають лише шаблон компонента, а які тягнуть за собою налаштування інфоблоків, правил кошика або логіки обміну з 1С. Від цього напряму залежать терміни та обсяг робіт.

  • Опишіть завдання: що має змінитися на сторінці, в кошику, в особистому кабінеті — з прикладами «як зараз» і «як треба».
  • Додайте посилання на стенд або скриншоти проблемних місць — так ми швидше локалізуємо причину.
  • Вкажіть, чи доопрацьовувався шаблон раніше і чи є оновлення ядра, які не можна втратити.
  • Скажіть, чи потрібне перенесення правок у дочірній шаблон, щоб оновлення маркетплейсу не затирали доопрацювання.
  • Позначте бажані терміни та дату, до якої результат має бути на бойовому сайті.

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

Якщо по ходу з'ясуються приховані залежності від 1С або сторонніх модулів, скажемо про це відразу, до старту, а не в середині робіт.

Опишіть завдання у зручній формі — повернемося з оцінкою та планом.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060
  • Розробка віджета онлайн-запису для медичного центру
    Розробка віджета онлайн-запису для медичного центру
    837
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    928
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    865
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1223