D.Ermakov
Дмитрий Ермаков — Bitrix-разработчик, Full-Stack Developer

Bitrix‑разработчик.
Код без компромиссов.

Highload-каталоги на D7 API, кастомные CRM-модули и интеграции с 1С, которые не ломаются. 10+ лет. 40+ проектов. Чистый код.

10+ Лет коммерческого опыта
40+ Успешных проектов
Дмитрий Ермаков — 10 лет опыта в разработке на 1С-Битрикс

Специализируюсь на платформе 1С-Битрикс и Bitrix24

За более, чем 10 лет коммерческой разработки я прошел путь от базовой верстки до проектирования архитектуры компонентов D7 API для высоконагруженных e-commerce проектов.

Разрабатываю кастомные компоненты и CRM-решения с нуля. Грамотно выстраиваю интеграции между Битрикс и внешними системами (1С, CRM, платежные шлюзы, доставки), добиваясь того, чтобы данные синхронизировались надежно, а не просто «иногда работали».

Помимо бизнес-логики, я профилирую запросы БД, настраиваю кэширование и серверную инфраструктуру (Linux, Nginx), ускоряя загрузку страниц в разы.

Технологический Стек

Инструменты, которые я использую для решения бизнес-задач.

PHP JavaScript jQuery CSS3 HTML5 MySQL 1C-Bitrix D7 API REST API Tailwind Git Nginx
Bitrix24 CRM Ajax Linux Schema.org SEO Bootstrap BEM Highload Composer Apache JSON Webpack
OOP MVC Smarty Photoshop Figma Docker SSH cURL XML RegExp Cron Bash

Опыт Работы

Ключевые этапы моей коммерческой карьеры

Антарес, ООО

Ведущий специалист по IT-инфраструктуре и Bitrix24. Развитие CRM, телефония, серверы.

DoWeb — Битрикс-разработчик

Разработка проектов под ключ, D7 API, SEO-улучшения.

CyberNevod

Highload E-commerce, синхронизация с 1С (остатки в реальном времени).

IQ MAXIMA

Запущено 8 сайтов e-commerce, оптимизация производительности БД.

HotHeads

Миграция legacy на D7, ведение клиентских порталов.

Demis Group

Техническая поддержка 30+ проектов.

Клик

Full-stack разработка и SEO-оптимизация.

Обучение / Навыки

Высшее профильное образование (IT).

Реализованные Проекты

Избранные кейсы из 40+ внедрений и интеграций

ГК ТРИММ
ГК ТРИММ

Каталог медицинского оборудования. Сложная структура с фильтрами, интеграция с CRM.

1C-Bitrix / D7 API / Каталог
МДЦ Мебель
МДЦ Мебель

Интернет-магазин мебели с оптовым разделом. Умные фильтры, корзина, онлайн-оплата.

1C-Bitrix / E-commerce / Фильтры
100 Друзей
100 Друзей

Сеть магазинов мобильных аксессуаров. Каталог, акции, интеграция с 27 точками.

1C-Bitrix / Розница / SEO
АвтоГАЗ
АвтоГАЗ

Официальный дилер ГАЗ. Конфигуратор авто, калькулятор лизинга и кредита.

1C-Bitrix / Конфигуратор / Ajax
ТрансКлассСервис
ТрансКлассСервис

Премиальные ж/д путешествия. Имиджевый сайт с VIP-вагонами и бронированием.

1C-Bitrix / Дизайн / Schema.org
ЭкоПоддон
ЭкоПоддон

Оптовые поставки поддонов. Личный кабинет для оптовиков, калькулятор доставки.

1C-Bitrix / B2B / Личный кабинет
Elfa
Elfa Russia

Дистрибьютор систем хранения Elfa. Каталог с 3D-проектированием, дилерская сеть.

1C-Bitrix / Каталог / Партнёры
МЦ Надежда
МЦ «Надежда»

Клиника в Красноярске. Запись к врачам, прайс-лист, версия для слабовидящих.

1C-Bitrix / Медицина / Доступность
МосТрансАренда
МосТрансАренда

Аренда спецтехники. Каталог с фильтрами, калькулятор перевозок.

1C-Bitrix / Каталог / Калькулятор
RANCHO
RANCHO

Магазин грилей и уличной мебели мировых брендов. Акции, подарки, блог.

1C-Bitrix / E-commerce / Бренды
Drive Service
Drive Service

Ремонт АКПП в СПб. Прайс, онлайн-запись, интеграция Яндекс.Сплит.

1C-Bitrix / Услуги / SEO
Двери СК
Двери СК

Магазин дверей в Казани. Фильтры по материалу и цене, доставка и гарантия.

1C-Bitrix / E-commerce / Фильтры
ТоргМаш
ТоргМаш

Автосалон — дилер УАЗ, LADA, CHERY. Конфигуратор, кредит, trade-in.

1C-Bitrix / Авто / Конфигуратор
Великан Авто
Великан Авто

Авто с пробегом. Фильтр по маркам, кредитование, онлайн-оценка.

1C-Bitrix / Авто / Кредит
EVO Кухни
EVO Кухни

Кухни на заказ. 800+ фасадов, онлайн-расчёт, вызов дизайнера на дом.

1C-Bitrix / Мебель / Расчёт
MODLR
MODLR

3D-панели и дизайнерский декор. Стильный каталог, избранное, быстрый заказ.

1C-Bitrix / E-commerce / Дизайн
Роев Ручей
Роев Ручей

