Logo

Сброс нумерации в CRM: Как начинать отсчет договоров с начала каждый год или месяц

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

  • Как заставить CRM обнулять отсчет при смене периода;
  • Сборку формулы с использованием функций YEAR и MONTH;
  • Как добавить год или месяц прямо в номер документа (например, 2026-100).

Год в номере договора и ежегодный сброс: нужна нумерация вида 2026-100

Привет, я Илья, основатель daocrm.

В некоторых компаниях принято добавлять в номер договора текущий год или месяц — например, 2026-100. При этом каждый новый год отсчет нужно начинать заново.

В этом видео я покажу, как настроить daocrm так, чтобы она сама начинала новую очередь номеров при смене периода.

Год как имя счётчика: YEAR, TEXT и SERIAL для нумерации 2026-100 с ежегодным сбросом

Заходим в настройки поля "Номер договора".

Вспомним логику из прошлого видео: как только мы передаем функции SERIAL новое имя счетчика, daocrm автоматически начинает отсчет заново. В прошлый раз мы подставляли туда название юрлица. А сегодня мы подставим туда год. Как только год изменится, программа увидит новое имя для счетчика и создаст новую независимую очередь номеров.

Чтобы не запутаться, давайте соберем формулу по шагам.

Сначала получим год из нашей сделки и превратим его в текст, чтобы использовать как имя счетчика. Сохраним это в первую переменную. Для этого на вкладке "Функции" находим TEXT и кликаем по ней, чтобы вставить в формулу. Внутри её скобок вставляем функцию YEAR (год). Теперь внутрь года нам нужно передать саму дату: открываем вкладку "Поля" и выбираем "Дата начала договора". В конце ставим точку с запятой.

let year = TEXT( YEAR( {{data_nachala_dogovora}} ) );

Теперь получим следующий порядковый номер для этого года и запишем его во вторую переменную. Снова переходим в "Функции" и вставляем SERIAL. Внутри скобок указываем нашу первую переменную — она и будет именем счетчика. И чтобы нумерация каждый год начиналась солидно, например со ста, ставим запятую и пишем 100. Если вам нужно начать с единицы — второй параметр можно просто не указывать. В конце ставим точку с запятой.

let number = SERIAL( year, 100 );

С новой строки собираем финальный результат. Нам нужно склеить год, дефис и сам номер. Вставляем нашу первую переменную с годом. Затем добавляем плюс, в кавычках пишем дефис "-", и снова плюс. Так как наш порядковый номер — это число, а поле текстовое, вставляем функцию TEXT и передаем в нее нашу вторую переменную с номером.

year + "-" + TEXT( number )

Итоговая формула выглядит так:

let year = TEXT( YEAR( {{data_nachala_dogovora}} ) ); let number = SERIAL( year, 100 ); year + "-" + TEXT( number )

Сохраняем.

Создаём договоры в 2026 и 2027 годах: нумерация сбрасывается при смене года автоматически

Создаю новую сделку. Ставлю дату договора: 15 марта 2026 года. Сохраняю. Смотрите, номер автоматически стал: 2026-100.

Создаю еще одну сделку в 2026 году. Номер: 2026-101. Счетчик исправно работает.

А теперь представим, что наступило будущее. Я создаю новую сделку и ставлю дату: 10 января 2027 года. Сохраняю. Смотрите: номер стал 2027-100. Нумерация сбросилась автоматически, потому что изменился год, и программа создала новый счетчик.

Добавляем MONTH к счётчику: нумерация вида 2027-01-100 с ежемесячным сбросом

Точно так же можно настроить сброс каждый месяц, чтобы номер выглядел, например, как 2027-01-100.

Для этого нам нужно сделать так, чтобы в имени счетчика был не только год, но и месяц.

Заведем переменную для месяца. По аналогии с годом используем функции TEXT и MONTH, передавая внутрь всё ту же дату начала договора.

let month = TEXT( MONTH( {{data_nachala_dogovora}} ) );

Теперь в следующей строке, где мы получаем номер, мы меняем имя счетчика. К переменной с годом мы прибавляем дефис и нашу новую переменную с месяцем.

let number = SERIAL( year + "-" + month, 100 );

И последнее: нам нужно обновить финальную строчку, чтобы месяц отображался в самом номере договора. Добавляем туда переменную с месяцем и еще один дефис.

year + "-" + month + "-" + TEXT( number )

Итоговая формула будет выглядеть так:

let year = TEXT( YEAR( {{data_nachala_dogovora}} ) ); let month = TEXT( MONTH( {{data_nachala_dogovora}} ) ); let number = SERIAL( year + "-" + month, 100 ); year + "-" + month + "-" + TEXT( number )

Теперь имя счетчика будет уникальным для каждого месяца. Как только наступит 1-е число, нумерация начнется заново.

В результате настраивается любая логика нумерации: сквозная, раздельная или с автосбросом

Теперь вы умеете настраивать любую логику нумерации документов: сквозную, раздельную по юрлицам или с автоматическим сбросом по времени.

В следующем видео я покажу, как сделать так, чтобы текст внутри договора менялся в зависимости от параметров сделки. Например, чтобы шапка договора и реквизиты сами подстраивались в зависимости от того, кто ваш заказчик — физическое лицо или компания.

6:14
Создание договоров и актов в CRM в 1 клик без открытия Word
3:30
Таблицы и списки в договорах и счетах в CRM: Как настроить шаблон
3:38
Автоматическая нумерация в CRM: Как настроить номера договоров и счетов
4:09
Раздельная нумерация в CRM: Свои номера документов для каждого юрлица
4:44
Сброс нумерации в CRM: Как начинать отсчет договоров с начала каждый год или месяц
3:36
Как менять текст договора в CRM в зависимости от суммы и условий сделки