• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/entity/message.php
  • Класс: BitrixSenderEntityMessage
  • Вызов: Message::saveConfiguration
public function saveConfiguration(Configuration $configuration)
{
	$this->setId($configuration->getId());
	$result = $configuration->checkOptions();
	if (!$result->isSuccess())
	{
		return $result;
	}

	$data = [];
	foreach ($configuration->getOptions() as $option)
	{
		$value = $option->getValue();
		if ($option->getType() === $option::TYPE_FILE)
		{
			$value = is_array($value) ? implode(',', $value) : $value;
		}

		$data[] = [
			'CODE' => $option->getCode(),
			'TYPE' => $option->getType(),
			'VALUE' => $value,
		];
	}

	if (count($data) == 0)
	{
		$result->addError(new Error('No options.'));
	}

	$this->setFields($data)->save();

	if ($this->hasErrors())
	{
		$result->addErrors($this->errors->toArray());
	}
	else
	{
		$configuration->setId($this->getId());
	}

	return $result;
}