Битрикс заказ в excel

Сложность урока:

1 уровень — интуитивно все понятно из интерфейса, но почитать стоит.


1 из 5

Дата изменения:
12.03.2023

Просмотров:
48761

Недоступно в лицензиях:

Текущую редакцию Вашего 1С-Битрикс можно просмотреть на странице Обновление платформы (Marketplace > Обновление платформы).


Ограничений нет

Как получить данные из системы в формате MS Excel

Сохранить данные из «1С-Битрикс: Управление сайтом» на локальный компьютер — достаточно частая задача. Для такой операции используется формат MS Excel. Экспорт в него прост, выполняется в пару кликов прямо из Списка элементов. Используйте для этого кнопку

Настроить




.

Если перед экспортом воспользоваться

фильтром

Фильтр — инструмент «1С-Битрикс: Управление сайтом», позволяющий отобрать из множества элементов нужные по каким-то параметрам. Подробнее…


, то можно сохранить список только нужных вам элементов, а не всех подряд. Другой вариант: настроить таблицу экспортируемых данных, оставив в ней только нужные столбцы, как это описано в уроке Список элементов.

/**

* Формирует список товаров в заказе и выгружает данные в xlsx файл

* Принимает номер заказа

* @global object $APPLICATION

* @param int $order_num

*/

function exportXlsx($order_num) {

    global $APPLICATION;

    $book = ‘list1’; //Название книги в файле

    $order = SaleOrder::load($order_num); //Объект заказа Bitrix D7

    $order_date = $order->getDateInsert()->toString(); //строка — дата создания заказа

    $basket = $order->getBasket(); //Объект корзины Bitrix D7

    include_once ‘xlsxwriter.class.php’; //Подключение библиотеки для манипуляции с xlsx

    $filename = «order_» . $order_num . «.xlsx»; //Имя сформированного файла

    /**

     * Формируем заголовки отправляемые в браузер (Что бы пользователю был предложен диалог сохранения файла)

     */

    header(‘Content-disposition: attachment; filename=»‘ . XLSXWriter::sanitize_filename($filename) . ‘»‘);

    header(«Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet»);

    header(‘Content-Transfer-Encoding: binary’);

    header(‘Cache-Control: must-revalidate’);

    header(‘Pragma: public’);

    //Шапка формируемого файла

    $header = array(

        ‘Код товара’ => ‘string’, //Название колонки — тип данных

        ‘Наименование’ => ‘string’,

        ‘Цена’ => ‘price’,

        ‘Количество’ => ‘integer’,

        ‘Номер заказа’ => ‘integer’,

        ‘Дата заказа’ => ‘string’,

    );

    //Конвертация заголовков в UTF-8 если ваш сайт Bitrix в кодировке Windows-1251

    if (SITE_CHARSET == ‘windows-1251’) {

        $header = array(

            ($APPLICATION->ConvertCharset(‘Код товара’, SITE_CHARSET, ‘UTF-8’)) => ‘string’,

            ($APPLICATION->ConvertCharset(‘Наименование’, SITE_CHARSET, ‘UTF-8’)) => ‘string’,

            ($APPLICATION->ConvertCharset(‘Цена’, SITE_CHARSET, ‘UTF-8’)) => ‘price’,

            ($APPLICATION->ConvertCharset(‘Количество’, SITE_CHARSET, ‘UTF-8’)) => ‘integer’,

            ($APPLICATION->ConvertCharset(‘Номер заказа’, SITE_CHARSET, ‘UTF-8’)) => ‘integer’,

            ($APPLICATION->ConvertCharset(‘Дата заказа’, SITE_CHARSET, ‘UTF-8’)) => ‘string’,

        );

    }

    $rows = []; //Массив данных для записи в файл

    foreach ($basket->getBasketItems() as $item) {//Обход элементов корзины Bitrix D7

        $name = $item->getField(‘NAME’);

        //Масив данных одной строки файла

        $tmp_row = [

            $item->getField(‘PRODUCT_XML_ID’), //Код товара

            $name, //Наименование

            $item->getPrice(), //Цена

            $item->getQuantity(), //Количество

            $order_num, //Номер заказа

            $order_date, //Дата заказа

        ];

        //Конвертация данных в UTF-8 если ваш сайт Bitrix в кодировке Windows-1251

        if (SITE_CHARSET == ‘windows-1251’) {

            $tmp_row = $APPLICATION->ConvertCharsetArray($tmp_row, SITE_CHARSET, ‘UTF-8’);

        }

        $rows[] = $tmp_row;

    }

    $writer = new XLSXWriter();

    $writer->setAuthor(‘Coderun’); //Автор документа

    $writer->writeSheetHeader($book, $header); //Установка шапки для указанной книги в документе

    //Добавление строки из ранее сформированного массива

    foreach ($rows as $row) {

        $writer->writeSheetRow($book, $row);

    }

//Запись файла в поток вывода

    $writer->writeToStdOut();

}

Просмотров: 1917

Задача: Нужно получить информацию о заказах с возможностью указания даты создания «от»» и «до» и выгрузить в Excel файл. Так как заказов может быть очень много, за один шаг это не провернуть (скорее всего, сайт отвалится по таймауту) нужно сделать это пошагово с небольшой паузой между шагами.

Сделано по быстрому, позже дополню заметку, завернув все проделанное в модуль с установщиком, D7 и AJAX.

