Как развернуть интернет-магазин 1С-Битрикс на локальном компьютере для настройки обмена с 1С:Управление торговлей 11?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет IT и автоматизация бизнеса
← На главную

Настройка интеграции между решением 1С:Управление торговлей 11 (УТ11) и интернет-магазином на платформе 1С-Битрикс — одна из наиболее востребованных задач в сфере автоматизации торговли. Для успешной отладки, кастомизации обмена и тестирования неординарных сценариев выгрузки разработчику жизненно необходима полноценная локальная среда. Вести разработку на «живом» сайте клиента крайне опасно, так как любые ошибки могут привести к сбоям в реальных заказах и потере данных.

В этой статье мы подробно и по шагам разберем, как развернуть локальное окружение для интернет-магазина 1С-Битрикс на компьютере разработчика, где легально взять необходимые дистрибутивы и лицензии, как перенести сайт клиента на локальный сервер и как настроить его взаимодействие с базой 1С:УТ11.

Варианты развертывания локальной среды разработчика

Рассмотрим основные способы создания веб-окружения на локальном компьютере под управлением ОС Windows или macOS. Платформа 1С-Битрикс предъявляет жесткие требования к серверному программному обеспечению (версии PHP, СУБД MySQL/MariaDB, модули веб-сервера Apache/Nginx). Установка всех этих компонентов вручную непосредственно на рабочую операционную систему захламляет реестр и системные папки, а также часто приводит к конфликтам портов. Мы рекомендуем использовать изолированные контейнеры или виртуальные машины.

Проанализируем три наиболее надежных подхода:

  1. Официальная виртуальная машина VMBitrix (VirtualBox). Это полностью готовый, оптимизированный дистрибутив операционной системы CentOS/AlmaLinux со всеми предустановленными и настроенными компонентами. Идеальный вариант для быстрого старта, не требующий глубоких навыков администрирования.
  2. Веб-окружение BitrixEnv. Устанавливается на чистую виртуальную машину или выделенный сервер под управлением Linux с помощью простого bash-скрипта. Позволяет тонко настраивать параметры системы.
  3. Официальное контейнерное окружение Docker. Современный стандарт разработки. Позволяет запускать легковесные изолированные контейнеры с Nginx, PHP-FPM, MySQL и Redis через конфигурационный файл docker-compose.yml. Начиная с лета 2025 года, компания «1С-Битрикс» предоставляет официальные Docker-образы для разработчиков.

Где взять дистрибутив и как решить вопрос с лицензией?

Выясним ситуацию с лицензированием платформы для целей разработки и тестирования. Многие начинающие специалисты совершают ошибку, бесконечно регистрируя новые почтовые ящики для получения временных 30-дневных триальных ключей. Разберем более цивилизованные и профессиональные подходы.

Во-первых, если вы планируете заниматься разработкой на постоянной основе, зарегистрируйтесь в бесплатной Партнерской программе 1С-Битрикс. Партнерам бесплатно предоставляется специальный ключ NFR (Not For Resale — «не для перепродажи»). Этот ключ не имеет ограничений по времени работы и отлично подходит для развертывания демонстрационных стендов, отладки обменов с 1С и разработки собственных модулей.

Во-вторых, при переносе готового интернет-магазина клиента на ваш локальный компьютер для проведения технических работ, вам вообще не нужно беспокоиться о покупке новой лицензии. Система 1С-Битрикс устроена таким образом, что при работе на локальных хостах (таких как localhost, 127.0.0.1 или локальных доменах третьего уровня типа shop.local) коммерческая лицензия вашего клиента не блокируется. Сайт будет функционировать в полном объеме, база данных развернется без ошибок. Единственным ограничением будет невозможность скачивать обновления модулей ядра напрямую из Маркетплейса (обновления нужно будет устанавливать сначала на продакшн-сервере и затем переносить код локально).

Пошаговая инструкция по установке VMBitrix в VirtualBox

Рассмотрим процесс развертывания готовой виртуальной машины на вашем компьютере. Обратите внимание, что старая версия VMBitrix 7.2 на базе CentOS 7 официально устарела, так как жизненный цикл CentOS 7 завершился в июне 2024 года. Для современных проектов необходимо использовать актуальную версию VMBitrix 9 (базируется на современных дистрибутивах AlmaLinux 9, Rocky Linux 9 или Oracle Linux 9), так как новые модули платформы требуют PHP версии 8.2 или 8.3.

