65 просмотров

ЮКасса отображать чеки в админке

На момент написания статьи интеграция с чеками ЮКассы реализована не до конца, а именно - нет ссылок на просмотр чеков ни в списке чеков, ни в заказе.

Что бы это починить, прийдется лезть в ядро и вносить правки - после обновлений правки слетят, так что нужно будет каждый раз правки вносить, пока этот функционал не выйдет в стандартном исполнении.
Тикет №4042586 в техподдержку 1С-Битрикс создан, остаётся только ждать.

Необходимо поправить файл /bitrix/modules/sale/lib/cashbox/cashboxyookassa.php:
1) Добавляем метод, позволяющие отображать чеки для кассы ЮКасса
    protected static function isSupportedDirectCheckLink(): bool
    {
        return true;
    }

2) Ищем кусок кода в методе extractCheckData
$result['LINK_PARAMS'] = [
				AbstractCheck::PARAM_FISCAL_DOC_ATTR => $data['fiscal_attribute'],
				AbstractCheck::PARAM_FISCAL_DOC_NUMBER => $data['fiscal_document_number'],
				AbstractCheck::PARAM_FN_NUMBER => $data['fiscal_storage_number'],
				AbstractCheck::PARAM_FISCAL_RECEIPT_NUMBER => $data['fiscal_provider_id'],
				AbstractCheck::PARAM_DOC_SUM => (float)$check->getField('SUM'),
				AbstractCheck::PARAM_CALCULATION_ATTR => $check::getCalculatedSign(),
			];

и добавляем в этот массив ещё строку, чтоб получилось так:
$result['LINK_PARAMS'] = [
				AbstractCheck::PARAM_FISCAL_DOC_ATTR => $data['fiscal_attribute'],
				AbstractCheck::PARAM_FISCAL_DOC_NUMBER => $data['fiscal_document_number'],
				AbstractCheck::PARAM_FN_NUMBER => $data['fiscal_storage_number'],
				AbstractCheck::PARAM_FISCAL_RECEIPT_NUMBER => $data['fiscal_provider_id'],
				AbstractCheck::PARAM_DOC_SUM => (float)$check->getField('SUM'),
				AbstractCheck::PARAM_CALCULATION_ATTR => $check::getCalculatedSign(),
				AbstractCheck::PARAM_OFD_RECEIPT_URL => sprintf('https://consumer.1-ofd.ru/ticket?fn=%s&i=%s&fp=%s&n=1', $data['fiscal_storage_number'], $data['fiscal_document_number'], $data['fiscal_attribute']),
			];
После этого для новых чеков появятся ссылки на просмотр в ОФД.