Bitrix D7 — PDF счёт по заказу (печать документа)
Генерация PDF для заказа через печатные формы; пример получения ссылки/контента печатной формы.
use Bitrix\Main\Loader;
use Bitrix\Sale\Order;
Loader::includeModule('sale');
$orderId = 100; // ID заказа
$order = Order::load($orderId);
if (!$order) {
die('Заказ не найден');
}
// Ищем печатную форму (например, "Счёт")
$serviceList = \Bitrix\Sale\Internals\PaySystemActionTable::getList([
'filter' => ['ACTIVE' => 'Y', 'NEW_WINDOW' => 'N'], // примерный фильтр
'select' => ['ID', 'NAME', 'ACTION_FILE', 'PS_MODE']
]);
while ($ps = $serviceList->fetch()) {
// Для некоторых платёжных систем есть printResult (html/pdf)
$service = \Bitrix\Sale\PaySystem\Manager::getObjectById($ps['ID']);
if ($service && method_exists($service, 'getHandler')) {
// В зависимости от платёжной системы может быть свой метод печати.
// Часто используется /bitrix/admin/sale_order_print.php?....
$printUrl = "/bitrix/admin/sale_order_print.php?ORDER_ID={$orderId}&doc=1&ncc=1&__bx_print=Y";
echo '<a target="_blank" href="'.$printUrl.'">Скачать счёт (PDF/печать)</a>';
break;
}
}