Пошагово получить информацию о заказах и сохранить как Excel (xls)

Создаем директорию, например: «order_report», что бы к ней не было доступа для всех, можно создать в директории /bitrix/components

В файле init.php добавляем запись, которая создаст пункт меню в админпанели, в разделе «Сервис»:

AddEventHandler("main", "OnBuildGlobalMenu", "AddReportMenus");
function AddReportMenus(&$adminMenu, &$moduleMenu){
    $moduleMenu[] = array(
        "parent_menu" => "global_menu_services", 
        "section" => "Генератор отчетов по заказам",
        "sort"        => 1000,
        "url"         => "/bitrix/components/elements_report/step1.php",
        "text"        => 'Генератор отчетов по заказам',
        "title"       => '',
        "icon"        => "form_menu_icon",
        "page_icon"   => "form_page_icon",
        "items_id"    => "",
        "items"       => array()

    );
}

В директории «elements_report» создаем три файла: generated.xls.php, step1.php, step2.php. Файл generated.xls.php оставляем пустым

Суть в том, что мы просто создаем html таблицу с отчетом, а затем с помощью передачи header-s сохраняем и скачиваем ее как xls файл.
Таким же образом, можно создать эксель таблицу из HTML для любых данных.

Файл step1.php. Здесь у нас просто форма выбора даты «от» и «до» которая отправляет данные на файл step2.php

<? 
require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"); 
$APPLICATION->SetTitle("Генератор отчета по элементам"); 
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"); 
CJSCore::Init(array("jquery")); 
?> 
<div class="adm-block-wrapper"> 
    <form action="step2.php" method="post"> 
        <input type="text" placeholder="Дата с" onclick="BX.calendar({node: this, field: this, bTime: false});" 
               name="dateFrom"> 
        <input type="text" placeholder="Дата по" onclick="BX.calendar({node: this, field: this, bTime: false});" 
               name="dateTo"> 
        <button type="submit" class="adm-btn adm-btn-save">Создать отчет</button> 
    </form> 
