Вы получаете проект на 1С-Битрикс с сотнями инфоблоков, десятками интеграций и кастомными компонентами — и ни одного документа. Первый день уходит на reverse engineering: ID 17 — каталог товаров, ID 23 — складские остатки. Без документации любое изменение — риск простоев. Мы документируем проект под ключ: от аудита до автогенерации схем. Опыт 10 лет в Битрикс-разработке, гарантия актуальности. Результат — полная карта проекта, готовая для передачи. Сокращаем время адаптации с недель до дней, снижаем затраты на поддержку на 50%.
Почему документирование — не роскошь, а необходимость?
В проектах без документации каждое обновление — лотерея. Инфоблоки переименовывают без пересчёта привязок, интеграции ломаются из-за смены токенов, новые разработчики тратят недели на изучение кода. Документирование окупается за 2–3 месяца за счёт ускорения типовых задач: правка шаблона вместо часа занимает 15 минут, а поиск ошибки — с дня до часа.
Как документировать инфоблоки?
Инфоблоки — сердце проекта. Документация начинается с автоматического извлечения метаданных. Скрипт на основе ORM собирает ID, коды, свойства и генерирует Markdown-файлы. Пример:
// Скрипт генерации документации по инфоблокам
$iblocks = \Bitrix\Iblock\IblockTable::getList([
'select' => ['ID', 'NAME', 'CODE', 'IBLOCK_TYPE_ID', 'DESCRIPTION'],
'order' => ['IBLOCK_TYPE_ID' => 'ASC', 'NAME' => 'ASC'],
])->fetchAll();
foreach ($iblocks as $iblock) {
$props = \Bitrix\Iblock\PropertyTable::getList([
'filter' => ['IBLOCK_ID' => $iblock['ID']],
'select' => ['ID', 'NAME', 'CODE', 'PROPERTY_TYPE', 'USER_TYPE', 'LINK_IBLOCK_ID'],
'order' => ['SORT' => 'ASC'],
])->fetchAll();
// Генерируем Markdown-страницу для инфоблока
echo "## {$iblock['NAME']} (ID: {$iblock['ID']}, CODE: {$iblock['CODE']})\n";
// ...
}
Результат: таблицы свойств в git-репозитории, обновляемые при деплое. Пример документа для инфоблока:
| Код | Название | Тип | Особенности |
|---|---|---|---|
| VENDOR_CODE | Артикул | S (строка) | Обязательное, уникальное |
| BRAND | Бренд | E (привязка) | → Инфоблок ID 8 (Бренды) |
| WEIGHT | Вес (г) | N (число) | Для расчёта доставки |
| IMAGES | Дополнительные фото | F (файл) | Multiple |
Для каталогов от 10 000 товаров добавляем индексы по IBLOCK_ELEMENT.IBLOCK_ID и IBLOCK_ELEMENT_PROPERTY.VALUE — без документации такую оптимизацию легко пропустить.
Что входит в документирование интеграций?
Интеграции — точка отказа. Карта интеграций включает:
- Битрикс24 CRM ↔ Сайт: REST API + вебхуки, двустороннее, лиды из форм → B24, статусы заказов B24 → сайт. Токены в
/bitrix/.settings_extra.php, переменнаяB24_WEBHOOK_URL. Обновление каждые 15 минут (агент\Integration\B24Agent::sync()). Логи:/local/logs/b24_integration.log. - 1С:Предприятие ↔ Сайт: CommerceML 2.0, товары и остатки из 1С, заказы в 1С. Регламент — каждые 2 часа. При более 10 000 товаров обмен занимает свыше 30 минут — настроен split по файлам.
Для каждой интеграции указываем тип, направление, расположение токенов, расписание и логи. Подробнее — в документации Битрикс.
Документирование кастомной БД
Для кастомных таблиц — ERD-диаграмма и текстовое описание. Пример:
| Поле | Тип | Описание |
|---|---|---|
| ID | INT AUTO_INCREMENT | PK |
| SPECIALIST_ID | INT | FK → b_user.ID |
| SERVICE_ID | INT | FK → b_iblock_element.ID (ИБ 12) |
| DATE_FROM | DATETIME | Начало слота |
| DATE_TO | DATETIME | Конец слота |
| STATUS | ENUM('free','booked','blocked') | Текущий статус |
| BOOKING_ID | INT NULL | FK → bookings.ID при STATUS=booked |
Индексы: (SPECIALIST_ID, DATE_FROM), (STATUS). Создаётся модулем local.booking в install/db/mysql/install.sql.
Как документировать компоненты?
Для кастомных компонентов — файл component.php с описанием параметров и отдельный Markdown с примерами:
<?$APPLICATION->IncludeComponent('local:catalog.filter.extended', '', [
'IBLOCK_ID' => 5,
'PRICE_TYPES' => [1, 2],
'USE_RANGE' => true,
]);?>
Параметры компонента:
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
| IBLOCK_ID | int | — | ID инфоблока каталога (обязательно) |
| PRICE_TYPES | array | [1] | ID типов цен для фильтра |
| USE_RANGE | bool | true | Включить фильтр по диапазону цен |
| AJAX_MODE | bool | true | Обновление без перезагрузки страницы |
Известные ограничения: не работает с SKU.
Как мы документируем проект за 5 шагов
- Аудит — инвентаризация инфоблоков, таблиц, модулей, интеграций. Выявляем недокументированные участки.
- Автогенерация схем — скрипты извлекают структуру из БД и формируют Markdown.
- Написание документов — описываем инфоблоки, интеграции, компоненты, БД. Добавляем примеры и ограничения.
- Диаграммы — ERD и схемы взаимодействия в PlantUML или Mermaid.
- Настройка процесса — правила обновления, шаблоны PR, автогенерация при деплое.
Актуализация документации
Документация без процесса обновления стареет. Правила:
- Изменение инфоблока → обновление файла инфоблока в том же PR.
- Добавление таблицы → описание в
/docs/database/. - Новая интеграция → обновление карты.
- Деплой → запуск автогенерации схем.
Этапы работы и сроки
| Этап | Содержание | Срок |
|---|---|---|
| Аудит проекта | Инвентаризация инфоблоков, таблиц, модулей | 2–3 дня |
| Автогенерация схем | Скрипты извлечения структуры из БД | 1–2 дня |
| Написание ключевых документов | Инфоблоки, интеграции, компоненты | 3–7 дней |
| Диаграммы | ERD, схемы интеграций | 2–3 дня |
| Настройка процесса | Правила обновления, шаблоны | 1 день |
Суммарно: 2–4 недели для проекта среднего масштаба. Получите консультацию — свяжитесь с нами, и мы подготовим индивидуальный план. Экономия времени на поддержке окупит документирование за 2–3 месяца. Оставьте заявку на сайте — мы оценим ваш проект.







