Счета: обзор методов и событий

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

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации

Счет — это финальный этап сделки. Он создается, когда все обсуждения завершены, а условия договора согласованы. Для одной сделки можно создать несколько счетов для разных товаров и услуг.

Счет можно сформировать по шаблону и отправить клиенту в виде документа. В карточке счета вы можете:

  • управлять процессом продажи товара или услуги
  • отслеживать этапы работы со счетом
  • принимать онлайн-платежи

Счета — это отдельный тип объекта CRM с идентификатором entityTypeId = 31. Работайте с ними универсальными методами crm.item.* и передавайте entityTypeId = 31 в каждом вызове.

Методы crm.item.* работают только со счетами нового типа entityTypeId = 31. Для счетов старого типа entityTypeId = 5 они вернут ошибку ENTITY_TYPE_NOT_SUPPORTED.

Быстрый переход: все методы и события

Пользовательская документация: Новые счета в CRM

Как начать работу

  1. Получите список доступных полей счета методом crm.item.fields с entityTypeId = 31.
  2. Создайте счет методом crm.item.add. Свяжите его со сделкой через parentId2 и укажите клиента в полях companyId и contactIds.
  3. Добавьте товарные позиции методами crm.item.productrow.* с ownerType = SI.
  4. Создайте оплату методом crm.item.payment.add и получите ссылку для клиента методом salescenter.payment.getPublicUrl.
  5. Отслеживайте статус счета методами crm.item.get и crm.item.list, меняйте его методом crm.item.update.

Связь счетов с другими объектами CRM

Сделка. Передавайте ID сделки в параметре parentId2, чтобы новый счет был связан со сделкой.

Предложение. Передавайте ID предложения в параметре parentId7, чтобы новый счет был связан с предложением.

Клиент. Поле в карточке счета, состоящее из связанных с ним компании и контактов. Все дела звонков, писем, чатов с контактом или компанией будут сохранены в карточке счета. Компания в поле одна, обращение к ней происходит через поле счета companyId. Контактов может быть указано несколько, взаимодействие с ними ведется через поле contactIds, передавайте в поле массив с ID контактов.

Товары. Добавление, изменение, удаление товарных позиций в счетах возможно через группу методов crm.item.productrow.*.

Оплаты. Добавление, изменение, удаление документов оплаты в счетах возможно через группу методов crm.item.payment.*.

Реквизиты вашей компании. Укажите ID вашей компании в поле mycompanyId, чтобы ее реквизиты автоматически использовались в документах. Получить ID вашей компании можно методом crm.item.list: передайте entityTypeId = 4 и фильтр isMyCompany = Y.

Заказы интернет-магазина. Заказ можно привязать к счету методами crm.orderentity.*, передав ownerTypeId = 31 и ownerId счета.

Карточка счета

Основное рабочее пространство в счетах — это вкладка «Общее» карточки. Она состоит из двух частей:

  • левая, в ней располагаются поля с информацией. Если системных полей недостаточно, вы можете создать собственные пользовательские поля. Они позволяют хранить информацию в различных форматах данных: строка, число, ссылка, адрес и другие. Для создания, изменения, получения или удаления пользовательских полей счетов используйте группу методов userfieldconfig.* с entityId = CRM_SMART_INVOICE.

  • правая, в ней располагается таймлайн счета. В нем можно создавать, редактировать, фильтровать, удалять дела CRM — группа методов crm.activity.*, и записи таймлайна — группа методов crm.timeline.*.

Параметрами карточки счета можно управлять через группу методов crm.item.details.configuration.*.

Виджеты

В карточку счета можно встроить приложение. Благодаря встраиванию можно будет использовать приложение и не покидать карточку счета.

Есть два сценария встройки:

Места встраивания новых счетов

Обзор методов и событий

Scope: crm, salescenter

Кто может выполнять метод: в зависимости от метода

Основные

Идентификатор объекта CRM entityTypeId31

Метод

Описание

crm.item.add

Создает новый элемент CRM