</div> 
<? 
require($_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/include/epilog_admin.php"); ?> 

Файл step2.php: здесь выполняется заполнение файла generated.xls.php.

  • Сначала очищается от предыдущего отчета.
  • Добавляется шапка для верстки и заголовков.
  • С помощью CSaleOrder::GetList получаем всю информацию о заказах отсортированных по ID и с фильтром DATE_INSERT.
  • С nTopCount обрабатываем по 50 заказов за раз
  • Внутри цикла заказа дополучаем информацию о корзине заказа с CSaleBasket::GetList с нужными для отчета данным.
  • Формируем строку таблицы с данными о товаре и добавляем в конец файла generated.xls.php
<?php
require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php");
$APPLICATION->SetTitle("Генератор отчета по заказам");
CJSCore::Init(array("jquery"));
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php");
use BitrixMainLoader;
use BitrixSale;
Loader::includeModule("sale");
$generated_xls_php = 'generated.xls.php';
if (!empty($_POST['lastOrderId'])) {
    $arFilter = array(
        ">=DATE_INSERT" => $_POST['dateFrom'],
        "<=DATE_INSERT" => $_POST['dateTo'],
        ">ID" => $_POST['lastOrderId']
    );
} else {
    $arFilter = array(
        ">=DATE_INSERT" => $_POST['dateFrom'],
        "<=DATE_INSERT" => $_POST['dateTo']
    );
    file_put_contents($generated_xls_php, '');
    $fileHeader = '<?
Header("Content-Type: application/force-download");
Header("Content-Type: application/octet-stream");
Header("Content-Type: application/download");
Header("Content-Disposition: attachment;filename=excel_orders.xls");
Header("Content-Transfer-Encoding: binary");
?>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style>
        td {
            mso-number-format: @;
        }

        .number0 {
            mso-number-format: 0;
        }

        .number2 {
            mso-number-format: Fixed;
        }
    </style>
</head>
<body>

<table border="1">
    <tr>
        <td>ID заказа</td>
        <td>ID товара</td>
        <td>Наименование товара</td>
        <td>Наименование [ID] товара</td>
        <td>Заказ: Доставка</td>
        <td>Оплата: Дата оплаты</td>
        <td>Оплата: Сумма</td>
        <td>Отгрузка: Дата отгрузки</td>
        <td>Общее количество в заказе</td>
        <td>Цена товара</td>
        <td>Скидка на товар</td>
        <td>Количество товара</td>
        <td>Сумма товара</td>
        <td>Налог (%)</td>
        <td>Оплата: Дата докуммента возврата</td>
        <td>Статус: Наименование</td>
        <td>Заказ: Заказ отменён</td>
    </tr>';
    file_put_contents($generated_xls_php, $fileHeader, FILE_APPEND);
}

$dbRes = CSaleOrder::GetList(
    array(
        'ID' => 'ASC'
    ),
    $arFilter,
    false,
    array(
        'nTopCount' => '50'
    ),
    array(
        'ID',
        'PRICE_DELIVERY',
        'DATE_PAYED',
        'SUM_PAID',
        'DATE_DEDUCTED',
        'TAX_VALUE',
        'STATUS_ID'
    ),
    false,
);
$i = 0;
while ($order = $dbRes->Fetch()) {
    $dbBasketItems = CSaleBasket::GetList(
        array("NAME" => "ASC",),
        array("ORDER_ID" => $order['ID']),
        false,
        false,
        array("PRODUCT_ID", "QUANTITY", "NAME", "PRICE", "DISCOUNT_VALUE")
    );
    while ($arItems = $dbBasketItems->Fetch()) {
        $arBasketItems[] = $arItems;
    }
    if ($order['CANCELED'] == 'Y') {
        $canceled = 'Да';
    }

    $statusList = CSaleStatus::GetList(
        array(),
        array('ID' => $order['STATUS_ID']),
        false,
        false,
        array('NAME')
    );
    while ($status = $statusList->Fetch()) {
        $statusName = $status['NAME'];
    }

    foreach ($arBasketItems as $k => $arBasketItem) {
        $orderData = '<tr>
                    <td>' . $order['ID'] . '</td>
                    <td>' . $arBasketItem['PRODUCT_ID'] . '</td>
                    <td>' . $arBasketItem['NAME'] . '</td>
                    <td>' . $arBasketItem['NAME'] . ' [' . $arBasketItem['PRODUCT_ID'] . ']</td>
                    <td>' . $order['PRICE_DELIVERY'] . '</td>
                    <td>' . $order['DATE_PAYED'] . '</td>
                    <td>' . $order['SUM_PAID'] . '</td>
                    <td>' . $order['DATE_DEDUCTED'] . '</td>
                    <td>' . $arBasketItem['QUANTITY'] . '</td>
                    <td>' . $arBasketItem['PRICE'] . '</td>
                    <td>' . $arBasketItem['DISCOUNT_VALUE'] . '</td>
                    <td>' . $arBasketItem['QUANTITY'] . '</td>
                    <td>' . $arBasketItem['QUANTITY'] * $arBasketItem['PRICE'] . '</td>
                    <td>' . $order['TAX_VALUE'] . '</td>
                    <td>' . $order['DATE_CANCELED'] . '</td>
                    <td>' . $statusName . '</td>
                    <td>' . $canceled . '</td>
                  </tr>';
        file_put_contents($generated_xls_php, $orderData, FILE_APPEND);
    }
    $i++;
    $lastOrderId = $order['ID'];
}
if ($i > 1) { ?>
    <form action="" method="post" id="postStep" style="display: none;">
        <input type="text" name="lastOrderId" value="<?= $lastOrderId ?>">
        <input type="text" name="dateFrom" value="<?= $_POST['dateFrom'] ?>">
        <input type="text" name="dateTo" value="<?= $_POST['dateTo'] ?>">
        <button type="submit"></button>
    </form>
<div class="waitwindow" style="width: 500px;">
            Отчет готовится с шагом <?=$i?> заказов за запрос и паузой 1 секунда
</div>
    <script>
        function postForm() {
            $("#postStep").submit();
        }
        setTimeout(postForm, 1000);
    </script>
<?php
} else {
    file_put_contents($generated_xls_php, '</table></body></html>', FILE_APPEND);?>
    <a href="generated.xls.php" class="adm-btn adm-btn-save">Скачать отчет</a>
    <a href="step1.php" class="adm-btn adm-btn-save">Создать новый отчет</a>
    <?php
    //LocalRedirect('generated.xls.php');
}?>
<?php
require($_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/include/epilog_admin.php"); ?>
  • В конце обработки пороции из 50-ти заказов, отправляем форму на этуже страницу- с изначально заданными датами и ID последнего обработанного заказа.
  • Эта форма будет отправляться до тех пор, пока колличество заказов больше одного. После обработки последнего выведутся ссылки на скачивание отчета и создание нового.

При желании можете расскомментировать строку LocalRedirect(‘generated.xls.php’);, тогда отчет скачается сразу по готовности.

Улучшение, генерируем xls сразу, без промежуточного php файла

Если файл generated.xls.php получается очень большим, сервер может не справиться с отдачей его как xls файла. На самом деле, можно сразу создать xls файл с таблицей, он точно также откроется экселем.

В файле step2.php меняем
$generated_xls_php = ‘generated.xls.php’;

на $generated_xls_php = ‘generated.xls’;

Из заголовка генерируемого файла убираем:

<?
Header("Content-Type: application/force-download");
Header("Content-Type: application/octet-stream");
Header("Content-Type: application/download");
Header("Content-Disposition: attachment;filename=excel_orders.xls");
Header("Content-Transfer-Encoding: binary");
?>

Ссылку на скачивание готового отчета меняем на:

<a href="generated.xls" download class="adm-btn adm-btn-save">
	Скачать отчет
</a>

{«id»:13915,»url»:»/distributions/13915/click?bit=1&hash=6bf6b0c7853c287bb5fe5adc65c64f0b629d0dc4b99b11aef464193a2f3383de»,»title»:»u041fu0440u043eu0434u0432u0438u0433u0430u0442u044cu0441u044f u0434u0430u0436u0435 u043fu0440u0438 u0432u044bu0441u043eu043au043eu0439 u043au043eu043du043au0443u0440u0435u043du0446u0438u0438″,»buttonText»:»u041du0430u0443u0447u0438u0442u044cu0441u044f»,»imageUuid»:»c74bb768-53df-5ae8-9544-76ab96b50911″,»isPaidAndBannersEnabled»:false}

Сегодня расскажем как экспортировать из Битрикс24 базу клиентов в Excel.

Рассмотрим на примере экспорта Лидов.

Инструкция:

  1. Войдите в свой Битрикс24 и выберите в верхнем меню раздел Лиды

2. Далее настройте фильтр лидов, которые хотите экспортировать. Для этого нажмите на строку Поиск. В новом окне выберите какие Лиды вас интересуют и нажмите кнопку Найти

3. Теперь нажмите на опцию Список в верхнем углу справа, чтобы увидеть все Лиды в виде списка

4. В этом списке нужно выделить все Лиды (поставьте галочку)

5. Внизу списка нужно указать выбор Для всех

6. После чего нажмите кнопку Подтвердить

7. Затем нажмите на кнопку Настройки (Шестеренка) и выберите в предложенном списке опцию Экспорт Лидов в Excel

8. В новом окошке нужно указать в каком виде экспортировать Лиды, выбрать можно все, поставив галочки, потом нажмите кнопку Выполнить

9. Появится окошко Экспорт Лидов в Excel, здесь будет указан размер файла. Здесь нажмите кнопку Скачать файл экспорта

10. Появится новое окно, с загружаемым файлом. В котором нужно нажать кнопку Сохранить

11. Откройте скачанный файл и нажмите кнопку Разрешить редактирование. Теперь ваша база клиентов размещена в таблице Excel, где все данные и поля при экспорте успешно сохранились

Все, готово! Такой же алгоритм действий применим к экспорту Компаний, Сделок и Контактов из Битрикс24 в Excel.

❗❗❗Важно! Чтобы избежать воровства базы клиентов из Битрикс24, необходимо правильно настроить права доступа.

Как защитить Лиды, Сделки, Контакты и Компании от кражи в Битрикс24?

Инструкция:

  1. В Битрикс24 в верхнем меню нажмите на раздел Настройки и выберите подраздел Права.

2. Далее нажмите на блок Права

3. Открылось окно Права Доступа. Здесь есть Список ролей, выберите нужное из этого списка и нажмите Редактировать (маленький карандашик сбоку)

4. Теперь в окне Управление ролью вы можете в каждом Разделе (Экспорт, Удаление) выбрать опцию Нет доступа.

Теперь ваша база данных будет в целости и сохранности.

Подробнее смотрите наши видео здесь.

О том как выгрузить базу в Битрикс24 смотрите здесь.

⚠ Получите консультацию по внедрению, настройке, технической поддержки Битрикс24:

➡ по телефону (WhatsApp 💬) ☎: +7 (999) 333-17-23

🔊 Подписывайтесь на Telegram канал — получайте новые видео и статьи по возможностям Битрикс 24, обучающие видео Битрикс24, кейсы по Битрикс24 https://t.me/b24_k

🔊 Присоединяйтесь к чату взаимопомощи по Битрикс24 в Telegram! https://t.me/b24help

✅ В этом чате Вы можете задать любой вопрос по работе с Битрикс24, Вам ответят компетентные пользователи 🤗

Logo

Хотите повысить эффективность бизнес-процессов?

Получите оценку работ по внедрению Битрикс24

Как из Битрикс24 выгрузить всю клиентскую базу в Excel?

  • отдельно Лиды
  • отдельно Сделки
  • Контакты
  • Компании

Чтобы экспортировать клиентскую базу в Excel необходимо:

1. Перейти в нужный раздел (Лиды/Сделки/Контакты/Компании)

2. Нажать на шестеренку справа сверху и выбрать пункт «Экспорт в Excel»

  • Если вы не укажите ни одного из предложенных пунктов, то база выгрузится с теми данными, которые сейчас у вас отображаются на экране — в списке Лидов/Сделок/Контактов/Компаний
  • Если вы укажете «Экспортировать реквизиты», то выгрузка будет содержать значения из специального раздела «Реквизиты»
  • Если вы укажете «Экспортировать все поля Контактов/Сделок/Лидов/Компаний», то вы выгрузите данные из всех полей, которые есть в Лиде, Сделке, Контакте или Компании
  • Если вы укажете «Экспортировать с детализацией по товарным позициям», то при выгрузке Сделок у вас также будет отображаться список товаров в каждой сделке.

Выглядеть выгрузка с товарами будет примерно так:

4. После уточнения деталей экспорта нажмите на кнопку «Выполнить» — Битрикс24 сформирует для вас файл для экспорта.
Затем скачайте его, нажав на кнопку «СКАЧАТЬ».
Затем можно закрыть окошко экспорта. Всё.

ПРОБЛЕМЫ С ЭКСПОРТОМ
Иногда может случиться такое, что система вам указывает, что у вас нет данных для экспорта. При этом база клиентов есть.
Это происходит из-за того, что в карточке клиента установлена галочка «Не участвует в экспорте»

Это правило можно изменить массово.
Для этого:
1. выберите все элементы сразу (Контакты, например) — галочкой слева сверху
2. внизу нажмите на кнопку «Выберите действие»
3. выберите пункт «Участвует в экспорте»
4. можете установить галочку так же и в пункте «для всех», но аккуратнее. — действие будет применено абсолютно для всех элементов (всех Контактов, например). Если вам нужно сделать доступными для экспорта только часть элементов, то тогда не нужно устанавливать эту галочку и наоборот.
5. после этого вы сможете экспортировать базу клиентов

Как выгрузить контакты из Битрикс24 в Excel

Чтобы выгрузить контакты из CRM нужно перейти в Контакты ㄧ режим «Список».
Сначала выбираем, какие поля должны отображаться в режиме список. Для этого нажимаем на иконку шестеренки слева и ставим галочки напротив пунктов, которые должны отобразиться в списке.

Указываем в поле «Участвуют в экспорте» значение «Да».

Кликаем на шестеренку ㄧ выбираем «Экспорт контактов в Excel». Указываем, нужно ли экспортировать реквизиты и все поля. Применяем настройки, сохраняем и открываем документ.

Экспорт данных в CRM Битрикс24

Иван Иванов

Для экспорта данных необходимо перейти в тот список сущностей, которые вы хотите экспортировать, далее нажмите на кнопку настроек в списке сущностей и вы увидите доступные варианты для экспорта.

На данный момент есть три варианта экспорта сущностей из CRM:

1. Экспорт в CSV.

После выбора этого способа система предложит вам сохранить файл в формате CSV.

Вы также можете открыть файл сразу в соответствующей программе.

2. Экспорт в Excel.

3. Экспорт в Outlook.

По клику на этот способ система предложит открыть Microsoft Outlook. Нажмите «Ок». Программа запросит у вас разрешение к подключению контактов, нажмите «Да». Во всплывающем окне введите логин и пароль от вашего портала. И после этого будет произведен экспорт контактов.

Обратите внимание, данный способ доступен только для контактов.

Внимание! Для корректной интеграции контактов с Outlook необходим минимум Outlook 2007.

Какие колонки будут экспортированы?

Колонки в файле экспорта будут такие же, как на странице списка элементов. Добавить/изменить/удалить колонки можно в настройках списка:

В списке полей отметьте поля, которые хотите экспортировать, и в конце списка нажмите «Применить».

Учитывается ли фильтр при экспорте?

При экспорте будет учтено применен ли фильтр к списку сущностей.
Например, вам необходимо экспортировать только ваши контакты, где вы установлены, как ответственный.

Тогда в фильтре в поле «Ответственный» укажите себя, нажмите «Найти» и после этого произведите экспорт, сущности будут экспортированы в соответствии с фильтром.

Обратите внимание, для успешного экспорта контактов в настройках контакта должна быть отмечена опция «Участвует в экспорте контактов».


<?
define('NO_KEEP_STATISTIC', true);
define('NOT_CHECK_PERMISSIONS', true);
define('NO_AGENT_STATISTIC', true);
define('STOP_STATISTICS', true);
define('BX_CRONTAB_SUPPORT', true);
define('LANGUAGE_ID', 'ru');

ini_set('memory_limit', '512M');

@set_time_limit(0);
@ignore_user_abort(true);

// для запуска на cron необходимо указать корректный путь к корневой папке сайта
$_SERVER["DOCUMENT_ROOT"] = "/home/bitrix/www";

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

$file = $_SERVER["DOCUMENT_ROOT"] . '/export/orders.xls';

CModule::IncludeModule("sale");
use Bitrix\Sale;


$arFilter = Array(
    ">=DATE_INSERT" => date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")),  strtotime('yesterday')),
    "<DATE_INSERT" => date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")),  strtotime('today'))
);

$arOrders = array();
$db_sales = CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), $arFilter);
$i = 0;
while ($ar_sales = $db_sales->Fetch())
{

    $basket = Sale\Order::load($ar_sales['ID'])->getBasket();
    $basketItems = $basket->getBasketItems();
    $counter = 0;
    foreach ($basket as $basketItem) {
        $productId = $basketItem->getProductId();
        $measure = \Bitrix\Catalog\ProductTable::getCurrentRatioWithMeasure($productId);
        $arOrders[$i]['ITEMS'][$counter] = $basketItem->getField('NAME') . ' - ' . $basketItem->getQuantity() . ' ' . $measure[$productId]['MEASURE']['SYMBOL_RUS'];
        $counter++;
    }
    $arOrders[$i]['DATE_INSERT_FORMAT'] = $ar_sales['DATE_INSERT_FORMAT'];
    $arOrders[$i]['ID'] = $ar_sales['ID'];
    $arOrders[$i]['PRICE_DELIVERY'] = $ar_sales['PRICE_DELIVERY'];
    $arOrders[$i]['PRICE'] = $ar_sales['PRICE'];
    $i++;
}

