Настройка интеграции между решением 1С:Управление торговлей 11 (УТ11) и интернет-магазином на платформе 1С-Битрикс — одна из наиболее востребованных задач в сфере автоматизации торговли. Для успешной отладки, кастомизации обмена и тестирования неординарных сценариев выгрузки разработчику жизненно необходима полноценная локальная среда. Вести разработку на «живом» сайте клиента крайне опасно, так как любые ошибки могут привести к сбоям в реальных заказах и потере данных.
В этой статье мы подробно и по шагам разберем, как развернуть локальное окружение для интернет-магазина 1С-Битрикс на компьютере разработчика, где легально взять необходимые дистрибутивы и лицензии, как перенести сайт клиента на локальный сервер и как настроить его взаимодействие с базой 1С:УТ11.
Рассмотрим основные способы создания веб-окружения на локальном компьютере под управлением ОС Windows или macOS. Платформа 1С-Битрикс предъявляет жесткие требования к серверному программному обеспечению (версии PHP, СУБД MySQL/MariaDB, модули веб-сервера Apache/Nginx). Установка всех этих компонентов вручную непосредственно на рабочую операционную систему захламляет реестр и системные папки, а также часто приводит к конфликтам портов. Мы рекомендуем использовать изолированные контейнеры или виртуальные машины.
Проанализируем три наиболее надежных подхода:
docker-compose.yml. Начиная с лета 2025 года, компания «1С-Битрикс» предоставляет официальные Docker-образы для разработчиков.Выясним ситуацию с лицензированием платформы для целей разработки и тестирования. Многие начинающие специалисты совершают ошибку, бесконечно регистрируя новые почтовые ящики для получения временных 30-дневных триальных ключей. Разберем более цивилизованные и профессиональные подходы.
Во-первых, если вы планируете заниматься разработкой на постоянной основе, зарегистрируйтесь в бесплатной Партнерской программе 1С-Битрикс. Партнерам бесплатно предоставляется специальный ключ NFR (Not For Resale — «не для перепродажи»). Этот ключ не имеет ограничений по времени работы и отлично подходит для развертывания демонстрационных стендов, отладки обменов с 1С и разработки собственных модулей.
Во-вторых, при переносе готового интернет-магазина клиента на ваш локальный компьютер для проведения технических работ, вам вообще не нужно беспокоиться о покупке новой лицензии. Система 1С-Битрикс устроена таким образом, что при работе на локальных хостах (таких как localhost, 127.0.0.1 или локальных доменах третьего уровня типа shop.local) коммерческая лицензия вашего клиента не блокируется. Сайт будет функционировать в полном объеме, база данных развернется без ошибок. Единственным ограничением будет невозможность скачивать обновления модулей ядра напрямую из Маркетплейса (обновления нужно будет устанавливать сначала на продакшн-сервере и затем переносить код локально).
Рассмотрим процесс развертывания готовой виртуальной машины на вашем компьютере. Обратите внимание, что старая версия VMBitrix 7.2 на базе CentOS 7 официально устарела, так как жизненный цикл CentOS 7 завершился в июне 2024 года. Для современных проектов необходимо использовать актуальную версию VMBitrix 9 (базируется на современных дистрибутивах AlmaLinux 9, Rocky Linux 9 или Oracle Linux 9), так как новые модули платформы требуют PHP версии 8.2 или 8.3.
Разберем установку по шагам:
.vbox или .ovf).root и системного пользователя веб-окружения bitrix. Придумайте сложные пароли и обязательно запишите их.192.168.1.120). Введите этот адрес в строку браузера на основном компьютере — вы увидите стартовую страницу установки 1С-Битрикс.Теперь у нас есть готовый локальный веб-сервер. Посмотрим, как развернуть на нем работающий сайт интернет-магазина.
Если вам нужен чистый демо-сайт для экспериментов, выберите в браузере вариант установки нового продукта. Система предложит скачать скрипт bitrixsetup.php. Введите ваш лицензионный ключ (или выберите демонстрационный период на 30 дней) и следуйте указаниям мастера установки. Выберите редакцию «Малый бизнес» или «Бизнес» (именно в них присутствует модуль торгового каталога и интеграции с 1С) и установите типовой шаблон интернет-магазина.
Если необходимо перенести существующий проект клиента, воспользуемся штатным механизмом резервного копирования. Проанализируем этот процесс:
Настройки -> Инструменты -> Резервное копирование -> Создание резервной копии..tar.gz) на свой локальный компьютер./home/bitrix/www/) загрузите файл скрипта восстановления restore.php и файлы вашего архива.http://[IP-адрес-вашей-виртуалки]/restore.php.root, пароль — тот, который вы задали при первом запуске виртуалки, имя базы данных можно задать любое, например, sitemanager).После того как интернет-магазин развернут на локальном сервере, перейдем к настройке обмена данными. Нам необходимо связать нашу базу 1С:Управление торговлей 11 с локальным сайтом.
В современных конфигурациях 1С обмен с сайтом встроен в стандартный функционал. Разберем настройку по шагам со стороны 1С:
НСИ и администрирование -> Настройка интеграции -> Обмен с сайтом. Поставьте флаг «Разрешить обмен с сайтом».http://[IP-адрес-вашей-виртуалки]/bitrix/admin/1c_exchange.php (например, http://192.168.1.120/bitrix/admin/1c_exchange.php).Для программной проверки доступности скрипта обмена из среды 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 на виртуальной машине могут привести к падению процесса обмена по тайм-ауту. В логах 1С вы можете увидеть ошибку «Обмен не выполнен. Ответ сервера не получен».
Для предотвращения подобных ситуаций необходимо скорректировать конфигурационные файлы веб-сервера на локальной машине. Отредактируем файл настроек PHP (обычно расположен по пути /etc/php.d/z_bx_custom.ini или /etc/php.ini в VMBitrix). Установим следующие параметры:
max_execution_time = 300 — увеличивает максимальное время выполнения скрипта PHP до 5 минут.memory_limit = 512M (или более, в зависимости от объема ОЗУ вашей виртуальной машины) — выделяет достаточно памяти для обработки тяжелых XML-файлов импорта.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 и быть абсолютно уверенными в безопасности выполняемых операций.