• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/numerator/model/numerator.php
  • Класс: BitrixMainNumeratorModelNumeratorTable
  • Вызов: NumeratorTable::saveNumerator
static function saveNumerator($numeratorId, $numeratorFields)
{
	$fields = [
		'NAME'       => $numeratorFields['NAME'],
		'TEMPLATE'   => $numeratorFields['TEMPLATE'],
		'TYPE'       => $numeratorFields['TYPE'],
		'SETTINGS'   => Json::encode($numeratorFields['SETTINGS']),
		'UPDATED_AT' => new DateTime(),
		'UPDATED_BY' => static::getCurrentUserId(),
		'CODE'       => $numeratorFields['CODE'] ?? null,
	];
	if ($numeratorId)
	{
		if (!(Numerator::load($numeratorId)))
		{
			$result = new UpdateResult();
			$result->addError(new Error(Loc::getMessage('MAIN_NUMERATOR_EDIT_NUMERATOR_NOT_FOUND_ERROR')));
			return $result;
		}

		$updateRes = NumeratorTable::update($numeratorId, $fields);

		if ($updateRes->isSuccess())
		{
			$numerator = Numerator::load($numeratorId);
			$isNewNumSequential = $numerator->hasSequentialNumber();
			if (!$isNewNumSequential)
			{
				NumeratorSequenceTable::deleteByNumeratorId($numeratorId);
			}
		}
		return $updateRes;
	}
	$fields['CREATED_AT'] = new DateTime();
	$fields['CREATED_BY'] = static::getCurrentUserId();
	return NumeratorTable::add($fields);
}