Разберем установку по шагам:

  1. Скачайте и установите программу VirtualBox на ваш компьютер.
  2. Загрузите актуальный zip-архив виртуальной машины VMBitrix с официального репозитория вендора.
  3. Распакуйте скачанный архив на быстрый SSD-диск вашего компьютера.
  4. Запустите VirtualBox, выберите пункт «Добавить» и укажите путь к распакованному файлу конфигурации виртуальной машины (обычно это файл с расширением .vbox или .ovf).
  5. Настройка сети (Критически важный шаг!). Перейдите в настройки импортированной машины, раздел «Сеть». По умолчанию там может стоять тип подключения «NAT». Чтобы ваша база 1С (запущенная на основной системе Windows) могла свободно отправлять HTTP-запросы к локальному сайту внутри виртуальной машины, измените тип подключения на «Сетевой мост» (Bridged Adapter) и выберите вашу активную сетевую карту (Wi-Fi или Ethernet-адаптер). Это позволит виртуальной машине получить собственный IP-адрес в вашей локальной сети.
  6. Запустите виртуальную машину. При первом старте система автоматически запустит мастер настройки и предложит вам сменить стандартные пароли для суперпользователя root и системного пользователя веб-окружения bitrix. Придумайте сложные пароли и обязательно запишите их.
  7. После завершения инициализации на экране консоли отобразится локальный IP-адрес вашей виртуальной машины (например, 192.168.1.120). Введите этот адрес в строку браузера на основном компьютере — вы увидите стартовую страницу установки 1С-Битрикс.

Установка интернет-магазина через bitrixsetup.php или восстановление резервной копии

Теперь у нас есть готовый локальный веб-сервер. Посмотрим, как развернуть на нем работающий сайт интернет-магазина.

Если вам нужен чистый демо-сайт для экспериментов, выберите в браузере вариант установки нового продукта. Система предложит скачать скрипт bitrixsetup.php. Введите ваш лицензионный ключ (или выберите демонстрационный период на 30 дней) и следуйте указаниям мастера установки. Выберите редакцию «Малый бизнес» или «Бизнес» (именно в них присутствует модуль торгового каталога и интеграции с 1С) и установите типовой шаблон интернет-магазина.

Если необходимо перенести существующий проект клиента, воспользуемся штатным механизмом резервного копирования. Проанализируем этот процесс:

  1. На «живом» сайте клиента перейдите в административную панель: Настройки -> Инструменты -> Резервное копирование -> Создание резервной копии.
  2. Создайте полный архив сайта (включая публичную часть, ядро и базу данных). По завершении скачайте полученный файл (или несколько архивов с расширением .tar.gz) на свой локальный компьютер.
  3. На локальном сервере в папку веб-окружения (по умолчанию это директория /home/bitrix/www/) загрузите файл скрипта восстановления restore.php и файлы вашего архива.
  4. Откройте в браузере адрес http://[IP-адрес-вашей-виртуалки]/restore.php.
  5. Следуйте инструкциям мастера: выберите локальный архив, укажите параметры подключения к базе данных (для VMBitrix имя пользователя БД по умолчанию — root, пароль — тот, который вы задали при первом запуске виртуалки, имя базы данных можно задать любое, например, sitemanager).
  6. Скрипт автоматически распакует все файлы и восстановит структуру базы данных. На этапе завершения обязательно удалите файлы резервной копии и сам скрипт восстановления в целях безопасности.

Настройка синхронизации между 1С:УТ11 и локальным сайтом

После того как интернет-магазин развернут на локальном сервере, перейдем к настройке обмена данными. Нам необходимо связать нашу базу 1С:Управление торговлей 11 с локальным сайтом.

В современных конфигурациях 1С обмен с сайтом встроен в стандартный функционал. Разберем настройку по шагам со стороны 1С:

  1. В 1С:УТ11 перейдите в раздел НСИ и администрирование -> Настройка интеграции -> Обмен с сайтом. Поставьте флаг «Разрешить обмен с сайтом».
  2. Создайте новый узел обмена. В поле «Назначение обмена» выберите «Выгрузка товаров» и/или «Обмен заказами».
  3. В блоке «Режим обмена данными» выберите вариант «Выгрузка на сайт».
  4. Заполните параметры подключения к сайту. В поле «Адрес сайта» укажите полный путь к обработчику обмена на вашем локальном сервере. Формат адреса должен быть следующим: http://[IP-адрес-вашей-виртуалки]/bitrix/admin/1c_exchange.php (например, http://192.168.1.120/bitrix/admin/1c_exchange.php).
  5. Укажите имя пользователя и пароль администратора (или специального пользователя обмена), зарегистрированного на вашем локальном сайте Битрикса.
  6. Нажмите кнопку «Проверить подключение». Если все настройки сети и прав выполнены верно, 1С выдаст сообщение об успешном подключении. Если возникает ошибка, проверьте, открыт ли порт 80 в настройках брандмауэра виртуальной машины и правильно ли настроена сетевая доступность.

Для программной проверки доступности скрипта обмена из среды 1С мы можем написать простую тестовую обработку. Посмотрим на пример кода на встроенном языке 1С:


Процедура ПроверитьСвязьСЛокальнымБитриксом() Экспорт
    // Укажем IP-адрес нашей локальной виртуальной машины VMBitrix
    СерверАдрес = "192.168.1.120"; 
    ПортСервера = 80;
    
    // Создаем HTTP-соединение с авторизацией
    Соединение = Новый HTTPСоединение(СерверАдрес, ПортСервера, "admin", "ЛокальныйПароль123");
    
    // Формируем запрос авторизации, который использует стандартный модуль обмена Битрикс
    АдресРесурса = "/bitrix/admin/1c_exchange.php?type=catalog&mode=checkauth";
    Запрос = Новый HTTPЗапрос(АдресРесурса);
    
    Попытка
        Ответ = Соединение.Получить(Запрос);
        Если Ответ.КодСостояния = 200 Тогда
            СтрокаОтвета = Ответ.ПолучитьТелоКакСтроку();
            Если Найти(СтрокаОтвета, "success") > 0 Тогда
                Сообщить("Успешное подключение! Сессия авторизации успешно создана.");
                Сообщить("Ответ сервера: " + СтрокаОтвета);
            Иначе
                Сообщить("Сайт ответил, но авторизация не пройдена. Ответ: " + СтрокаОтвета);
            КонецЕсли;
        Иначе
            Сообщить("Сервер вернул код ошибки: " + Ответ.КодСостояния);
        КонецЕсли;
    Исключение
        Сообщить("Не удалось установить соединение с сервером. Проверьте сетевые настройки!");
    КонецПопытки;
КонецПроцедуры

Тонкая настройка PHP и СУБД для стабильного импорта данных

При выгрузке больших каталогов товаров (особенно если вы тестируете выгрузку реальной базы клиента с десятками тысяч товарных позиций и множеством изображений) стандартные лимиты PHP на виртуальной машине могут привести к падению процесса обмена по тайм-ауту. В логах 1С вы можете увидеть ошибку «Обмен не выполнен. Ответ сервера не получен».

Для предотвращения подобных ситуаций необходимо скорректировать конфигурационные файлы веб-сервера на локальной машине. Отредактируем файл настроек PHP (обычно расположен по пути /etc/php.d/z_bx_custom.ini или /etc/php.ini в VMBitrix). Установим следующие параметры:

  1. max_execution_time = 300 — увеличивает максимальное время выполнения скрипта PHP до 5 минут.
  2. memory_limit = 512M (или более, в зависимости от объема ОЗУ вашей виртуальной машины) — выделяет достаточно памяти для обработки тяжелых XML-файлов импорта.
  3. post_max_size = 128M и upload_max_filesize = 128M — позволяют Битриксу принимать большие zip-архивы с выгрузкой картинок от 1С.

После изменения параметров не забудьте перезапустить веб-сервер Apache или службу PHP-FPM внутри виртуальной машины с помощью консольной команды:

systemctl restart httpd или systemctl restart php-fpm (в зависимости от архитектуры вашей сборки).

Кастомизация обмена с помощью обработчиков событий в Битриксе

Часто стандартного функционала интеграции не хватает. Например, требуется автоматически изменять структуру групп товаров при импорте или особым образом рассчитывать цены для разных категорий контрагентов. Для решения таких задач в модуле торгового каталога 1С-Битрикс предусмотрены специальные события.

Рассмотрим пример добавления обработчика события OnSuccessCatalogImport1C в файл /local/php_interface/init.php локального сайта. Этот обработчик будет автоматически запускаться сразу после успешного завершения импорта товаров из 1С и выполнять дополнительную постобработку данных:


// Регистрируем обработчик события завершения импорта каталога из 1С
AddEventHandler("catalog", "OnSuccessCatalogImport1C", "MyCustomPostImportProcessing");

function MyCustomPostImportProcessing($arParams, $arFields)
{
    // Подключаем необходимые модули Битрикса
    if (\Bitrix\Main\Loader::includeModule('iblock') && \Bitrix\Main\Loader::includeModule('catalog'))
    {
        // Например, запишем лог-сообщение о дате завершения обмена
        $logFile = $_SERVER["DOCUMENT_ROOT"] . "/local/log_1c_import.txt";
        $currentDate = date("Y-m-d H:i:s");
        file_put_contents($logFile, "[" . $currentDate . "] Обмен успешно завершен. Параметры: " . print_r($arParams, true) . "\n", FILE_APPEND);
        
        // Здесь вы можете разместить любой дополнительный программный код:
        // Пересчет цен, обновление пользовательских свойств, генерация ЧПУ и т.д.
    }
}

Использование локального окружения позволяет вам свободно экспериментировать с подобными обработчиками, изменять структуру базы данных, отлаживать пошагово PHP-код с помощью XDebug и быть абсолютно уверенными в безопасности выполняемых операций.

← На главную