//echo "<pre>";
//print_r($arOrders);
//echo "</pre>";
$str = "";
$str .= "<html>
<head>
    <title></title>
    <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
    <style>
        td {mso-number-format:\@;}
        .number0 {mso-number-format:0;}
        .number2 {mso-number-format:Fixed;}
    </style>
</head>
<body><table border='1'>

    <tr>
        <td>Дата заказа</td>
        <td>Номер заказа</td>
        <td>Стоимость доставки</td>
        <td>Полная стоимость заказа</td>
        <td>Позиции</td>        
    </tr>";

foreach ($arOrders as $order)
{
    $rowspan = count($order['ITEMS']) > 1 ? 'rowspan="' . count($order['ITEMS']) . '"' : '';
    $str .= "
        <tr>
            <td {$rowspan}>{$order['DATE_INSERT_FORMAT']}</td>
            <td {$rowspan}>{$order['ID']}</td>
            <td {$rowspan}>{$order['PRICE_DELIVERY']}</td>
            <td {$rowspan}>{$order['PRICE']}</td>
            <td>{$order['ITEMS'][0]}</td>        
        </tr>
    ";

    if(count($order['ITEMS']) > 1) {
        foreach ($order['ITEMS'] as $key => $value) {
            if($key == 0) continue;
            $str .= "
                <tr>
                    <td>{$value}</td>
                </tr>
            ";
        }
    }

}

