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

Методы · Year

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

Синтаксис

Год(<Дата>)

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

Сообщить(Год("20031120") + "; Размер=" + СтрДлина(Год("20031120")));
Сообщить(Формат(Год("20031120"),"ЧГ=0"));
Полное описание, параметры и ограничения

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

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

Год (Year)

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

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

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

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

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

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

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

Сообщить(Год("20031120") + "; Размер=" + СтрДлина(Год("20031120")));
// Результат: "2 003; Размер=5"

// Пробел в номере года вставляется при установках по умолчанию

// (подразумевается, что выбран язык "Русский" и не установлен

// признак группировки в региональных установках)

//

// Чтобы вывести номер года в виде ГГГГ, следует использовать

// метод Формат с указанием форматной строки "ЧГ=0":

Сообщить(Формат(Год("20031120"),"ЧГ=0"));
// Результат: "2003"

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

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

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

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

Прочитать настройки блокировок, сна сеансов и пересчёта итогов без их изменения

Диагностический паспорт отделяет установленные параметры от фактического числа активных заданий и наличия индексов.

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

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

Подготовка

  1. В учебной базе выполните код на сервере. Читаются настройки, не строки справочников и документов.

  2. В коде нет вызовов УстановитьРегиональныеНастройки, изменения индексов, монопольного режима или завершения сеансов.

  3. Результаты зависят от настроек вашей учебной базы и пользователя: фиксированных значений для всех конфигураций нет.

Сообщить("Ожидание блокировки данных, секунд: " + Строка(ПолучитьВремяОжиданияБлокировкиДанных()));
Сообщить("Засыпание пассивного сеанса, секунд: " + Строка(ПолучитьВремяЗасыпанияПассивногоСеанса()));
Сообщить("Завершение спящего сеанса, секунд: " + Строка(ПолучитьВремяЗавершенияСпящегоСеанса()));
Сообщить("Настройка числа заданий пересчёта: " + Строка(ПолучитьКоличествоЗаданийПересчетаИтогов()));
НужныДополнительныеИндексы = ПолучитьИспользованиеДополнительныхИндексов();
Сообщить("Настроено использование дополнительных индексов: " + Строка(НужныДополнительныеИндексы));
СтолетиеБазы = ПолучитьНачалоСтолетияИнформационнойБазы();
Если СтолетиеБазы = Неопределено Тогда
    Сообщить("Начало столетия в базе отдельно не задано");
Иначе
    Сообщить("Год начала столетия базы: " + Строка(СтолетиеБазы));
КонецЕсли;
Сообщить("Год начала столетия текущего сеанса: " + Строка(НачалоСтолетияСеанса()));
ЯвнаяДата = Дата(2030, 1, 1);
Сообщить(Год(ЯвнаяДата) = 2030);

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

  1. Три временных параметра возвращаются в секундах и относятся к разным событиям: ожидание блокировки, сон и завершение сна.

  2. Количество заданий пересчёта — настройка, не число уже выполняющихся фоновых заданий.

  3. Признак дополнительных индексов задаёт необходимость создания/удаления при соответствующих операциях, не подтверждает физическое наличие индексов сейчас.

  4. Начало столетия базы может быть Неопределено; год, действующий в сеансе, читаем отдельно.

  5. Дата с явным четырёхзначным годом не зависит от интерпретации сокращённого года пользовательского ввода.

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

  1. Получены три интервала и настройка числа заданий без завершения других сеансов.

  2. Отсутствующее начало столетия обработано отдельным сообщением, не превращено в 0.

  3. Последняя проверка года 2030 Истина; данные настройки не изменены.

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

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

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

  1. Файловая/серверная база, права и режим разделения данных могут влиять на применимость отдельных настроек.

  2. Не увеличивайте ожидание блокировки наугад: это не устранит причину взаимной блокировки.

  3. Нет вызовов установки параметров, пересчёта итогов, реструктуризации и разрыва соединений.

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

Найти следующий будний день в упрощённом учебном календаре

От пятницы переходим к следующему дню и пропускаем субботу и воскресенье. Праздники сознательно не учитываются.

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

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

Подготовка

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

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

  3. Для урока будними считаются только понедельник–пятница. Производственный календарь конфигурации здесь не используется.


Исходная = Дата(2026, 9, 18, 17, 0, 0);
Кандидат = НачалоДня(Исходная) + 24 * 60 * 60;
Пока ДеньНедели(Кандидат) > 5 Цикл
    Кандидат = Кандидат + 24 * 60 * 60;
КонецЦикла;
Сообщить(Формат(Кандидат, "ДФ=yyyy-MM-dd HH:mm:ss"));
Сообщить(ДеньНедели(Кандидат));
Сообщить(Год(Кандидат));
Сообщить(Месяц(Кандидат));
Сообщить(День(Кандидат));

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

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

  2. Ищем строго следующий день, не включая исходную дату.

  3. ДеньНедели возвращает 1 для понедельника и 7 для воскресенья; значения 6 и 7 пропускаем.

  4. Выводим дату и её числовые компоненты для проверки.

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

  1. Результат 2026-09-21 00:00:00, номер дня недели 1; компоненты 2026, 9, 21.

  2. Замените исходник на 2026-09-17: результат будет пятница 18 сентября.

  3. Если понедельник является праздником, этот алгоритм всё равно его вернёт — так видна граница учебной модели.

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

Найден следующий день понедельник–пятница в явно упрощённом календаре.

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

  1. Не используйте этот алгоритм для расчёта реальных сроков доставки, зарплаты или регламентированных рабочих дней; там нужен производственный календарь конфигурации.

  2. Прибавление 86400 к Дата здесь означает сдвиг календарного представления; это не расчёт фактически прошедших секунд через переход часового пояса.

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

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

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

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

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