Розробка модуля SEO-автоматизації для 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Розробка модуля SEO-автоматизації для 1С-Бітрікс
Середній
~1-2 тижні
Часті запитання

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

Етапи розробки

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1371
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    963
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    702
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    849
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    745
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1087

Розробка модуля SEO-автоматизації для 1С-Бітрікс

Ми часто бачимо, як редактор сидить і вручну заповнює та <description> для кожної з 8 000 карток товарів. Через тиждень додають ще 300 позицій — знову вручну. Через місяць половина мета-тегів не відповідає цінам та залишкам. Типова ситуація для магазинів на 1С-Бітрікс: SEO-рутина вбиває час, а автоматизації немає.</p> <p>Штатний модуль iblock дозволяє задати шаблони мета-тегів на рівні типу інфоблоку. Але можливості обмежені. Не можна звернутися до пов'язаних елементів, застосувати умовну логіку, врахувати ціну чи наявність. Кастомний модуль SEO-автоматизації закриває цю прогалину системно. За 5 років роботи ми реалізували понад 50 проєктів автоматизації SEO на Бітрікс.</p> <h2>Чому SEO-автоматизація критична для інтернет-магазину?</h2> <p>Мета-теги безпосередньо впливають на ранжування. Якщо title та description не унікальні або не містять актуальних даних (ціна, наявність), пошукові системи знижують позиції. За даними <cite>Google Search Central</cite>, це важливий фактор. Ручне редагування при каталозі від 5 000 товарів займає 20–40 годин на тиждень. Це еквівалентно зарплаті співробітника. Автоматизація окупається за 2–3 місяці, економлячи до 600 000 ₽ на рік.</p> <h2>Що робить модуль</h2> <p>Ядро модуля — двигун шаблонів із синтаксисом виду <code>{ELEMENT_NAME} | {CATALOG_PRICE} | {SECTION_NAME}</code>. Шаблони компілюються в PHP-замикання та кешуються через <code>Bitrix\Main\Data\Cache</code>. На фронтенді немає додаткових запитів — тільки читання з кешу.</p> <p><strong>Генерація мета-тегів за шаблоном.</strong> Для кожного типу сторінок (розділ каталогу, елемент, пошук, тег) налаштовується свій шаблон. Змінні беруться з властивостей інфоблоку, полів торгового каталогу (<code>b_catalog_price</code>, <code>b_catalog_product</code>) та кастомних джерел.</p> <p>Canonical та hreflang. Модуль перехоплює подію <code>OnBeforeIBlockElementUpdate</code> та автоматично проставляє canonical URL з урахуванням активної мови. Додаткову інформацію можна знайти в статті про <a href="https://en.wikipedia.org/wiki/Canonical_link_element">Canonical link element</a>.</p> <p>Автоматичні alt для зображень. Через агент <code>\Bitrix\Main\Agent</code> запускається фонове завдання: перебирає елементи інфоблоку без заповненого <code>DETAIL_PICTURE</code>-alt та записує значення за шаблоном. Покриття alt за 2 тижні зростає з 30% до 95%.</p> <p>Генерація sitemap. Підключається до модуля <code>seo</code> (namespace <code>Bitrix\Seo\SitemapFile</code>) та розширює логіку: виключає сторінки з <code>noindex</code>, враховує пріоритет за датою зміни, розбиває на частини при перевищенні 50 000 URL.</p> <h2>Як шаблонізатор вирішує проблему продуктивності?</h2> <p>Найскладніша частина — правильно спроєктувати джерела даних, щоб шаблон працював швидко навіть при 100 000 елементах.</p> <pre><code class="language-php">// Реєстрація джерела даних \MyVendor\SeoModule\TemplateEngine::registerSource( 'CATALOG_PRICE', function(int $elementId, array $context): string { $price = \Bitrix\Catalog\PriceTable::getList([ 'filter' => ['=PRODUCT_ID' => $elementId, '=CATALOG_GROUP_ID' => 1], 'select' => ['PRICE'], 'limit' => 1, ])->fetchObject(); return $price ? number_format($price->getPrice(), 0, '.', ' ') : ''; } ); </code></pre> <p>Джерела даних реєструються через статичний реєстр. При рендерингу шаблону двигун визначає, які джерела потрібні, та робить рівно стільки запитів до БД, скільки необхідно. Для списків застосовується пакетне завантаження через <code>DataManager::getList</code> з <code>IN</code>-фільтром за масивом ID.</p> <p>Кешування. Результат рендерингу кешується з тегом <code>iblock_id_N</code>. Це дозволяє скидати кеш точково при зміні елемента через <code>\Bitrix\Main\Data\TaggedCache</code>.</p> <p>Моніторинг. Модуль веде лог заповненості мета-тегів: для кожного розділу виводиться відсоток сторінок з непустим <code><title></code>, <code><description></code> та canonical. Таблиця <code>myvendor_seo_coverage</code> оновлюється через агент раз на добу.</p> <h2>Що входить у розробку модуля?</h2> <ol> <li>Аудит поточних інфоблоків: структура властивостей, кількість мов, наявність торгового каталогу.</li> <li>Проєктування архітектури джерел даних на основі аудиту.</li> <li>Налаштування шаблонів мета-тегів для всіх типів сторінок (каталог, розділи, елементи, пошук, теги).</li> <li>Реалізація canonical та hreflang з підтримкою багатомовності.</li> <li>Інтеграція з торговим каталогом для підстановки цін та залишків.</li> <li>Агент для автоматичного заповнення alt у зображень.</li> <li>Генерація sitemap з урахуванням noindex та пріоритетів.</li> <li>Таблиця покриття мета-тегів для моніторингу.</li> <li>Документація з експлуатації та навчання адміністраторів.</li> <li>Гарантія на модуль 12 місяців, підтримка оновлень Бітрікс.</li> </ol> <h2>Порівняння ручного та автоматизованого підходу</h2> <table> <thead> <tr> <th>Параметр</th> <th>Ручне заповнення</th> <th>Автоматизація модулем</th> </tr> </thead> <tbody> <tr> <td>Час на 1 000 товарів</td> <td>10–15 годин</td> <td>0.5 секунди</td> </tr> <tr> <td>Помилки (пропуски, дублі)</td> <td>до 20%</td> <td>менше 0.1%</td> </tr> <tr> <td>Актуальність цін/наявності</td> <td>оновлюється раз на тиждень</td> <td>у реальному часі</td> </tr> <tr> <td>Витрати на рік на штат SEO-спеціаліста</td> <td>від 600 000 ₽</td> <td>0 (економія)</td> </tr> </tbody> </table> <h2>Строки розробки</h2> <table> <thead> <tr> <th>Обсяг проєкту</th> <th>Склад</th> <th>Строк</th> </tr> </thead> <tbody> <tr> <td>Базовий</td> <td>Шаблони мета-тегів + canonical</td> <td>2–3 тижні</td> </tr> <tr> <td>Середній</td> <td>+ sitemap + alt-зображення + лог покриття</td> <td>4–5 тижнів</td> </tr> <tr> <td>Розширений</td> <td>+ редиректи + інтеграція із зовнішніми SEO-API</td> <td>6–8 тижнів</td> </tr> </tbody> </table> <h2>Типові помилки при налаштуванні автоматизації</h2> <ul> <li>Ігнорування кастомних властивостей інфоблоків — неповні шаблони.</li> <li>Відсутність тегованого кешу — падіння сайту при навантаженні.</li> <li>Неправильний порядок подій: <code>OnBeforeIBlockElementUpdate</code> конфліктує зі збереженням 1С.</li> <li>Забувають про багатомовність: canonical без hreflang — штраф від Google.</li> </ul> <p>Перед стартом важливо провести аудит поточних інфоблоків. Структура властивостей, кількість мов, наявність торгового каталогу — все впливає на архітектуру джерел даних. Ми гарантуємо індивідуальний підхід та фіксовану вартість після узгодження ТЗ.</p> <p>Отримайте консультацію — оцінимо ваш проєкт і запропонуємо оптимальне рішення. Замовте розробку, ми працюємо по всій Україні та СНД.</p> </div><div class="frontend-post-text flex flex-col p-4 md:p-8 gap-4 lg:gap-8 mb-4 lg:mb-16 xl:mb-40 transition-all rounded-lg xl:shadow-light bg-white dark:bg-dark-item border-t-2 border-dark-button"><h2>Розробка та налаштування модулів 1С-Бітрікс</h2> <p>Головна пастка Бітрікса — <code>init.php</code>. Засунули туди обробник <code>OnBeforeIBlockElementUpdate</code>, потім ще один — через рік файл на 2000 рядків, і при кожному хіті вся ця купа виконується. Ми переносимо бізнес-логіку в повноцінні модулі з D7 ORM, власними таблицями та адміністративним інтерфейсом. Модуль можна вимкнути, перенести на інший проєкт, покрити тестами — з <code>init.php</code> нічого з цього не вийде. Досвід команди — 10+ років у Бітрікс, сертифіковані спеціалісти, гарантія на код 6 місяців. Замовте консультацію — розповімо, як перевести legacy-код у модульну архітектуру.</p> <h3>Як модульна архітектура підвищує продуктивність?</h3> <h3>Чому init.php — найгірше місце для бізнес-логіки?</h3> <p><code>Init.php</code> не підтримує автозавантаження класів, не має ізольованого простору імен, не піддається модульному тестуванню і не вимикається без правки самого файлу. Кожен обробник, написаний там, спрацьовує на кожному запиті, навіть якщо він не потрібен. У модулі ви реєструєте обробника через <code>EventManager</code>, і він виконується тільки при настанні події. Різниця в продуктивності — до 3 разів при 10+ обробниках.</p> <h3>Стандартні модулі: типові проблеми та рішення</h3> <p><strong>Інформаційні блоки.</strong> Архітектура ІБ — перше, що ми рев'юїмо на будь-якому проєкті. Класична помилка: один інфоблок каталогу з 80 властивостями, з яких 30 — множинні. Таблиця <code>b_iblock_element_property</code> роздувається до мільйонів рядків, <code>CIBlockElement::GetList</code> на фільтрації за трьома властивостями йде в повне сканування. Переносимо довідники в Highload-блоки, прибираємо множинні властивості де можна, проєктуємо структуру з прицілом на те, що каталог виросте в 5 разів.</p> <p><strong>Інтернет-магазин (sale).</strong> Бізнес-правила кошика — окрема історія. Налаштовуємо пріоритети знижок, щоб дві акції не дали 60% замість 30%, підключаємо платіжні обробники, прописуємо кастомну валідацію через <code>OnSaleOrderBeforeSaved</code>.</p> <p><strong>Пошук.</strong> Вбудований модуль search з морфологією працює до 10–15 тисяч елементів. Далі — Elasticsearch. Налаштовуємо через API модуля пошуку Бітрікс, індексуємо через <code>CSearchFullText</code> або кастомні індексатори.</p> <p>Highload-блоки для довідників, логів, користувацьких даних — замість роздутих ІБ. Прямі запити через <code>Bitrix\Highloadblock\HighloadBlockTable</code>, власні таблиці замість EAV-структури стандартних інфоблоків. Мільйон записів — без деградації.</p> <p>Поштові події. Налаштування — не лише шаблони в <code>b_event_message</code>. Головне — SPF, DKIM, DMARC на DNS, інакше транзакційні листи летять у спам. Перевіряємо доставність, налаштовуємо bounce-обробку.</p> <h3>Проектування інфоблоків для продуктивності</h3> <p>Використовуємо Highload-блоки для довідкових даних (кольори, розміри, виробники), які не беруть участі в складних вибірках. Для торгових пропозицій — окремий інфоблок з прив'язкою через <code>IBLOCK_ELEMENT_PROPERTY</code>. Увімкнемо <code>INDEX_PROPERTY</code> для часто фільтрованих властивостей. Кешування теговане: при зміні елемента скидається лише пов'язаний кеш. Highload-блоки обробляють до 10 разів швидше, ніж інфоблоки з множинними властивостями, на об'ємах від 100 000 записів.</p> <h3>Розробка кастомних модулів</h3> <p>Кожен модуль — за структурою <code>/local/modules/vendor.modulename/</code>:</p> <ul> <li> <code>install/index.php</code> — клас встановлення, створення таблиць через <code>$DB->RunSQLBatch()</code> </li> <li> <code>lib/</code> — класи D7 ORM, спадкоємці <code>Bitrix\Main\ORM\Data\DataManager</code> </li> <li> <code>admin/</code> — адміністративні сторінки через <code>CAdminList</code>, <code>CAdminForm</code> </li> <li> <code>include.php</code> — автозавантаження, реєстрація обробників через <code>EventManager::getInstance()->registerEventHandler()</code> </li> <li>REST API endpoints через <code>\Bitrix\Rest\RestManager</code> </li> </ul> <p>Модуль реєструється в системі, з'являється у списку «Встановлені рішення», має свої налаштування в <code>/bitrix/admin/settings.php?mid=vendor.modulename</code>. Його можна вмикати, вимикати, оновлювати через <code>UpdateSystem</code> або свій механізм міграцій.</p> <p>Приклади реалізованих завдань:</p> <ul> <li>Управління акціями — візуальний конструктор умов через <code>CAdminCalendar</code>, таймери через агенти (<code>CAgent::AddAgent</code>), аналітика ефективності у зв'язці з модулем sale</li> <li>Калькулятор вартості — React-віджет на фронті, REST API у модулі, формули зберігаються в Highload-блоці</li> <li>Система бронювання — real-time календар, блокування через <code>$DB->StartTransaction()</code> / <code>$DB->Commit()</code> при одночасних запитах, синхронізація з channel manager через webhook</li> </ul> <h3>Компоненти та композитний кеш</h3> <p>Кастомізація компонентів — через <code>result_modifier.php</code> і <code>component_epilog.php</code>, не через правку <code>template.php</code> стандартного шаблону. Так ядро оновлюється безболісно.</p> <p>Композитний кеш (технологія «Композитний сайт») — сервер віддає готовий HTML, минаючи PHP-роутинг. Динамічні зони (кошик, авторизація) підвантажуються через <code>CBitrixComponent::setFrameMode(true)</code> та AJAX. TTFB падає до 30–50 мс. Але є нюанси: не всі компоненти сумісні, <code>$APPLICATION->ShowPanel()</code> ламає композит, потрібна акуратна розмітка <code><div id="bx-composite-..."></code>.</p> <h3>Маркетплейс: аудит перед встановленням</h3> <p>Перед встановленням модуля з маркетплейсу — обов'язковий аудит. Перевіряємо: SQL-запити без підготовлених виразів (привіт, SQL-ін'єкції), пряме звернення до <code>$_REQUEST</code> без фільтрації, використання застарілого API старого ядра замість D7, конфлікти з модулем композитного кешування. Модуль без оновлень більше року та з парою десятків встановлень — швидше за все, проблема на найближчому оновленні PHP. Типовий випадок: модуль викликає <code>CIBlockElement::GetList</code> з нескинутим кешем — сайт падає при 5000 елементів.</p> <h3>Міграція на D7</h3> <p>При оновленні PHP або переході на нову редакцію — рефакторинг застарілих викликів:</p> <ul> <li> <code>CIBlockElement::GetList()</code> → <code>Bitrix\Iblock\Elements\ElementTable::getList()</code> </li> <li> <code>CSaleOrder::GetList()</code> → <code>Bitrix\Sale\Order::getList()</code> </li> <li> <code>CModule::IncludeModule()</code> → <code>Bitrix\Main\Loader::includeModule()</code> Тестування на staging, відкат через git при проблемах.</li> </ul> <p>Згідно з офіційною документацією 1С-Бітрікс, D7 ORM є рекомендованим засобом для роботи з даними, забезпечуючи безпеку типів і автогенерацію запитів.</p> <h2>Порівняння підходів: Init.php vs Модуль</h2> <table> <thead> <tr> <th>Критерій</th> <th>Init.php</th> <th>Модуль з D7 ORM</th> </tr> </thead> <tbody> <tr> <td>Продуктивність</td> <td>Виконується на кожному хіті</td> <td>Виконується тільки при події</td> </tr> <tr> <td>Тестованість</td> <td>Немає автозавантаження, тести неможливі</td> <td>Повна підтримка PHPUnit</td> </tr> <tr> <td>Підтримуваність</td> <td>Кодова база зростає безконтрольно</td> <td>Ізольована структура, версіонування</td> </tr> <tr> <td>Міграції</td> <td>Немає</td> <td>Власні таблиці, керування через install</td> </tr> <tr> <td>Кешування</td> <td>Не підтримує автоінвалідацію</td> <td>Теговане кешування, скидання за подією</td> </tr> </tbody> </table> <h2>Вартість та склад розробки модулів</h2> <h3>Що входить у розробку модуля?</h3> <ul> <li>Технічне завдання та архітектурна схема</li> <li>Код з дотриманням PSR-4 та код-стайлу Бітрікс</li> <li>Unit-тести (PHPUnit) на бізнес-логіку</li> <li>Інтеграційні тести на події та REST API</li> <li>Документація з встановлення, налаштування та API</li> <li>Передача доступів до репозиторію та документації</li> <li>Навчання адміністраторів роботі з модулем</li> <li>Гарантійна підтримка 6 місяців</li> </ul> <p>Орієнтовні терміни та складність:</p> <table> <thead> <tr> <th>Складність</th> <th>Приклади</th> <th>Терміни</th> </tr> </thead> <tbody> <tr> <td>Простий</td> <td>Віджет зворотного дзвінка, банерна система, простий калькулятор</td> <td>3–5 днів</td> </tr> <tr> <td>Середній</td> <td>Система бронювання, конфігуратор товарів, модуль відгуків з модерацією</td> <td>1–2 тижні</td> </tr> <tr> <td>Складний</td> <td>Мультирегіональність, кастомна програма лояльності, інтеграція з ERP</td> <td>2–4 тижні</td> </tr> <tr> <td>Enterprise</td> <td>Маркетплейс-платформа, складні бізнес-процеси з безліччю ролей</td> <td>1–3 місяці</td> </tr> </tbody> </table> <p>Вартість розраховується індивідуально — зв'яжіться з нами для оцінки вашого проєкту.</p> <h2>Тестування модулів</h2> <p>Unit-тести через PHPUnit покривають бізнес-логіку: розрахунок знижок, валідацію, формування документів. Моки для <code>Bitrix\Main\Application::getConnection()</code> дозволяють тестам не залежати від БД. Інтеграційні тести перевіряють обробники подій на реальній базі — <code>OnAfterIBlockElementAdd</code>, <code>OnSaleOrderSaved</code> та інші. REST API endpoints тестуємо через curl або PHPUnit HTTP-клієнт. Критично для модулів, що працюють з <code>b_sale_order</code>, <code>b_catalog_price</code> — де помилка коштує грошей.</p> <p>Сумісність перевіряється на PHP 7.4, 8.0, 8.1, 8.2 та редакціях: Стандарт, Малий бізнес, Бізнес. Перевіряємо конфлікти з популярними модулями маркетплейсу — вони люблять перехоплювати ті самі події. Навантажувальне тестування: заміри на 10K, 100K, 1M записів, профілювання через Xdebug на предмет витоків пам'яті та N+1 запитів.</p> <h2>Приклади з практики</h2> <p>Модуль акцій для мережі електроніки. Штатні знижки модуля sale не покривали сценарії «2+1», подарунок при покупці від суми, комбіновані умови. Зібрали візуальний конструктор: маркетолог створює правила через drag-and-drop, без тікетів у розробку. Календар акцій, автодеактивація через агенти, аналітика у прив'язці до <code>b_sale_order</code> — конверсія, середній чек, кількість застосувань. Час запуску нової акції впав з двох днів до півгодини.</p> <p>Калькулятор для будівельників. Параметри (площа, матеріали, поверховість) → формула → попередній кошторис → заявка в CRM через <code>CRest::call('crm.lead.add')</code>. Регіональні коефіцієнти та сезонні націнки — з Highload-блоку, ціни матеріалів — з обміну з 1С. Кількість цільових заявок зросла на третину: клієнти бачать розбивку за статтями до дзвінка менеджеру.</p> <p>Бронювання для мережі готелів. Real-time доступність через AJAX-запити до кастомної таблиці <code>vendor_booking_slots</code>, розрахунок тарифів за сезоном, синхронізація з Booking.com через channel manager API. Блокування номера при одночасному бронюванні — через <code>SELECT ... FOR UPDATE</code> у транзакції. Таймзони обробляються через <code>\DateTimeZone</code> — гість із Владивостока та менеджер із Москви бачать одну картину.</p> <p>Оцінимо проєкт за 1 день. Пишіть — розповімо, що входить у розробку під ключ. Зв'яжіться з нами для консультації за вашим проєктом. Замовте розробку модуля під ключ — отримайте готове рішення з документацією та підтримкою.</p> </div><div class="flex flex-col p-4 md:p-8 gap-4 lg:gap-8 mb-4 lg:mb-16 xl:mb-40 transition-all rounded-lg xl:shadow-light bg-white dark:bg-dark-item border-t-2 border-dark-button"><div class="grid grid-cols-1 md:grid-cols-3 gap-4"><a href="/downloads/bitrix_en.pptx" download="" class="cursor-pointer flex gap-4 dark:text-white bg-light-fill dark:bg-dark-fill rounded-lg p-4 text-center hover:opacity-75 transition-all"><span class=" flex w-6 h-6 text-[#FF8787] dark:text-[#FF8787]"><svg x="0px" y="0px" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" xml:space="preserve"><path d="M22 16H28C28.2652 16 28.5196 16.1054 28.7071 16.2929C28.8946 16.4804 29 16.7348 29 17V25C29 25.2652 28.8946 25.5196 28.7071 25.7071C28.5196 25.8946 28.2652 26 28 26H4C3.73478 26 3.48043 25.8946 3.29289 25.7071C3.10536 25.5196 3 25.2652 3 25V17C3 16.7348 3.10536 16.4804 3.29289 16.2929C3.48043 16.1054 3.73478 16 4 16H10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M16 3V16" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M10 10L16 16L22 10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M23.5 22.25C24.1904 22.25 24.75 21.6904 24.75 21C24.75 20.3096 24.1904 19.75 23.5 19.75C22.8096 19.75 22.25 20.3096 22.25 21C22.25 21.6904 22.8096 22.25 23.5 22.25Z" fill="currentColor"></path></svg></span>1С Бітрікс презентація</a><a href="/downloads/bitrix_24_en.pptx" download="" class="cursor-pointer flex gap-4 dark:text-white bg-light-fill dark:bg-dark-fill rounded-lg p-4 text-center hover:opacity-75 transition-all"><span class=" flex w-6 h-6 text-[#1E90FF] dark:text-[#1E90FF]"><svg x="0px" y="0px" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" xml:space="preserve"><path d="M22 16H28C28.2652 16 28.5196 16.1054 28.7071 16.2929C28.8946 16.4804 29 16.7348 29 17V25C29 25.2652 28.8946 25.5196 28.7071 25.7071C28.5196 25.8946 28.2652 26 28 26H4C3.73478 26 3.48043 25.8946 3.29289 25.7071C3.10536 25.5196 3 25.2652 3 25V17C3 16.7348 3.10536 16.4804 3.29289 16.2929C3.48043 16.1054 3.73478 16 4 16H10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M16 3V16" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M10 10L16 16L22 10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M23.5 22.25C24.1904 22.25 24.75 21.6904 24.75 21C24.75 20.3096 24.1904 19.75 23.5 19.75C22.8096 19.75 22.25 20.3096 22.25 21C22.25 21.6904 22.8096 22.25 23.5 22.25Z" fill="currentColor"></path></svg></span>1С Бітрікс24 презентація</a><a href="/downloads/bitrix_enterprise_en.pptx" download="" class="cursor-pointer flex gap-4 dark:text-white bg-light-fill dark:bg-dark-fill rounded-lg p-4 text-center hover:opacity-75 transition-all"><span class=" flex w-6 h-6 text-[#D9D300] dark:text-[#FFFB00]"><svg x="0px" y="0px" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" xml:space="preserve"><path d="M22 16H28C28.2652 16 28.5196 16.1054 28.7071 16.2929C28.8946 16.4804 29 16.7348 29 17V25C29 25.2652 28.8946 25.5196 28.7071 25.7071C28.5196 25.8946 28.2652 26 28 26H4C3.73478 26 3.48043 25.8946 3.29289 25.7071C3.10536 25.5196 3 25.2652 3 25V17C3 16.7348 3.10536 16.4804 3.29289 16.2929C3.48043 16.1054 3.73478 16 4 16H10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M16 3V16" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M10 10L16 16L22 10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M23.5 22.25C24.1904 22.25 24.75 21.6904 24.75 21C24.75 20.3096 24.1904 19.75 23.5 19.75C22.8096 19.75 22.25 20.3096 22.25 21C22.25 21.6904 22.8096 22.25 23.5 22.25Z" fill="currentColor"></path></svg></span>1С Підприємство презентація</a></div></div></div></main><div class="block relative mt-8 lg:hidden w-full"></div><footer class="relative hidden lg:block"><div class="mx-auto max-w-7xl py-12 px-6 lg:py-16 lg:px-8"><div class="pb-8 grid grid-cols-4 gap-8"><div class="mt-0"><div class="text-base text-black font-normal dark:text-white">Підтримка</div><ul class="mt-4 space-y-4"><li><a class="text-base text-black/75 dark:text-white/50 hover:text-black dark:hover:text-white transition-all" href="https://truetech.dev/contacts">Безкоштовна консультація</a></li><li><a class="text-base text-black/75 dark:text-white/50 hover:text-black dark:hover:text-white transition-all" href="https://truetech.dev/posts">Корисна інформація</a></li></ul></div><div><div class="text-base text-black font-normal dark:text-white">Рішення</div><ul class="mt-4 space-y-4"><li><a class="text-base text-black/75 dark:text-white/50 hover:text-black dark:hover:text-white transition-all" href="https://truetech.dev/apps">Всі рішення</a></li></ul></div><div><div class="text-base text-black font-normal dark:text-white">Компанія</div><ul class="mt-4 space-y-4"><li><a class="text-base text-black/75 dark:text-white/50 hover:text-black dark:hover:text-white transition-all" href="https://truetech.dev/contacts">Контакти</a></li><li><a class="text-base text-black/75 dark:text-white/50 hover:text-black dark:hover:text-white transition-all" href="https://truetech.dev/about">Про компанію</a></li><li><a class="text-base text-black/75 dark:text-white/50 hover:text-black dark:hover:text-white transition-all" href="https://truetech.dev/career">Робота в компанії</a></li><li><a class="text-base text-black/75 dark:text-white/50 hover:text-black dark:hover:text-white transition-all" href="https://truetech.dev/affiliate-program">Партнерська програма</a></li></ul></div><div class="mt-0"><div class="text-base text-black font-normal dark:text-white">Language & Currency</div><div class="mt-4 flex flex-col gap-4"><div><div class="relative mt-1"><button class="relative rounded-lg w-full cursor-default py-3 pl-3 pr-10 text-left shadow-sm text-base font-normal text-black/75 dark:text-white/50 bg-light-item dark:bg-dark-item focus:outline-none focus:ring-2 focus:ring-dark-button" id="headlessui-listbox-button-:Rpkdl:" type="button" aria-haspopup="listbox" aria-expanded="false" data-headlessui-state=""><span class="block truncate">Український</span><span class="pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" data-slot="icon" class="h-5 w-5"><path fill-rule="evenodd" d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd"></path></svg></span></button></div></div><div><div class="relative"><button class="relative rounded-lg w-full cursor-default py-3 pl-3 pr-10 text-left shadow-sm text-base font-normal text-black/75 dark:text-white/50 bg-light-item dark:bg-dark-item focus:outline-none focus:ring-2 focus:ring-dark-button" id="headlessui-listbox-button-:Rqkdl:" type="button" aria-haspopup="listbox" aria-expanded="false" data-headlessui-state=""><span class="block truncate">USD</span><span class="pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" data-slot="icon" class="h-5 w-5"><path fill-rule="evenodd" d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd"></path></svg></span></button></div></div></div></div></div><div class="py-8 grid grid-cols-4 gap-8 border-t border-black/25 dark:border-white/25"><div><a class="text-base text-black/75 dark:text-white/50 hover:text-black dark:hover:text-white transition-all" href="https://truetech.dev/privacy-policy">Політика конфіденційності</a></div><div><a class="text-base text-black/75 dark:text-white/50 hover:text-black dark:hover:text-white transition-all" href="https://truetech.dev/terms-of-service">Умови використання</a></div><div class="col-span-2"><div class="text-base text-black/75 dark:text-white/50">© <!-- -->2026<!-- --> <!-- -->Справжні технології ТОВ. Всі права захищені.</div></div></div></div></footer></div><div class="fixed lg:hidden w-full bottom-0"><div class="flex gap-12 px-12 justify-center h-[3.25rem] bg-white border-t border-[#E8E8E8] dark:bg-dark-nav dark:border-none"><a class="grow flex items-center justify-center text-white h-full" aria-label="Головна" href="https://truetech.dev/"><span class="flex h-8 w-7 text-black dark:text-white opacity-100"><svg x="0px" y="0px" viewBox="0 0 28 32.7" fill="none" xmlns="http://www.w3.org/2000/svg" xml:space="preserve"><path d="M16.8,23v-6c0-0.3-0.1-0.5-0.3-0.7c-0.2-0.2-0.4-0.3-0.7-0.3h-4c-0.3,0-0.5,0.1-0.7,0.3 c-0.2,0.2-0.3,0.4-0.3,0.7v6c0,0.3-0.1,0.5-0.3,0.7c-0.2,0.2-0.4,0.3-0.7,0.3l-6,0c-0.1,0-0.3,0-0.4-0.1c-0.1-0.1-0.2-0.1-0.3-0.2 C3,23.6,3,23.5,2.9,23.3c-0.1-0.1-0.1-0.3-0.1-0.4V11.4c0-0.1,0-0.3,0.1-0.4c0.1-0.1,0.1-0.2,0.2-0.3l10-9.1 c0.2-0.2,0.4-0.3,0.7-0.3c0.2,0,0.5,0.1,0.7,0.3l10,9.1c0.1,0.1,0.2,0.2,0.2,0.3c0.1,0.1,0.1,0.3,0.1,0.4V23c0,0.1,0,0.3-0.1,0.4 c-0.1,0.1-0.1,0.2-0.2,0.3c-0.1,0.1-0.2,0.2-0.3,0.2C24.1,23.9,24,24,23.8,24l-6,0c-0.3,0-0.5-0.1-0.7-0.3 C17,23.5,16.8,23.2,16.8,23L16.8,23z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><line class="st1" x1="6.4" y1="32" x2="21.4" y2="32" fill="none" stroke="currentColor" stroke-linecap="round"></line></svg></span></a><a class="grow flex items-center justify-center text-white h-full" aria-label="Всі рішення" href="https://truetech.dev/apps"><span class="flex h-8 w-7 text-black dark:text-white opacity-50"><svg x="0px" y="0px" viewBox="0 0 28 32.7" fill="none" xmlns="http://www.w3.org/2000/svg" xml:space="preserve"><path d="M11.8,3.1h-8v8h8V3.1z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M23.8,3.1h-8v8h8V3.1z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M11.8,15.1h-8v8h8V15.1z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M23.8,15.1h-8v8h8V15.1z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></a><a class="grow flex items-center justify-center text-white h-full" aria-label="Послуги" href="https://truetech.dev/#servicesList"><span class="flex h-8 w-7 text-black dark:text-white opacity-50"><svg x="0px" y="0px" viewBox="0 0 28 32.7" fill="none" xmlns="http://www.w3.org/2000/svg" xml:space="preserve"><path d="M2.8,13.2h22" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M2.8,5.2h22" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M2.8,21.2h22" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></a><a class="grow flex items-center justify-center text-white h-full" aria-label="Мій аккаунт" href="https://truetech.dev/area51"><span class="flex h-8 w-7 text-black dark:text-white opacity-50"><svg x="0px" y="0px" viewBox="0 0 28 32.7" fill="none" xmlns="http://www.w3.org/2000/svg" xml:space="preserve"><path d="M13.8,17.2c4.4,0,8-3.6,8-8s-3.6-8-8-8s-8,3.6-8,8S9.4,17.2,13.8,17.2z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.7,24.2c1.2-2.1,3-3.9,5.1-5.1c2.1-1.2,4.5-1.9,7-1.9c2.5,0,4.9,0.6,7,1.9c2.1,1.2,3.9,3,5.1,5.1" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></a></div></div></div></div> <div id="dialog"></div> <div id="dialog-alert"></div> <div id="dialog-iframe" class="hidden"></div> </div> </body> </html>