$str .= "</table></body></html>";

//echo $str;


$fp = fopen($file, 'w');
fwrite($fp, $str);
fclose($fp);

$arFiles = array($file);
CEvent::Send("ORDERS_EXPORT", 's2', array(), "N", "", $arFiles);

Приложение позволяет выгрузить задачи из Bitrix24 в MS Excel для дальнейшего редактирования, добавления и массового удаления задач, с возможностью загрузить обратно все задачи с изменениями из файла MS Excel в Bitrix24.

Описание на сайте разработчика — ссылка

Особенности:
1. Не допускается создание задач без указания названия и ответственного.
2. Для того, чтобы создать новую задачу требуется поле ID оставить пустым, иначе произойдет обновление задачи с указанным ID/

Версия 1

Данное приложение позволяет импортировать/экспортировать задачи из Bitrix24 в MS Excel и обратно.

Обращения в техподдержку принимаются по адресу admin@jnas.ru или https://t.me/bitrix24excel

Возможности/ограничения/особенности приложения:
1. Поддержка файлов MS Excel с расширением xlsx.
2. Двунаправленная конвертация Bitrix24 ⇆ MS Excel.
3. Не допускается создание задач без указания названия и ответственного.

Видеоинструкция по использованию приложения:

  • Bitrix24 Задачи ⇆ MS Excel (пример работы) — https://youtu.be/NBC2v-HSDsI

