Прочитайте готовые ответы
Новые статьи
Поддержка Битрикс24
Регистрация и вход
Тарифы и оплата
Задачи и проекты
Чат и звонки
Группы
Календарь
CRM + Интернет-магазин
Диск
Сайты
База знаний
Интернет-магазин (beta)
Складской учет
Почта
CRM
CoPilot — AI в Битрикс24
Битрикс24 КЭДО
Маркетинг
Сквозная аналитика
Центр продаж (beta)
CRM-аналитика (beta)
BI Конструктор
Автоматизация
CRM.Оплата и Доставка
Интеграция 1С и Битрикс24
Компания
Бизнес-процессы
Приложения
Контакт-центр
Моя страница
Телефония
Настройки
Мой тариф
Энтерпрайз
Enterprise HRM
Мобильное приложение
Десктоп-приложение
Общие вопросы
Готовые решения для бизнеса
Битрикс24 в коробке
1С-Битрикс24: Интернет-магазин + CRM
Изменения в статьях (архив)

Поддержка24

Интеграция «1С-Битрикс: Управление сайтом» и Битрикс24

Вы можете отслеживать заказы, оплату и отгрузку товаров с магазина «1С-Битрикс: Управление сайтом» в вашем Битрикс24 с помощью специального приложения Обмен с 1С-Битрикс Управление сайтом. Для такой интеграции необходимо настроить сервер, на котором работает сайт с магазином.


Как это сделать

На большинстве серверах запрещено показывать страницы сайта в iframe-ах на сторонних ресурсах.

Вам нужно создать правило на сервере, которое разрешает открывать страницы в iframe на сторонних сайтах. Делается это с помощью добавления специального HTTP-заголовка Content-Security-Policy к страницам административного раздела:

/bitrix/admin/sale_order.php
/bitrix/admin/sale_order_create.php
/bitrix/admin/sale_order_edit.php
/bitrix/admin/sale_order_view.php
/bitrix/admin/sale_order_payment_edit.php
/bitrix/admin/sale_order_shipment_edit.php
/bitrix/admin/sale_delivery_request_view.php
/bitrix/admin/sale_delivery_request.php
/bitrix/admin/sale_app_rest_sender.php

Например, в «1C-Битрикс: Виртуальная машина» версии 7.4.4 сделать это можно так:

  1. Создать файл /etc/nginx/bx/site_avaliable/bx_exclude_x_frame.conf с таким содержимым (замените адрес вашего Битрикс24 в коде):
    location ~* ^/bitrix/admin/sale_(order|delivery|app_rest_sender).*\.php$ {
    	add_header Content-Security-Policy "frame-ancestors https://адрес_вашего_Битрикс24;";
    	proxy_pass $proxyserver;
    }
    Обратите внимание, что в целях безопасности мы указываем конкретные адреса Битрикс24, которым нужно разрешить доступ к страницам магазина в iframe – например https://portal1.bitrix24.ru. Если нужно дать доступ нескольким Битрикс24, то их адреса указываются через пробел. Можно указать только домен, а можно и конкретный адрес (например https://portal1.bitrix24.ru/section/page.php).
  2. Найти 2 конфигурационных файла вашего сайта в директории /etc/nginx/bx/site_avaliable/.

    Например, для сайта mysite.ru файлы настроек могут быть такие:

    bx_ext_mysite.ru.conf – файл настроек сайта при http-подключении.
    bx_ext_ssl_mysite.ru.conf – файл настроек сайта при https-подключении.

    И прописать в секцию server каждого файла код:

     include bx/site_avaliable/bx_exclude_x_frame.conf; 

  3. Проверить, нет ли ошибок в конфигурационных файлах nginx:
     nginx -t 
  4. Если все хорошо, далее нужно перезагрузить конфигурационные файлы nginx:

    CentOS 6:
     service nginx reload 
    CentOS 7:
     systemctl reload nginx.service 

Если вы используете «1C-Битрикс: Виртуальная машина» версии 7.5 и выше , то достаточно всего лишь создать файл /etc/nginx/bx/site_settings/<SITE_NAME>/bx_exclude_x_frame.conf с тем же содержимым из п.1. После перезапуска nginx настройки из этого файла применятся к сайту <SITE_NAME>.

Например, для сайта mysite.ru путь к файлу будет таким: /etc/nginx/bx/site_settings/mysite.ru/bx_exclude_x_frame.conf.

Если у вас свое окружение или хостинг, обратитесь к администратору или в поддержку вашего хостинга.


Проверьте также, включена ли у вас защита от фреймов в продукте «1С-Битрикс: Управление сайтом». Для этого в административной панели перейдите в раздел Настройки > Проактивная защита > Защита от фреймов. Если у вас включена защита от фреймов, то внесите страницы интеграции в Исключения:

Защита от фреймов: исключения


Ошибки и их решение

Ошибка «Invalid csrf token» может возникать из-за значения параметра SameSite в куки PHPSESSID – по умолчанию он имеет значение Lax.

Для решения проблемы нужно обновить php до версии 7.3 и выше (php 7.4 рекомендуется) и прописать в php.ini параметры:

session.cookie_secure = On session.cookie_samesite="None" 

Если нет возможности включить данные параметры в php.ini, то попробуйте прописать похожие параметры в файл .htaccess:

Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure;SameSite=None
Обращение к сайту при этом должно быть только по HTTPS.

Советуем прочитать:
Спасибо, помогло!
Спасибо :)
Не помогло
Очень жаль :(
Помощь интегратора
Это не то, что я ищу
Написано очень сложно и непонятно
Есть устаревшая информация
Слишком коротко, мне не хватает информации
Мне не нравится, как это работает