Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Получить список счетов crm.invoice.list». Вы узнаете экспертные методики работы с crm.invoice.list и научитесь избегать типичных ошибок начинающих разработчиков.
Получить список счетов crm.invoice.list
> Scope: crm
>
> Кто может выполнять метод: любой пользователь
Метод устарел. Рекомендуется использовать
Универсальные методы для счетовМетод возвращает список счетов. Является реализацией списочного метода для счетов.
При выборке используйте маски:
- «» — для выборки всех полей (без пользовательских)
- «UF_» — для выборки всех пользовательских полей.
Свойства и товарные позиции счета метод не возвращает.
Для получения свойств и товарных позиций нужно использовать метод crm.invoice.get.
Параметры метода
См. описание списочных методов.
Названиетип | Описание |
|---|---|
| filter | Фильтр записей. По умолчанию отдаются все записи, без фильтрации |
| order | Сортировка записей. Поддерживается сортировка по тем же полям, что и в фильтре |
Примеры кода
Пример выводит данные в консоль. Если нужно вывести данные по-другому, то реализуйте свою обработку данных, возвращенных вызовами result.data() и result.error().
- cURL (Webhook)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"order":{"DATE_INSERT":"ASC"},"filter":{">PRICE":100},"select":["ID","ACCOUNT_NUMBER","ORDER_TOPIC","DATE_INSERT","STATUS_ID","PRICE","CURRENCY_ID"]}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/crm.invoice.list- cURL (OAuth)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"order":{"DATE_INSERT":"ASC"},"filter":{">PRICE":100},"select":["ID","ACCOUNT_NUMBER","ORDER_TOPIC","DATE_INSERT","STATUS_ID","PRICE","CURRENCY_ID"],"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.invoice.list- JS
// callListMethod рекомендуется использовать, когда необходимо получить весь набор списочных данных и объём записей относительно невелик (до примерно 1000 элементов). Метод загружает все данные сразу, что может привести к высокой нагрузке на память при работе с большими объемами.
try {
const response = await $b24.callListMethod(
'crm.invoice.list',
{
"order": { "DATE_INSERT": "ASC" },
"filter": { ">PRICE": 100 },
"select": [ "ID", "ACCOUNT_NUMBER", "ORDER_TOPIC", "DATE_INSERT", "STATUS_ID", "PRICE", "CURRENCY_ID" ]
},
(progress) => { console.log('Progress:', progress) }
)
const items = response.getData() || []
for (const entity of items) { console.log('Entity:', entity) }
} catch (error) {
console.error('Request failed', error)
}
// fetchListMethod предпочтителен при работе с крупными наборами данных. Метод реализует итеративную выборку с использованием генератора, что позволяет обрабатывать данные по частям и эффективно использовать память.
try {
const generator = $b24.fetchListMethod('crm.invoice.list', { "order": { "DATE_INSERT": "ASC" }, "filter": { ">PRICE": 100 }, "select": [ "ID", "ACCOUNT_NUMBER", "ORDER_TOPIC", "DATE_INSERT", "STATUS_ID", "PRICE", "CURRENCY_ID" ] }, 'ID')
for await (const page of generator) {
for (const entity of page) { console.log('Entity:', entity) }
}
} catch (error) {
console.error('Request failed', error)
}
// callMethod предоставляет ручной контроль над процессом постраничного получения данных через параметр start. Подходит для сценариев, где требуется точное управление пакетами запросов. Однако при больших объемах данных может быть менее эффективным по сравнению с fetchListMethod.
try {
const response = await $b24.callMethod('crm.invoice.list', { "order": { "DATE_INSERT": "ASC" }, "filter": { ">PRICE": 100 }, "select": [ "ID", "ACCOUNT_NUMBER", "ORDER_TOPIC", "DATE_INSERT", "STATUS_ID", "PRICE", "CURRENCY_ID" ] }, 0)
const result = response.getData().result || []
for (const entity of result) { console.log('Entity:', entity) }
} catch (error) {
console.error('Request failed', error)
}- PHP
try {
$response = $b24Service
->core
->call(
'crm.invoice.list',
[
'order' => ['DATE_INSERT' => 'ASC'],
'filter' => ['>PRICE' => 100],
'select' => ['ID', 'ACCOUNT_NUMBER', 'ORDER_TOPIC', 'DATE_INSERT', 'STATUS_ID', 'PRICE', 'CURRENCY_ID'],
]
);
$result = $response
->getResponseData()
->getResult();
if ($result->error()) {
error_log($result->error());
echo 'Error: ' . $result->error();
} else {
echo 'Data: ' . print_r($result->data(), true);
if ($result->more()) {
$result->next();
}
}
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error fetching invoice list: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
"crm.invoice.list",
{
"order": { "DATE_INSERT": "ASC" },
"filter": { ">PRICE": 100 },
"select": [ "ID", "ACCOUNT_NUMBER", "ORDER_TOPIC", "DATE_INSERT", "STATUS_ID", "PRICE", "CURRENCY_ID" ]
},
function(result)
{
if(result.error())
console.error(result.error());
else
{
console.dir(result.data());
if(result.more())
result.next();
}
}
);- PHP CRest
require_once('crest.php');
$result = CRest::call(
'crm.invoice.list',
[
'order' => ['DATE_INSERT' => 'ASC'],
'filter' => ['>PRICE' => 100],
'select' => ['ID', 'ACCOUNT_NUMBER', 'ORDER_TOPIC', 'DATE_INSERT', 'STATUS_ID', 'PRICE', 'CURRENCY_ID']
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';Поля, возвращаемые методом
| Поле / Тип | Описание | Примечание |
|---|---|---|
IDinteger | Идентификатор | Только для чтения |
ACCOUNT_NUMBERstring | Номер | Обязательное |
COMMENTStext | Комментарий менеджера | |
CREATED_BYinteger | Создано пользователем | Только для чтения |
CURRENCYcrm_currency | Идентификатор валюты | Только для чтения |
DATE_BILLdate | Дата выставления | |
DATE_INSERTdatetime | Дата создания | |
DATE_MARKEDdatetime | Дата отклонения | Указывается, если счёт отклонён |
DATE_PAY_BEFOREdate | Срок оплаты | |
DATE_PAYEDdatetime | Дата перевода в состояние оплаты | Только для чтения |
DATE_STATUSdatetime | Дата изменения статуса | Только для чтения |
DATE_UPDATEdatetime | Дата изменения | Только для чтения |
EMP_PAYED_IDinteger | Идентификатор пользователя, который последним перевёл счёт в состояние «оплачен» | Только для чтения |
EMP_STATUS_IDinteger | Идентификатор пользователя, который последним поменял статус счёта | Только для чтения |
LIDinteger | Идентификатор сайта | Только для чтения |
IS_RECURRINGchar | Флаг шаблона регулярной сделки | |
XML_IDstring | Внешний код | |
ORDER_TOPICstring | Тема | Обязательное |
PAY_SYSTEM_IDinteger | Идентификатор печатной формы | Обязательное |
PAY_VOUCHER_DATEdate | Дата оплаты | Указывается, если счёт оплачен |
PAY_VOUCHER_NUMstring | Номер документа оплаты | Указывается, если счёт оплачен |
PAYEDchar | Признак оплаченности | Только для чтения |
PERSON_TYPE_IDinteger | Идентификатор типа плательщика | Обязательное |
PRICEdouble | Сумма | Только для чтения |
REASON_MARKEDstring | Комментарий статуса | Указывается, если счёт оплачен или отклонён |
RESPONSIBLE_EMAILstring | E-mail ответственного | Только для чтения |
RESPONSIBLE_IDinteger | Идентификатор ответственного | |
RESPONSIBLE_LAST_NAMEstring | Фамилия ответственного | Только для чтения |
RESPONSIBLE_LOGINstring | Логин ответственного | Только для чтения |
RESPONSIBLE_NAMEstring | Имя ответственного | Только для чтения |
RESPONSIBLE_PERSONAL_PHOTOinteger | Идентификатор фото ответственного | Только для чтения |
RESPONSIBLE_SECOND_NAMEstring | Отчество ответственного | Только для чтения |
RESPONSIBLE_WORK_POSITIONstring | Должность ответственного | Только для чтения |
STATUS_IDcrm_status | Идентификатор статуса | Идентификатор справочника «INVOICE_STATUS» |
TAX_VALUEdouble | Сумма налога | Только для чтения |
UF_COMPANY_IDinteger | Идентификатор компании | Указывается, если плательщик «Юридическое лицо» |
UF_CONTACT_IDinteger | Идентификатор контакта | Указывается, если плательщик «Физическое лицо», либо в качестве контактного лица компании |
UF_MYCOMPANY_IDinteger | Идентификатор своей компании | Указывается в качестве компании с реквизитами счёта (привязка к реквизитам устанавливается отдельно) |
UF_DEAL_IDinteger | Идентификатор связанной сделки | |
UF_QUOTE_IDinteger | Идентификатор связанного коммерческого предложения | |
USER_DESCRIPTIONstring | Комментарий |
💡 Экспертное мнение и рекомендации
Советы эксперта по интеграции:
- Всегда используйте кэширование при частых запросах к crm.invoice.list, чтобы разгрузить базу данных.
- Соблюдайте стандарты PSR при написании обработчиков для «Получить список счетов crm.invoice.list».
- Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru