Документация для разработчиков
Темная тема

crm.deal.update

Scope: crm Права на выполнение: для всех

Описание

crm.deal.update(id, fields, params)

Обновляет существующую сделку.

Параметры

Параметр Описание
id Идентификатор сделки.
fields Набор полей - массив вида array("обновляемое поле"=>"значение"[, ...]), где "обновляемое поле" может принимать значения из возвращаемых методом crm.deal.fields.
Примечание: чтобы узнать требуемый формат полей, выполните метод crm.deal.fields и посмотрите формат пришедших значений этих полей.
params Набор параметров. REGISTER_SONET_EVENT - произвести регистрацию события изменения сделки в живой ленте. Дополнительно будет отправлено уведомление ответственному за сделку.

Пример

var id = prompt("Введите ID");
BX24.callMethod(
	"crm.deal.update",
	{
		id: id,
		fields:
		{
			"STAGE_ID": "NEGOTIATION",
			"PROBABILITY": 70
		},
		params: { "REGISTER_SONET_EVENT": "Y" }
	},
	function(result) 
	{
		if(result.error())
			console.error(result.error());
		else
		{
			console.info(result.data());
		}
	}
);

Как через веб хук загрузить файл в сделку (PHP)

$batchUpdate = array (
	'update_contact' => 'crm.deal.update?'.http_build_query(
		array(
			'id'=> $dealId,
			'fields'=> array(
				'fileData'=>array(
					$files['files']['name'], base64_encode(file_get_contents($files['files']['tmp_name'])),
				)
			),
		)
	)
)

$resultUpdate = executeHook(array('cmd' => $batchUpdate)); // выполняем хук

Пояснения к методу

Для управления контактами сделки рекомендуется использовать множественное поле CONTACT_IDS:

Пример

BX24.callMethod("crm.deal.update", { id: 1, fields: { "CONTACT_IDS": [ 1, 2, 3 ] } });

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

Поле CONTACT_ID является устаревшим и поддерживается для обеспечения обратной совместимости.

Пример

BX24.callMethod("crm.deal.update", { id: 1, fields: { "CONTACT_ID": 4 } });

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

Пожалуйста, обратите внимание, что уже существующие связи связи с контактами при этом удалены не будут. То есть если сделка до этого была связана с контактами 1, 2 и 3, то в результате она будет связана с контактами 1, 2, 3 и 4.



Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
2
Максим Кисель
Сообщение не промодерировано, возможны ошибки и неточности.
Как добавлять файл к пользовательскому полю (Множественное) без удаления старых файлов?
0
Avdal
Сообщение не промодерировано, возможны ошибки и неточности.
Цитата
пишет:
 ACHTUNG!!!  
Направление сделки (CATEGORY_ID) не изменяется!!!

проблема описана:   https://dev.1c-bitrix.ru/support/forum/messages/forum48/topic116869/message572443/­ ­#message572443  
так что при смене стадии сделки: STAGE_ID
нужно использовать только те идентификаторы, которые имеются в данном направлении, иначе будут проблемы с отображением в статус-баре:
[URL=https://we.web4.kz/?img=/2019-12-02_013215.png]как это выглядит в коде[/URL]
И что делать?!!!
0
Тимур Коломеец
Сообщение не промодерировано, возможны ошибки и неточности.
Если необходимо загружать файлы с множественного input в сделку.
Код
$files = $_FILES;
$arrFiles = array();

foreach ($files as $key => $arItem) {
  foreach ($arItem['name'] as $key => $itemName) {
    $arrFiles[] = [
      "fileData"=> [$itemName, base64_encode(file_get_contents($arItem['tmp_name'][$key]))]
    ];
  }
}

$batchUpdate = array (
        'update_contact' => 'crm.deal.update?'.http_build_query(
          array(
            'id'=> '11',
            'fields'=> array(
              "UF_CRM_1618079451"=> $arrFiles
              ),
            )
          )
        );

 $resultUpdate = executeHook(array('cmd' => $batchUpdate)); // выполняем хук
5
asyrtmach
Загрузка файла
Код
$base64 = base64_encode(file_get_contents('/путь/до/файла.pdf'));
$DEAL_ID = 1;

CRest::call('crm.deal.update',
   [
      'id' => $DEAL_ID,
      'fields' => [
         // Загрузка одного файла
         "UF_CRM_1234567890" => [
            'fileData' => ["Имя-файла.pdf", $base64]
         ],
         // Загрузка нескольких файлов (множественное свойство)
         "UF_CRM_1234567890" => [
            [
               'fileData' => ["Имя-файла-1.pdf", $base64]
            ],
            [
                'fileData' => ["Имя-файла-2.pdf", $base64]
            ]
         ],
      ],
      'params' => [
         "REGISTER_SONET_EVENT" => "Y"
      ]
   ]
);
8
Ахат Баязи
ACHTUNG!!!
Направление сделки (CATEGORY_ID) не изменяется!!!

проблема описана: https://dev.1c-bitrix.ru/support/forum/messages/forum48/topic116869/message572443/­#message572443
так что при смене стадии сделки: STAGE_ID
нужно использовать только те идентификаторы, которые имеются в данном направлении, иначе будут проблемы с отображением в статус-баре:
как это выглядит в коде
0
eo.aliev@bizprofi.ru
Для удаления уже добавленной картинки нужно передать объект структуры
Код
{id: fileId, remove: 'Y'}
Пример
Код
var dealId = prompt("Введите ID");

BX24.callMethod(
  'crm.deal.get',
  {
    id: dealId,
  },
  (response) => {
    if(response.error()) {
      return console.error(response.error());
    }

    let deal = response.data();

    BX24.callMethod(
      'crm.deal.update',
      {
        id: deal.ID,
        fields: {
          'UF_CRM_1555677111444': {id: deal['UF_CRM_1555677111444'], remove: 'Y'},
        },
      },
      response => console.log(response)
    );
  }
);
© «Битрикс», 2001-2024, «1С-Битрикс», 2024