Интеграция учетной системы 1С с интернет-магазином на платформе «1С-Битрикс» — это сложный процесс, требующий слаженной работы двух специалистов. Часто возникает ситуация, когда программист 1С настаивает на безопасности и тестировании на копиях, а веб-разработчик утверждает, что сайт невозможно перенести на тестовый домен из-за технических особенностей. В результате проект встает на паузу, а бизнес не получает автоматизацию. Рассмотрим подробнее, как разрешить этот технический тупик и организовать работу правильно.
Первое, что нам необходимо проанализировать, — это утверждение веб-программиста о невозможности тестирования на другой площадке. В современной разработке на Битрикс зависимость функционала от конкретного домена (например, site.ru) считается признаком некачественного кода, так называемого «хардкода». Система «1С-Битрикс» спроектирована так, чтобы работать в любом окружении.
Если сайт действительно «привязан» к имени, разберем по шагам, как это исправить или обойти:
hosts своего рабочего компьютера прописать IP-адрес этого сервера для основного домена. В этом случае браузер будет открывать копию сайта, думая, что он находится на site.ru. Это позволяет тестировать любые компоненты без риска для живого сайта.https://site.ru/upload/... вместо относительных /upload/.... Нам следует поручить программисту Битрикс заменить все абсолютные ссылки на переменные окружения или относительные пути.Для безопасной работы над интеграцией мы должны настаивать на создании трехконтурной системы разработки. Посмотрим, как это выглядит на практике:
test.site.ru) и копия базы 1С. Именно здесь происходит «стыковка» двух систем. Программист 1С может многократно запускать полную выгрузку, не опасаясь затереть цены или остатки на основном сайте.Проанализируем ситуацию со стороны 1С. Часто программист отказывается от интеграции, так как понимает, что беспорядок в справочнике Номенклатура (дубли, отсутствие артикулов, пустые описания) мгновенно отобразится на сайте и отпугнет покупателей. Это не повод отказываться от автоматизации, но это требует подготовительного этапа.
Для наведения порядка нам следует использовать стандартные инструменты платформы 1С:
Рассмотрим пример кода, который может использоваться программистом 1С для проверки заполнения критически важных данных перед выгрузкой:
Для Каждого СтрокаТовара Из СписокТоваровНаВыгрузку Цикл
Если ПустаяСтрока(СтрокаТовара.Артикул) Тогда
Сообщить("Товар " + СтрокаТовара.Наименование + " не имеет артикула. Выгрузка прервана!");
Отказ = Истина;
КонецЕсли;
КонецЦикла;
Если доверие между разработчиками минимально, применим методику «разделяй и властвуй». Вместо прямой передачи данных из 1С в Битрикс по протоколу HTTP, мы можем настроить выгрузку в промежуточные файлы на FTP-сервере или локальном диске.
Алгоритм действий:
XML (CommerceML) в папку. Его зона ответственности заканчивается там, где файл успешно сформирован и содержит правильные цены.Этот метод позволяет четко определить, на чьем этапе происходит сбой, и исключает взаимные обвинения.
Если административные барьеры не позволяют создать полноценную копию сайта, рассмотрим вариант с использованием скрытых инфоблоков в Битрикс. Платформа позволяет создать на сайте второй каталог товаров, который будет недоступен обычным пользователям (не отображается в меню и поиске).
Мы можем направить выгрузку из 1С именно в этот «черновой» каталог. Это позволит увидеть, как создается структура групп, как подгружаются фотографии и свойства, не затрагивая при этом витрину основного магазина. После того как процесс будет отлажен, в настройках обмена 1С достаточно будет просто изменить ID инфоблока на основной.
Подводя итог, можно сказать, что позиция «делать только на живом сайте» является профессионально неприемлемой для веб-разработчика, а отказ программиста 1С от интеграции из-за «бардака» — это саботаж развития компании.
Рекомендации для руководителя:
Только такой структурированный подход позволит превратить «большого слона» интеграции в понятный и контролируемый процесс.