crm.item.update

Обновляет элемент

crm.item.get

Возвращает элемент по Id

crm.item.list

Возвращает список элементов по фильтру

crm.item.delete

Удаляет элемент

crm.item.fields

Возвращает поля элемента

Событие

Вызывается

onCrmDynamicItemAdd

При создании счета вручную или методом crm.item.add

onCrmDynamicItemUpdate

При изменении счета вручную или методом crm.item.update

onCrmDynamicItemDelete

При удалении счета вручную или методом crm.item.delete

Эти события приходят по элементам всех смарт-процессов и счетов. Чтобы отобрать события счетов, проверяйте в обработчике data.FIELDS.ENTITY_TYPE_ID = 31. Подробнее — в разделе События элементов смарт-процессов.

Пользовательские поля

Идентификатор объекта CRM entityIdCRM_SMART_INVOICE

Метод

Описание

userfieldconfig.add

Создает пользовательское поле

userfieldconfig.update

Изменяет настройки поля

userfieldconfig.get

Возвращает настройки пользовательского поля по идентификатору

userfieldconfig.getTypes

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

userfieldconfig.list

Возвращает список настроек пользовательских полей

userfieldconfig.delete

Удаляет пользовательское поле

Событие

Вызывается

onCrmTypeUserFieldAdd

При добавлении пользовательского поля счета

onCrmTypeUserFieldUpdate

При изменении настроек пользовательского поля счета

onCrmTypeUserFieldDelete

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

onCrmTypeUserFieldSetEnumValues

При изменении набора значений пользовательского поля списочного типа

Товарные позиции

Идентификатор объекта CRM ownerTypeSI

Метод

Описание

crm.item.productrow.add

Добавляет товарную позицию

crm.item.productrow.update

Обновляет товарную позицию

crm.item.productrow.get

Получает информацию о товарной позиции по id

crm.item.productrow.set

Привязывает товарную позицию к объекту CRM

crm.item.productrow.list

Получает список товарных позиций

crm.item.productrow.getAvailableForPayment

Получает список неоплаченных товаров

crm.item.productrow.delete

Удаляет товарную позицию

crm.item.productrow.fields

Получает список полей товарных позиций

Оплаты

Идентификатор объекта CRM entityTypeId31

Метод

Описание

crm.item.payment.add

Создает оплату для объекта CRM

crm.item.payment.update

Изменяет набор полей оплаты

crm.item.payment.get

Получает краткую информацию об оплате

crm.item.payment.list

Получает список оплат конкретного объекта CRM

crm.item.payment.delete

Удаляет оплату

crm.item.payment.pay

Изменяет статус оплаты на «Оплачено»

crm.item.payment.unpay

Изменяет статус оплаты на «Не оплачено»

salescenter.payment.getPublicUrl

Генерирует публичную ссылку на оплату

Товарные позиции в оплате

Метод

Описание

crm.item.payment.product.add

Добавляет товарную позицию в оплату

crm.item.payment.product.list

Получает список товарных позиций в оплате

crm.item.payment.product.delete

Удаляет товарную позицию из оплаты

crm.item.payment.product.setQuantity

Изменяет количество товара в товарной позиции оплаты

Доставка в оплате

Метод

Описание

crm.item.payment.delivery.add

Добавляет позицию доставки в оплату

crm.item.payment.delivery.list

Получает список позиций доставки по конкретной оплате

crm.item.payment.delivery.delete

Удаляет позицию доставки из оплаты

crm.item.payment.delivery.setDelivery

Перепривязывает позицию доставки к другому документу доставки

Управление настройками карточки

Идентификатор объекта CRM entityTypeId31

Метод

Описание

crm.item.details.configuration.get

Получает параметры карточки элементов

crm.item.details.configuration.set

Устанавливает параметры карточки элементов

crm.item.details.configuration.reset

Сбрасывает параметры карточки элементов

crm.item.details.configuration.forceCommonScopeForAll

Устанавливает общую карточку для всех пользователей

Продолжите изучение