Сегодня расскажем как экспортировать из Битрикс24 базу клиентов в Excel.

Рассмотрим на примере экспорта Лидов.

Инструкция:

1

Войдите в свой Битрикс24 и выберите в верхнем меню раздел Лиды

2

Далее настройте фильтр лидов, которые хотите экспортировать. Для этого нажмите на строку Поиск. В новом окне выберите какие Лиды вас интересуют и нажмите кнопку Найти.

3

Теперь нажмите на опцию Список в верхнем углу справа, чтобы увидеть все Лиды в виде списка

4

В этом списке нужно выделить все Лиды (поставьте галочку)

5

Внизу списка нужно указать выбор Для всех 

6

После чего нажмите кнопку Подтвердить

7

Затем нажмите на кнопку Настройки (Шестеренка) и выберите в предложенном списке опцию Экспорт Лидов в Excel

8

В новом окошке нужно указать в каком виде экспортировать Лиды, выбрать можно все, поставив галочки, потом нажмите кнопку Выполнить

9

Появится окошко Экспорт Лидов в Excel, здесь будет указан размер файла. Здесь нажмите кнопку Скачать файл экспорта

10

Появится новое окно, с загружаемым файлом. В котором нужно нажать кнопку Сохранить 

11

Откройте скачанный файл и нажмите кнопку Разрешить редактирование. Теперь ваша база клиентов размещена в таблице Excel, где все данные и поля при экспорте успешно сохранились

Все, готово! Такой же алгоритм действий применим к экспорту Компаний, Сделок и Контактов из Битрикс24 в Excel.

Важно! Чтобы избежать воровства базы клиентов из Битрикс24, необходимо правильно настроить права доступа.

Как защитить Лиды, Сделки, Контакты и Компании от кражи в Битрикс24?

Инструкция:

1

В Битрикс24 в верхнем меню нажмите на раздел Настройки и выберите подраздел Права.

2

Далее нажмите на блок Права

3

Открылось окно Права Доступа. Здесь есть Список ролей, выберите нужное из этого списка и нажмите Редактировать (маленький карандашик сбоку)

4

Теперь в окне Управление ролью вы можете в каждом Разделе (Экспорт, Удаление) выбрать опцию Нет доступа.

Теперь ваша база данных будет в целости и сохранности.

Новое в блоге:

В техническую поддержку входит:

