Функция «номнедели»
Функция номнедели определяет, к какой по счёту неделе года относится указанная дата, и возвращает номер этой недели в виде целого числа.
Полученное значение можно использовать в тексте документа, условиях и других выражениях Комбинатора. Например, чтобы определить номер недели, на которую приходится дата поставки, выполнения работ или другого события.
Синтаксис
номнедели(дата, [формат_возврата])
дата — значение, содержащее дату. В функцию можно передать:
- дату, указанную непосредственно в функции;
- значение из поля Дата;
- значение из поля Дата и время;
- значение из поля Текст, если в нём записана дата;
- результат другой функции Комбинатора, содержащий дату.
формат_возврата — необязательный параметр, который позволяет изменить правила подсчёта недель.
Как считается номер недели по умолчанию
Если формат_возврата не указан:
- неделя начинается с понедельника;
- первой считается неделя, в которую попадает 1 января.
Такому способу подсчёта соответствует формат 11.
Например:
номнедели("12.08.2026")
Результат:
33
Это означает, что 12 августа 2026 года относится к 33-й неделе года.
Изменение правил подсчёта недель
Параметр формат_возврата нужен, если стандартный способ подсчёта недель не подходит.
Он определяет сразу две настройки:
- как определяется первая неделя года;
- какой день считается первым днём недели.
Для этого используются двузначные коды, например 11, 17, 21 или 27.
Как читать код формата
Первая цифра определяет систему подсчёта недель:
1— первой считается неделя, в которую попадает 1 января;2— первой считается неделя, в которую попадает первый четверг года.
Вторая цифра определяет первый день недели:
1— понедельник;2— вторник;3— среда;4— четверг;5— пятница;6— суббота;7— воскресенье.
Например:
11— система1, неделя начинается с понедельника;17— система1, неделя начинается с воскресенья;21— система2, неделя начинается с понедельника;27— система2, неделя начинается с воскресенья.
Системы подсчёта недель
Система 1
В системе 1 первой считается неделя, в которую попадает 1 января.
Поэтому 1 января всегда относится к первой неделе нового года независимо от того, на какой день недели выпала эта дата.
Например:
номнедели("01.01.2022", 11)
Результат:
1
Система 2
В системе 2 первой считается неделя, в которую попадает первый четверг года. Такой способ определения первой недели основан на методологии ISO 8601.
Поэтому некоторые первые дни января могут относиться к последней неделе предыдущего года.
Для той же даты:
номнедели("01.01.2022", 21)
результатом будет:
52
1 января 2022 года приходится на субботу, поэтому при использовании системы 2 эта дата ещё относится к последней неделе предыдущего года.
Таким образом, одна и та же дата может получить разный номер недели в зависимости от выбранной системы подсчёта.
Доступные форматы
| Формат | Первый день недели | Система |
|---|---|---|
11 |
понедельник | 1 |
12 |
вторник | 1 |
13 |
среда | 1 |
14 |
четверг | 1 |
15 |
пятница | 1 |
16 |
суббота | 1 |
17 |
воскресенье | 1 |
21 |
понедельник | 2 |
22 |
вторник | 2 |
23 |
среда | 2 |
24 |
четверг | 2 |
25 |
пятница | 2 |
26 |
суббота | 2 |
27 |
воскресенье | 2 |
Указание даты непосредственно в функции
Конкретную дату можно указать непосредственно в функции. Значение необходимо заключить в двойные кавычки.
Например:
номнедели("12.08.2026")
Результат:
33
При указании даты непосредственно в функции значение необходимо заключать в двойные кавычки.
Использование значения из поля
Функция номнедели может получать дату из разных типов полей.
Если поле Дата содержит:
12.08.2026
выражение:
номнедели(полеДата)
вернёт:
33
Если поле Дата и время содержит:
12.08.2026 14:30:15
выражение:
номнедели(полеДатаВремя)
вернёт:
33
Время не влияет на определение номера недели.
Функцию можно использовать и с текстовым полем. Если поле Текст содержит:
12.08.2026
выражение:
номнедели(текстовоеПоле)
вернёт:
33
Если в функцию передаётся текстовое значение, оно должно содержать дату в поддерживаемом формате. Значение в неподходящем формате приведёт к ошибке.
Использование с другими функциями
В номнедели можно передать результат другой функции, содержащий дату.
Например, функцию можно использовать вместе с тдата():
номнедели(тдата())
Функция тдата() возвращает текущие дату и время, а номнедели определяет номер недели, к которой относится эта дата.
Ошибки
Функция вернёт ошибку, если:
- переданное значение не содержит дату в поддерживаемом формате;
- в
формат_возвратауказано значение, отличное от11–17и21–27.