• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/controller/form.php
  • Класс: Bitrix\Crm\Controller\Form
  • Вызов: Form::assignOpenlinesToFormAction
public function assignOpenlinesToFormAction(int $formId, int $lineId, string $assigned, string $afterMessage = 'N')
{
	if (!$this->getFormAccess(true))
	{
		$this->addError(new Main\Error('Access denied.', self::ERROR_CODE_FORM_WRITE_ACCESS_DENIED));
		return ['error' => ['status' => 'access denied', 'code' => self::ERROR_CODE_FORM_WRITE_ACCESS_DENIED]];
	}

	if ($this->shouldVerifyPhone() && !$this->isPhoneVerified($formId))
	{
		$this->addError(new Main\Error('Phone doesn\'t verified', self::ERROR_CODE_PHONE_NOT_VERIFIED, ['id' => $formId]));
		return [];
	}

	if (!$this->getOpenlineModifyAccess($lineId))
	{
		$this->addError(new Main\Error('Access denied.', self::ERROR_CODE_OPENLINES_WRITE_ACCESS_DENIED, ['lineId' => $lineId]));
		return ['error' => ['status' => 'access denied', 'code' => self::ERROR_CODE_OPENLINES_WRITE_ACCESS_DENIED, 'lineId' => $lineId]];
	}

	$isAssigned = $assigned === 'Y';
	$isAfter = $afterMessage === 'Y';

	$config = new \Bitrix\Imopenlines\Config();

	$updateResult = $config->update($lineId, [
		"USE_WELCOME_FORM" => $isAssigned ? 'Y' : 'N',
		"WELCOME_FORM_ID" => $formId,
		"WELCOME_FORM_DELAY" => $isAfter ? 'Y' : 'N', // 'Y' - after first message, 'N' - before
	]);

	$form = new WebForm\Form($formId);

	if (! $updateResult->isSuccess())
	{
		$this->addErrors($updateResult->getErrors());
	}

	return [
		'assigned' => $isAssigned,
		'formId' => $formId,
		'formName' => $form->getName(),
		'lineId' => $lineId,
	];
}