Глобальный контекст.ДеньГода

Методы · DayOfYear

Определяет номер дня в году для указанной даты.

Синтаксис

ДеньГода(<Дата>)

Примеры платформы

Сообщить(ДеньГода(ТекущаяДата()));
Полное описание, параметры и ограничения

Глобальный контекст.ДеньГода (Global context.DayOfYear)

Глобальный контекст (Global context)

ДеньГода (DayOfYear)

Доступен, начиная с версии 8.0.

Синтаксис:
ДеньГода(<Дата>)
Параметры:

<Дата> (обязательный)
Тип: Дата.
Исходная дата.
Возвращаемое значение:
Тип: Число.
Номер дня в году.
Описание:

Определяет номер дня в году для указанной даты.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Внимание: Данный метод не поддерживается при работе через COM-соединение
Пример:

Сообщить(ДеньГода(ТекущаяДата()));

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Определить неделю, квартал и год для учебного отчёта

Получаем границы периодов для одной даты и превращаем конец квартала в исключённую верхнюю границу.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Используется фиксированная дата, а не ТекущаяДата: результаты можно сравнить независимо от дня запуска.

  2. Данные создаются только в памяти учебной базы; рабочие документы и регистры не меняются.


ОпорнаяДата = Дата(2026, 9, 15, 15, 30, 45);
Сообщить(Формат(НачалоНедели(ОпорнаяДата), "ДФ=yyyy-MM-dd HH:mm:ss"));
Сообщить(Формат(КонецНедели(ОпорнаяДата), "ДФ=yyyy-MM-dd HH:mm:ss"));
Сообщить(Формат(НачалоКвартала(ОпорнаяДата), "ДФ=yyyy-MM-dd HH:mm:ss"));
Сообщить(Формат(КонецКвартала(ОпорнаяДата), "ДФ=yyyy-MM-dd HH:mm:ss"));
Сообщить(Формат(НачалоГода(ОпорнаяДата), "ДФ=yyyy-MM-dd HH:mm:ss"));
Сообщить(Формат(КонецГода(ОпорнаяДата), "ДФ=yyyy-MM-dd HH:mm:ss"));
Сообщить(ДеньГода(ОпорнаяДата));
Сообщить(НеделяГода(ОпорнаяДата));
Нижняя = НачалоКвартала(ОпорнаяДата);
ВерхняяИсключённая = КонецКвартала(ОпорнаяДата) + 1;
Сообщить(ОпорнаяДата >= Нижняя И ОпорнаяДата < ВерхняяИсключённая);
Сообщить(Дата(2026, 10, 1) >= Нижняя И Дата(2026, 10, 1) < ВерхняяИсключённая);

Разбор по шагам

  1. НачалоНедели и КонецНедели возвращают календарную неделю, содержащую опорную дату.

  2. Для сентября выбирается третий квартал, начало июля и конец сентября.

  3. Функции конца периода возвращают последнюю секунду; добавлением 1 получаем начало следующего периода.

  4. Полуоткрытое условие >= Нижняя и < ВерхняяИсключённая помогает не пересекать соседние периоды.

Как проверить результат

  1. Неделя: 2026-09-14 00:00:00 — 2026-09-20 23:59:59.

  2. Квартал: 2026-07-01 00:00:00 — 2026-09-30 23:59:59; год: 2026-01-01 — 2026-12-31 23:59:59.

  3. ДеньГода для 15 сентября равен 258. Номер недели сверяйте с принятой системой нумерации, не с предположением о формате внешнего API.

  4. Проверки принадлежности кварталу: Истина для опорной даты, Ложь для 1 октября.

Ожидаемый результат

Границы календарных периодов готовы для условий учебного отчёта.

На что обратить внимание

  1. Номер недели во внешнем формате может определяться по ISO или собственному правилу; НеделяГода не следует считать автоматически согласованным контрактом обмена.

  2. Тип Дата сам по себе не хранит идентификатор часового пояса.

  3. Этот урок не описывает налоговые, финансовые или производственные отчётные периоды.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.