1 Создание схемы-логики Битрикс24
⠀⠀ 1.1 Создание схемы-логики операционных бизнес-процессов продаж (прохождения сделки), автоматических действий и процессов и интеграций с сервисами
2 Подключение аккаунта облачной/коробочной версии Битрикс24 на выбранный тариф
3 Заведение аккаунтов для всех сотрудников
4 Создание многоуровневой оргструктуры
5 Оптимизация карточек лидов, сделок, контактов, компаний
⠀⠀ 5.1 Создание полей тип: строка, список, дата/время, адрес Google карты, ссылка, файл, деньги, да/нет, число
⠀⠀ 5.2 Создание обязательных к заполнению полей
⠀⠀ 5.3 Создание поля Бронирование ресурсов
⠀⠀ 5.4 Создание полей с привязкой к справочникам и элементам CRM
⠀⠀ 5.5 Создание полей с привязкой к разделам и элементам инфоблоков
⠀⠀ 5.6 Создание дополнительных разделов в карточках лида, сделки, контакта, компании
⠀⠀ 5.7 Создание зависимых полей
⠀⠀ 5.8 Создание полей-калькуляторов
6 Настройка справочников CRM Битрикс24
⠀⠀ 6.1 Создание источников лида, сделки
⠀⠀ 6.2 Настройка типов контакта
⠀⠀ 6.3 Настройка типов компании
⠀⠀ 6.4 Настройка типов сделки
⠀⠀ 6.5 Настройка списка сферы деятельности клиента
⠀⠀ 6.6 Настройка списка причин провала лида
⠀⠀ 6.7 Настройка списка причин провала сделки
7 Настройка стадий(воронок) и статусов(этапов) лидов и сделок
8 Настройка фильтров в CRM (в Лидах, Сделках, Контактах и Компаниях)
9 Настройка фильтров Задач и Дел
10 Настройка прав доступа к CRM Битрикс24
11 Интеграция Битрикс24 с Email
12 Интеграция Битрикс24 с телефонией
⠀⠀ 12.1 Подключение сотовых номеров телефонов
⠀⠀ 12.2 Создание схемы-логики входящего, исходящего, пропущенного звонка
⠀⠀ 12.3 Подключение IP телефонии Битрикс24 или любой другой, имеющую интеграцию с Битрикс24
13 Интеграция Битрикс24 с сайтами и интернет-магазинами
14 Интеграция Битрикс24 с мессенджерами и соц. сетями
15 Автоматизация Битрикс24
⠀⠀ 15.1 Настройка автоматической постановки задач по условиям, согласно бизнес-процессу
⠀⠀ 15.2 Настройка автоматического уведомления руководителю о просроченных стадиях обработки лида, сделки
⠀⠀ 15.3 Настройка автоматической отправки уведомлений (через почту, соц. сети, мессенджеры)
⠀⠀ 15.4 Настройка автоматического показа контекстной и таргетинговой рекламы
⠀⠀ 15.5 Настройка автоматической генерации документов (Коммерческого предложения, счета, договора, квитанции)
⠀⠀ 15.6 Настройка автоматического изменения данных сделки, контакта, компании
⠀⠀ 15.7 Настройка автоматического перемещения сделки при выполнении задач или изменения сущности (бизнес-процессов)
16 Автоворонки в Битрикс24
⠀⠀ 16.1 Настройка автоворонки(ок) для проваленных сделок
⠀⠀ 16.2 Настройка автоворонки(ок) для успешных сделок
⠀⠀ 16.3 Настройка автоворонки(ок) для действующих клиентов
17 Обучение Битрикс24
⠀⠀ 17.1 Базовое обучение по работе в Битрикс24
⠀⠀ 17.2 Обучение всех сотрудников настроенным процессам
⠀⠀ 17.3 Обучение руководителей аналитике и точкам контроля в системе
18 Консультации
⠀⠀ 18.1 Информационная поддержка и консультация
⠀⠀ 18.2 Техническая поддержка, включая доработки и корректировки
⠀⠀ 18.3 Написание регламентов и инструкций с загрузкой в базу знаний
⠀⠀ 18.4 Ежемесячный аудит системы и работы сотрудников с отчетом и рекомендациями для руководителей

В техническую поддержку + входит:

1 Создание схемы-логики Битрикс24
⠀⠀ 1.1 Создание схемы-логики операционных бизнес-процессов продаж (прохождения сделки), автоматических действий и процессов и интеграций с сервисами
⠀⠀ 1.2 Создание инструкций по работе с CRM Битрикс24 для пользователей
2 Подключение аккаунта облачной/коробочной версии Битрикс24 на выбранный тариф
3 Заведение аккаунтов для всех сотрудников
4 Создание многоуровневой оргструктуры
5 Оптимизация карточек лидов, сделок, контактов, компаний
⠀⠀ 5.1 Создание полей тип: строка, список, дата/время, адрес Google карты, ссылка, файл, деньги, да/нет, число
⠀⠀ 5.2 Создание обязательных к заполнению полей
⠀⠀ 5.3 Создание поля Бронирование ресурсов
⠀⠀ 5.4 Создание полей с привязкой к справочникам и элементам CRM
⠀⠀ 5.5 Создание полей с привязкой к разделам и элементам инфоблоков
⠀⠀ 5.6 Создание дополнительных разделов в карточках лида, сделки, контакта, компании
⠀⠀ 5.7 Создание зависимых полей
⠀⠀ 5.8 Создание полей-калькуляторов
6 Настройка справочников CRM Битрикс24
⠀⠀ 6.1 Создание источников лида, сделки
⠀⠀ 6.2 Настройка типов контакта
⠀⠀ 6.3 Настройка типов компании
⠀⠀ 6.4 Настройка типов сделки
⠀⠀ 6.5 Настройка списка сферы деятельности клиента
⠀⠀ 6.6 Настройка списка причин провала лида
⠀⠀ 6.7 Настройка списка причин провала сделки
7 Настройка стадий(воронок) и статусов(этапов) лидов и сделок
8 Настройка фильтров в CRM (в Лидах, Сделках, Контактах и Компаниях)
9 Настройка фильтров Задач и Дел
10 Настройка прав доступа к CRM Битрикс24
11 Интеграция Битрикс24 с Email
12 Интеграция Битрикс24 с телефонией
⠀⠀ 12.1 Подключение сотовых номеров телефонов
⠀⠀ 12.2 Создание схемы-логики входящего, исходящего, пропущенного звонка
⠀⠀ 12.3 Создание ТЗ для интеграции телефонии с Битрикс24
⠀⠀ 12.4 Подключение IP телефонии Битрикс24 или любой другой, имеющую интеграцию с Битрикс24
⠀⠀ 12.5 Подключение IP телефонии не имеющую интеграции с Битрикс24
⠀⠀ 12.6 Подключение и настройка звонобота
13 Интеграция Битрикс24 с сайтами и интернет-магазинами
14 Интеграция Битрикс24 с мессенджерами и соц. сетями
15 Автоматизация Битрикс24
⠀⠀ 15.1 Настройка автоматической постановки задач по условиям, согласно бизнес-процессу
⠀⠀ 15.2 Настройка автоматического уведомления руководителю о просроченных стадиях обработки лида, сделки
⠀⠀ 15.3 Настройка автоматической отправки уведомлений (через почту, соц. сети, мессенджеры)
⠀⠀ 15.4 Настройка автоматического показа контекстной и таргетинговой рекламы
⠀⠀ 15.5 Настройка автоматической генерации документов (Коммерческого предложения, счета, договора, квитанции)
⠀⠀ 15.6 Настройка автоматического изменения данных сделки, контакта, компании
⠀⠀ 15.7 Настройка чат-ботов для авто ответов в мессенджеры и соц. сети
⠀⠀ 15.8 Настройка автоматических многошаговых задач (бизнес-процессов)
⠀⠀ 15.9 Настройка автоматического перемещения сделки при выполнении задач или изменения сущности (бизнес-процессов)
16 Автоворонки в Битрикс24
⠀⠀ 16.1 Настройка автоворонки(ок) для проваленных сделок
⠀⠀ 16.2 Настройка автоворонки(ок) для успешных сделок
⠀⠀ 16.3 Настройка автоворонки(ок) для действующих клиентов
17 Настройка CRM маркетинга
⠀⠀ 17.1 Подключение автоматической рассылки на Email из этапов воронки
⠀⠀ 17.2 Подключение автоматической рассылки в мессенджеры и соц. сети из этапов воронки
⠀⠀ 17.3 Подключение автоматической таргетинговой рекламы Google ads, Facebook, Instagram, ВКонтакте из этапов воронки
⠀⠀ 17.4 Создание сегментов аудитории и подключение рекламы и рассылок из раздела CRM маркетинг
⠀⠀ 17.5 Создание аудиторий, кампаний и рекламных объявлений в Яндекс директе, Google ads, Facebook, ВКонтакте
18 Интеграция Битрикс24 с 1С
19 Интеграция Битрикс24 с МойСклад
20 Настройка аналитических отчетов, сквозной аналитики, подключение колл-трекинга
21 Создание дополнительных сущностей в Битрикс24
22 Настройка Бизнес-процессов Битрикс24
23 Обучение Битрикс24
⠀⠀ 23.1 Базовое обучение по работе в Битрикс24
⠀⠀ 23.2 Обучение всех сотрудников настроенным процессам
⠀⠀ 23.3 Обучение руководителей аналитике и точкам контроля в системе
⠀⠀ 23.4 Обучение сотрудника CRM маркетингу
⠀⠀ 23.5 Обучение администратора портала Битрикс24
24 Консультации
⠀⠀ 24.1 Информационная поддержка и консультация
⠀⠀ 24.2 Техническая поддержка, включая доработки и корректировки
⠀⠀ 24.3 Написание регламентов и инструкций с загрузкой в базу знаний
⠀⠀ 24.4 Ежемесячный аудит системы и работы сотрудников с отчетом и рекомендациями для руководителей
⠀⠀ 24.5 Еженедельный аудит системы и работы сотрудников с отчетом и рекомендациями для руководителей ​

0 / 0 / 0

Регистрация: 30.08.2018

Сообщений: 4

1

30.08.2018, 16:07. Показов 2147. Ответов 2


Студворк — интернет-сервис помощи студентам

Приветствую.
Необходимо дать возможность покупателю (не важно авторизован он или нет) скачать свой заказ в формате excel, на странице оформления заказа (самая последняя страница).
В excele должно быть наименование товара, артикул, цена, описание и изображение товара.
То есть пошагово:
1. Покупатель добавляет товары в корзину из каталога
2. В корзине оформляет заказ, вводит свои данные
3. После оформления заказа попадает на страницу успешного оформления, где должна быть кнопка скачать заказ в excel

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

Заранее спасибо.



0



8 / 16 / 2

Регистрация: 15.06.2015

Сообщений: 247

31.08.2018, 04:58

2

Можно брать все свойства заказа через апи битрикса и записывать все в csv файл посредством php. Но тут придется ручками код писать) других способов не знаю.



0



2208 / 1139 / 227

Регистрация: 16.03.2008

Сообщений: 5,394

Записей в блоге: 2

31.08.2018, 09:07

3

Как вариант сделать шаблон для компонента детальной страницы заказа. Только в конце result_modifier.php сделать:
1. Сброс буфера $APPLICATION->RestartBuffer();
2. Установить правильные HTTP заголовки
2. формирование и вывод XLS
3. die().

Для формирования взять готовую библиотеку

Кроме того, если у покупателя нет необходимости редактировать этот файл, более логично, на мой взгляд, формировать PDF — точно ни чего не «разъедется». (готовые библиотеки так же есть)



0



Like this post? Please share to your friends:
  • Битрикс выгрузка товаров в excel
  • Биография есенина скачать word
  • Битрикс выгрузка прайса в excel
  • Биография в формате word
  • Битрикс 24 таблица excel