• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/numerator/generator/sequentnumbergenerator.php
  • Класс: BitrixMainNumeratorGeneratorSequentNumberGenerator
  • Вызов: SequentNumberGenerator::parseTemplate
public function parseTemplate($template)
{
	for ($tryouts = 0; $tryouts < 50; $tryouts++)
	{
		$this->nextNumber = null;
		$this->currentNumber = null;
		$nextNumberSettings = $this->getSettings();
		if (!$nextNumberSettings)
		{
			continue;
		}
		$this->lastInvocationTime = $nextNumberSettings['LAST_INVOCATION_TIME'];
		$this->calculateNextAndCurrentNumber($nextNumberSettings['NEXT_NUMBER']);
		$this->lastInvocationTime = $this->nowTime;
		$affectedRows = $this->saveNumeratorSequenceSettings(
			$this->numeratorId,
			$this->getNumberHash(),
			[
				'NEXT_NUMBER' => $this->nextNumber,
				'LAST_INVOCATION_TIME' => $this->lastInvocationTime,
			],
			$nextNumberSettings['NEXT_NUMBER']
		);
		if ($affectedRows == 1)
		{
			break;
		}
	}

	return $this->replaceNumberInPattern($template);
}