Индивидуальный модуль 1С-Битрикс нужен, когда типовая настройка, компонент или готовое решение не покрывают бизнес-процесс. Он должен расширять проект предсказуемо: использовать предусмотренные платформой механизмы, учитывать обновления, права доступа, данные и работу под нагрузкой.
Moscow Website разрабатывает и дорабатывает модули, компоненты и служебные инструменты для действующих проектов на 1С-Битрикс. Работа начинается с изучения задачи и существующего кода, а результат фиксируется в требованиях, сценариях приёмки и правилах дальнейшей поддержки.
Бизнес-логика
Функция решает конкретную задачу
Описываем пользователей, данные, правила, исключения и ожидаемый результат до начала реализации.
Совместимость
Ядро не переписывается
Расширение размещается в предусмотренной области проекта и взаимодействует с платформой через доступные API и события.
Эксплуатация
Ошибки можно обнаружить
Предусматриваем журналирование, контроль фоновых операций, понятные состояния и передачу проекта на поддержку.
Когда нужен индивидуальный модуль
- бизнес-процесс нельзя собрать стандартными настройками без ручных обходных действий;
- готовое решение из Marketplace не поддерживает нужные данные или правила;
- требуется единая функция для нескольких разделов или сайтов;
- необходимо связать каталог, заказы, пользователей или документы с внешней системой;
- существующая доработка внесена в ядро и мешает безопасным обновлениям;
- фоновые операции требуют очереди, контроля состояния и повторного запуска;
- администраторам нужен отдельный интерфейс вместо ручной работы с данными;
- функцию предстоит развивать и сопровождать в течение нескольких этапов.
Собственный модуль — не цель сам по себе. Если задачу надёжно решает настройка, стандартный компонент или поддерживаемое готовое решение, индивидуальная разработка может быть неоправданной. Мы сравниваем варианты по соответствию требованиям, рискам обновления и стоимости владения.
Модуль, компонент или доработка проекта
Модуль
Самостоятельная подсистема
Установка, настройки, таблицы или сущности, события, права и функции, которые могут использовать разные части проекта.
Компонент
Интерфейс и сценарий страницы
Получает и выводит данные, обрабатывает действия пользователя и может иметь несколько шаблонов представления.
Локальная доработка
Изменение конкретного участка
Подходит, когда функция относится к одному проекту и не требует отдельного жизненного цикла установки.
Формат выбирается после анализа связей и будущего развития. Называть каждую функцию модулем неправильно: лишняя архитектурная сложность также увеличивает стоимость поддержки.
Аудит существующего проекта
Чужой проект нельзя безопасно дорабатывать только по описанию результата. Проверяем редакцию и версию платформы, используемые модули, структуру данных, интеграции, фоновые задания, права, журналы ошибок и способ развёртывания изменений.
- где хранится текущая бизнес-логика и какие части от неё зависят;
- есть ли изменения системных файлов и как они переживают обновление;
- какие сущности, инфоблоки, пользовательские поля и таблицы используются;
- как выполняются агенты, cron-задачи, импорт и другие фоновые операции;
- какие внешние системы отправляют и получают данные;
- какие роли пользователей работают с функцией;
- существует ли тестовая среда и актуальная резервная копия.
По итогам фиксируем ограничения, зависимости и рекомендуемый формат реализации. Если задача локальна, она может перейти в направление доработки сайта без создания отдельного модуля.
Требования и границы разработки
До кода описываем не только основной успешный сценарий, но и ограничения. Кто запускает операцию, какие данные обязательны, что происходит при дубле, отмене, недостатке прав или недоступности внешнего сервиса — эти решения влияют на архитектуру сильнее названия кнопок.
Состав требований
Что должно быть согласовано
- пользователи, роли и разрешённые действия;
- источники, состав и формат данных;
- основные и исключительные сценарии;
- правила создания, изменения и удаления записей;
- уведомления, журналирование и обработка ошибок;
- нагрузка, периодичность и ограничения времени выполнения;
- критерии приёмки и набор контрольных примеров;
- границы первой версии и идеи следующих этапов.
Архитектура и API 1С-Битрикс
Платформа продолжает поддерживать старое ядро и D7, поэтому реальный проект может содержать оба подхода. Новая разработка по возможности использует актуальные классы и пространства имён, но способ интеграции определяется возможностями установленной версии и существующими зависимостями.
- код расширения отделяется от системных файлов платформы;
- взаимодействие с другими частями проекта выполняется через документированные API и события;
- настройки не смешиваются с секретами и средозависимыми значениями;
- структура данных изменяется контролируемыми установочными или миграционными шагами;
- обновление модуля не должно незаметно удалять пользовательские данные;
- зависимости от других модулей проверяются до выполнения операции.
Конкретные классы и методы выбираются по актуальной онлайн-документации и коду установленной версии. Это важно для платформы, где часть старого API сохраняется ради совместимости, а новое ядро развивается постепенно.
Решения для интернет-магазинов
В e-commerce модуль может работать с каталогом, ценами, остатками, корзиной, заказами, скидками, доставкой или административной обработкой. Такая функция проверяется не только на нескольких тестовых товарах, но и на реальном объёме данных и конкурентных операциях.
- массовое управление товарами и связанными сущностями;
- нестандартные правила цены, доступности или комплектации;
- дополнительные этапы обработки заказа;
- обмен со складскими, логистическими и клиентскими системами;
- B2B-функции, роли, договорные цены и ограничения доступа;
- служебные отчёты, очереди и контроль ошибок.
Когда основная задача — обмен каталогом, остатками, ценами и заказами, используйте отдельную страницу интеграции сайта с 1С и CRM.
Производительность и фоновые операции
Функция, которая правильно работает на десяти записях, может остановить большой каталог. До реализации оцениваем объём данных, частоту запуска, допустимое время и влияние на посетителей. Массовые операции разделяются на контролируемые шаги и не должны зависеть от одного долгого открытия страницы в браузере.
- выборка только необходимых полей и записей;
- постраничная или пакетная обработка больших объёмов;
- контроль повторного запуска и защита от дублей;
- ограничение параллельного выполнения;
- журнал прогресса и понятное состояние ошибки;
- измерения на данных, близких к боевым;
- кеширование только там, где определены правила обновления.
Для уже медленного e-commerce-проекта доступна отдельная услуга диагностики и ускорения интернет-магазина.
Безопасность и права доступа
Административный интерфейс, API и фоновые обработчики проверяют авторизацию и полномочия пользователя. Входные данные валидируются, действия с важными сущностями журналируются, а токены и пароли не выводятся в интерфейс и журналы.
- минимально необходимые права для каждой роли;
- защита форм и запросов от подделки и повторной отправки;
- экранирование данных при выводе;
- ограничение доступных методов внешнего API;
- безопасное хранение настроек подключения;
- обработка ошибок без раскрытия внутренней информации;
- план обновления зависимостей и устранения обнаруженных проблем.
Тестирование и внедрение
Разработка и первичная проверка выполняются вне боевого сайта. На тестовой среде проверяем установку, обновление, права, основные сценарии, ошибки, объём данных и совместимость с зависимыми частями проекта.
01
Обследование
Проект, бизнес-процесс, код, данные, интеграции, ограничения и возможные варианты решения.
02
Требования
Сценарии, роли, данные, ошибки, производительность, границы и критерии приёмки.
03
Архитектура
Формат расширения, зависимости, сущности, события, интерфейсы и план внедрения.
04
Разработка
Код, настройки, административные формы, фоновые операции, журналы и миграции данных.
05
Проверка
Контрольные сценарии, права, ошибки, объёмы, обновление и исправление найденных проблем.
06
Внедрение
Резервная копия, развёртывание, контроль на боевом проекте и передача в поддержку.
Результат разработки
- реализованный модуль, компонент или локальное расширение в согласованных границах;
- установочные и обновляющие шаги для структуры данных;
- настройки, права и административные интерфейсы;
- журналирование критичных операций и ошибок;
- набор проверенных сценариев приёмки;
- описание зависимостей, настроек и порядка развёртывания;
- перечень известных ограничений и идей следующих этапов;
- согласованный формат гарантийных исправлений и дальнейшей поддержки.
Сроки и стоимость
Оценка зависит от состояния проекта, объёма данных, числа сценариев, интеграций, прав, требований к производительности и способа внедрения. Короткое описание «нужен модуль» не позволяет ответственно определить бюджет.
Для сложной задачи сначала оценивается обследование и проектирование. После него реализация может быть разделена на первую рабочую версию и последующие релизы. Общие принципы описаны на странице «Цены и форматы работы».
Частые вопросы
Можно доработать существующий модуль?
Да, если доступны код, лицензия на использование и безопасный способ расширения. Сначала проверяем архитектуру, зависимости и влияние будущих обновлений.
Вы изменяете системные файлы Битрикс?
Новая функция не должна требовать прямой правки ядра. Если в существующем проекте такие изменения уже есть, сначала определяем их назначение и план переноса в поддерживаемую область.
Обязательно использовать только D7?
Платформа поддерживает новое и старое ядро, а действующие проекты часто содержат оба подхода. Для нового кода предпочитаются актуальные API, но решение должно учитывать установленную версию и существующие зависимости.
Можно разработать модуль для обмена с 1С?
Да, после обследования систем и бизнес-правил. Нужно определить состав и направление данных, идентификаторы, периодичность, обработку конфликтов и повторный запуск после ошибки.
Что нужно для предварительной оценки?
Ссылка на проект, версия и редакция 1С-Битрикс, описание пользователей и результата, примеры данных, список внешних систем и известные ограничения текущего решения.
Первый этап
Разобрать задачу на 1С-Битрикс
Опишите, какую операцию нужно автоматизировать, кто ей пользуется, с какими данными она работает и что сейчас мешает решить задачу стандартными средствами.