Зоопарк Красноярска. Афиша, онлайн-билеты, карта парка.

1C-Bitrix / Билеты / Доступность
UNIKA Møblar
UNIKA Møblar

Дизайнерская мебель собственного производства. B2B, шоурумы, HoReCa.

1C-Bitrix / B2B / HoReCa
IQ MAXIMA
IQ MAXIMA

Агентство по разработке и продвижению сайтов. Кейсы и блог.

1C-Bitrix / Корпоративный / SEO
Русский Дом
Русский Дом

Премиальная мебель на заказ. Коллекции, раздел для дизайнеров.

1C-Bitrix / Премиум / Дизайнерам
1 / 20

Под Капотом

Фрагменты реального production-кода из моих проектов

EventHandlers.php
08  public static function onPageStart(): void
09  {
10      // Don't run in CLI or admin panel
11      if (php_sapi_name() === 'cli') return;
15
16      $request = Application::getInstance()->getContext()->getRequest();
17      $uri = $request->getRequestUri();
18
33      // 1. Check real URL → redirect 301 to custom SEO URL
34      $redirectRule = RuleTable::getList([
35          'filter' => ['=ACTIVE' => 'Y',
36              ['LOGIC' => 'OR',
37               ['=REAL_URL' => $uri],
38               ['=REAL_URL' => $decodedPath]]
39          ], 'limit' => 1
40      ])->fetch();
41
42      if ($redirectRule) {
43          header('Location: ' . $customUrl, true, 301);
44          exit;
45      }
20  class FormulaParser
21  {
22      /** @var array Whitelisted safe functions */
23      protected static array $allowedFunctions = [
24          'ceil', 'floor', 'round', 'min', 'max',
25          'sqrt', 'pow', 'abs', 'log', 'exp',
26      ];
27
48      public function evaluate(string $expression, array $variables)
49      {
50          $this->variables = $variables;
51          $expr = $this->substituteVariables($expression);
52          $this->tokens = $this->tokenize($expr);
53          $result = $this->parseTernary();
54
55          if ($this->pos < count($this->tokens)) {
56              throw new \InvalidArgumentException(
57                  "Unexpected token: '".$this->tokens[$this->pos]['value']."'"
58              );
59          }
60          return $result;
61      }
09  class RuleTable extends Entity\DataManager
10  {
11      public static function getTableName(): string
12      {
13          return 'lamass_seofilter_rule';
14      }
15
16      public static function getMap(): array
17      {
18          return [
19              new Entity\IntegerField('ID', [
20                  'primary' => true,
21                  'autocomplete' => true,
22              ]),
23              new Entity\BooleanField('ACTIVE', [
24                  'values' => ['N', 'Y'],
25                  'default_value' => 'Y',
26              ]),
27              new Entity\StringField('CUSTOM_URL', [
28                  'required' => true,
29              ]),
30              new Entity\StringField('REAL_URL', [
31                  'required' => true,
32              ]),
33              new Entity\TextField('SEO_TEXT'),
34          ];
35      }
36  }
140 public static function onEndBufferContent(string&$content): void
141 {
147     $rules = RuleTable::getList([
148         'filter' => ['=ACTIVE' => 'Y']
149     ])->fetchAll();
150
158     foreach ($rules as $rule) {
159         // Direct, HTML-escaped, JSON-escaped URL variants
168         $search[] = '"' . $realUrl . '"';
169         $replace[] = '"' . $customUrl . '"';
175         $search[] = '"' . htmlspecialcharsbx($realUrl) . '"';
182         $search[] = '"' . str_replace('/', '\\/', $realUrl) . '"';
183     }
186     $content = str_replace($search, $replace, $content);
191
192     // Inject SEO text before </body>
193     $bodyPos = strripos($content, '</body>');
194     $content = substr_replace($content, $seoHtml, $bodyPos, 0);
195 }
SEO Engine

URL Rewriting без потерь SEO

Перехват запроса на уровне Bitrix Context. Человекочитаемые SEO-URL с автоматическим 301 редиректом, сохранением query-параметров и инъекцией мета-тегов.

301Redirect без дублей
0msОверхед на запрос
Algorithm

Recursive Descent Parser

Безопасный парсер математических формул для конструктора калькуляторов. Лексер, токенизатор, рекурсивный спуск. Whitelist функций, защита от инъекций.

10Встроенных функций
0eval() вызовов
D7 API

Type-Safe ORM DataManager

Чистая реализация D7 ORM с декларативным маппингом полей. Типизация, валидация, автоинкремент — всё через Entity API без raw SQL.

0Raw SQL запросов
D7Modern API
Performance

Output Buffer Interceptor

Массовая замена URL во всём HTML-буфере страницы. Обрабатывает 3 контекста: прямые URL, HTML-escaped и JSON-escaped. Инъекция SEO-текста перед </body>.

3Контекста URL
1 passОдин проход буфера

Лицензии и Сертификаты

Подтвержденная профильная и академическая база

Сертификат Разработчик Bitrix Framework — 1С-Битрикс
Сертификат 1С-Битрикс — Контент-менеджер
Сертификат 1С-Битрикс — Администратор. Базовый
Сертификат 1С-Битрикс — Администратор. Модули
Сертификат 1С-Битрикс — Администратор. Бизнес
Сертификат 1С-Битрикс — интеграция и настройка
Сертификат 1С-Битрикс — технологии разработки