Текущая дата 1С: ТекущаяДатаСеанса или ТекущаяДата

Дата: 14.10.2026 15:12:02
Даты
Встроенный язык
Часовые пояса
БСП
Клиент-сервер
Комментарий:
0
Платформа:
8.3
Конфигурация:
Любая
Формы:
Любые

Текущая дата 1С возвращается одной функцией, но результат зависит от того, где выполняется код. ТекущаяДата() читает часы компьютера, на котором работает модуль: на сервере это время сервера, на клиенте — время ПК пользователя. ТекущаяДатаСеанса() берёт время сервера и приводит его к часовому поясу сеанса. Поэтому в 1С 8.3 для дат документов, сроков и отборов «на сегодня» используют дату сеанса, а для технических отметок — универсальное время (UTC).

Дальше — что возвращает каждая функция на клиенте и на сервере, как получить дату там, где ТекущаяДатаСеанса() недоступна, и где логика ломается из-за часовых поясов.

Где встречается задача

  • дата нового документа, срок оплаты или отгрузки «от сегодня»;
  • проверка просрочки: задачи, счета, резервы;
  • отчёты и отборы «на текущую дату»;
  • регламентные задания и обмены: «выгрузить вчерашние заказы», «время последней выгрузки»;
  • журнал и замер длительности операций.

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

Текущая дата 1С 8.3: что возвращает каждая функция

Пример: сервер в Москве (UTC+3), пользователь в Новосибирске (UTC+7), в мире 10:00 по UTC. Пояс компьютера пользователя платформа сама не учитывает. ТекущаяДатаСеанса() берёт пояс сеанса, если его не задали — пояс информационной базы, а если нет и его — пояс компьютера сервера.

ВызовГде доступенПояс базы не заданПояс базы GMT+7
ТекущаяДатаСеанса()сервер, толстый клиент, внешнее соединение13:0017:00
ТекущаяДата() на серверевезде13:0013:00
ТекущаяДата() на клиентевезде17:00 по часам ПК17:00 по часам ПК
ОбщегоНазначенияКлиент.ДатаСеанса()клиент, конфигурации на БСПоколо 13:00около 17:00
ТекущаяУниверсальнаяДата()сервер, толстый клиент, внешнее соединение10:0010:00
ТекущаяУниверсальнаяДатаВМиллисекундах()везде, включая тонкий и веб-клиент10:00 числом миллисекунд10:00 числом миллисекунд

В файловом варианте «сервер» — тот же компьютер пользователя, и без заданных поясов первые три строки таблицы совпадают. В веб-клиенте клиентская ТекущаяДата() — это часы компьютера с браузером.

Стандарт разработки 1С № 643 «Работа в разных часовых поясах» требует: в серверном коде вызывать ТекущаяДатаСеанса() вместо ТекущаяДата(); на клиенте ТекущаяДата() тоже не использовать, а брать дату с сервера, из документа или из ОбщегоНазначенияКлиент.ДатаСеанса(); отметки вроде времени последнего запуска задания вести в UTC; исключения пояснять комментарием. И ещё: в одной процедуре дату сеанса получают один раз, повторные вызовы вернут разные значения.

Как получить текущую дату на сервере и на клиенте

Когда пользователи жалуются на «чужое» время, начните с диагностики. Пример выводит дату сеанса, часы сервера и клиента, пояса сеанса, базы и сервера. Добавьте его в форму внешней обработки, привяжите к команде и запустите на проблемном рабочем месте.

&НаСервереБезКонтекста
Функция ДатыНаСервере()

	// Часы читаем один раз, остальное считаем от этого значения
	ДатаСеанса = ТекущаяДатаСеанса();

	Результат = Новый Структура;
	Результат.Вставить("ДатаСеанса", ДатаСеанса);
	Результат.Вставить("ДатаUTC", УниверсальноеВремя(ДатаСеанса, ЧасовойПоясСеанса()));
	Результат.Вставить("ЧасыСервера", ТекущаяДата()); // осознанно: диагностика часов сервера
	Результат.Вставить("ПоясСеанса", ЧасовойПоясСеанса());
	Результат.Вставить("ПоясБазы", ПолучитьЧасовойПоясИнформационнойБазы()); // Неопределено, если не задан
	Результат.Вставить("ПоясСервера", ЧасовойПояс());

	Возврат Результат;

КонецФункции

&НаКлиенте
Процедура ПроверитьЧасы(Команда)

	ЧасыКлиента = ТекущаяДата(); // компьютер пользователя, в веб-клиенте - компьютер с браузером
	// UTC по часам клиента: функция отдаёт миллисекунды от 01.01.0001
	UTCКлиента = Дата(1, 1, 1) + Цел(ТекущаяУниверсальнаяДатаВМиллисекундах() / 1000);
	ДатыСервера = ДатыНаСервере();

	Сообщить("Дата сеанса: " + ДатыСервера.ДатаСеанса + ", пояс сеанса " + ДатыСервера.ПоясСеанса);
	Сообщить("Часы сервера: " + ДатыСервера.ЧасыСервера + ", пояс сервера " + ДатыСервера.ПоясСервера);
	Сообщить("Пояс базы: " + ?(ДатыСервера.ПоясБазы = Неопределено, "не задан", ДатыСервера.ПоясБазы));
	Сообщить("Часы клиента: " + ЧасыКлиента);

	// Целые часы разницы - это пояса, минуты - сбитые часы на ПК
	РазницаЧасов = Окр((ЧасыКлиента - ДатыСервера.ДатаСеанса) / 3600, 1);
	Если РазницаЧасов <> 0 Тогда
		Сообщить("Часы клиента отличаются от даты сеанса на " + РазницаЧасов + " ч");
	КонецЕсли;

	// В UTC пояса не влияют: остаётся только ошибка часов компьютера
	Сдвиг = UTCКлиента - ДатыСервера.ДатаUTC;
	Если Макс(Сдвиг, -Сдвиг) > 60 Тогда
		Сообщить("Часы компьютера пользователя сбиты примерно на " + Окр(Сдвиг / 60) + " мин");
	КонецЕсли;

КонецПроцедуры

Первая строка — та дата, которую получат документы и запросы этого пользователя. Если пояс базы не задан, а разница с клиентом — ровно несколько часов, дело в поясах. Если разница в минутах, на компьютере пользователя сбиты часы.

Дата сеанса на клиенте: БСП и свой вариант

В тонком и веб-клиенте ТекущаяДатаСеанса() нет. Проще всего получить дату в серверном вызове, который команда всё равно делает. Если дата нужна на клиенте часто, в конфигурациях на БСП есть готовые функции:

// Конфигурации на БСП (УТ 11, КА 2, ERP 2), клиентский код
ДатаНаКлиенте = ОбщегоНазначенияКлиент.ДатаСеанса();           // близко к ТекущаяДатаСеанса() на сервере
ДатаUTCНаКлиенте = ОбщегоНазначенияКлиент.ДатаУниверсальная(); // та же поправка плюс сдвиг к UTC

// Серверный код: рабочая дата пользователя или сегодня, всегда на начало дня
ДатаПоУмолчанию = ОбщегоНазначения.ТекущаяДатаПользователя();

ДатаСеанса() не ходит на сервер: при запуске БСП запоминает поправку «дата сеанса минус часы клиента» и прибавляет её к ТекущаяДата(). Если пользователь переведёт часы посреди сеанса, поправка устареет до сброса кеша повторно используемых значений. ТекущаяДатаПользователя() возвращает рабочую дату пользователя или дату сеанса, причём всегда на начало дня: годится для даты документа по умолчанию, но не для отметки времени.

Без БСП та же схема собирается в форме. Пример раз в минуту обновляет заголовок с остатком времени до конца приёма заказов, не обращаясь к серверу. Обработчик ПриОткрытии назначьте в свойствах формы, о таймерах — в статье про обработчик ожидания.

&НаКлиенте
Перем ПоправкаКДатеСеанса; // секунды: дата сеанса минус часы компьютера пользователя

&НаКлиенте
Процедура ПриОткрытии(Отказ)

	ОбновитьОстатокВремени();
	ПодключитьОбработчикОжидания("ОбновитьОстатокВремени", 60);

КонецПроцедуры

&НаКлиенте
Процедура ОбновитьОстатокВремени()

	Сейчас = ДатаСеансаНаКлиенте();
	// Заказы на сегодняшнюю отгрузку принимаем до 16:00 по времени сеанса
	Граница = НачалоДня(Сейчас) + 16 * 3600;
	Если Сейчас < Граница Тогда
		Осталось = Граница - Сейчас; // разность дат - число секунд
		Заголовок = СтрШаблон("Приём заказов на сегодня: ещё %1 ч %2 мин",
			Цел(Осталось / 3600), Цел(Осталось % 3600 / 60));
	Иначе
		Заголовок = "Приём заказов на сегодня закрыт";
	КонецЕсли;

КонецПроцедуры

&НаКлиенте
Функция ДатаСеансаНаКлиенте()

	Если ПоправкаКДатеСеанса = Неопределено Тогда
		ЧасыКлиента = ТекущаяДата(); // осознанно: только для расчёта поправки
		// Поправка покрывает и разницу поясов, и сбитые часы ПК
		ПоправкаКДатеСеанса = ДатаСеансаНаСервере() - ЧасыКлиента;
	КонецЕсли;

	Возврат ТекущаяДата() + ПоправкаКДатеСеанса; // без серверного вызова

КонецФункции

&НаСервереБезКонтекста
Функция ДатаСеансаНаСервере()

	Возврат ТекущаяДатаСеанса();

КонецФункции

День, месяц, год и время текущей даты

Части даты возвращают Год(), Месяц(), День(), Час(), Минута(), Секунда(), ДеньНедели(), ДеньГода() и НеделяГода() — и на клиенте, и на сервере. Важно только, от какой даты считать. Функция ниже собирает части в структуру, серверная обёртка заодно проверяет, рабочее ли сейчас время.

&НаКлиентеНаСервереБезКонтекста
Функция ЧастиДаты(ИсходнаяДата)

	Части = Новый Структура;
	Части.Вставить("Год", Год(ИсходнаяДата));
	Части.Вставить("Месяц", Месяц(ИсходнаяДата));           // 1 - январь ... 12 - декабрь
	Части.Вставить("День", День(ИсходнаяДата));             // число месяца
	Части.Вставить("Час", Час(ИсходнаяДата));
	Части.Вставить("Минута", Минута(ИсходнаяДата));
	Части.Вставить("Секунда", Секунда(ИсходнаяДата));
	Части.Вставить("ДеньНедели", ДеньНедели(ИсходнаяДата)); // 1 - понедельник ... 7 - воскресенье
	Части.Вставить("ДеньГода", ДеньГода(ИсходнаяДата));
	Части.Вставить("НеделяГода", НеделяГода(ИсходнаяДата));
	// Функции Квартал() во встроенном языке нет, она есть в языке запросов
	Части.Вставить("Квартал", Цел((Месяц(ИсходнаяДата) - 1) / 3) + 1);
	Части.Вставить("ПоследнийДеньМесяца", День(ИсходнаяДата) = День(КонецМесяца(ИсходнаяДата)));
	// Время без даты: реквизиты с составом "Время" хранят его на 01.01.0001
	Части.Вставить("Время", Дата(1, 1, 1) + (ИсходнаяДата - НачалоДня(ИсходнаяДата)));
	// Строка(2026) дала бы "2 026" с разделителем групп
	Части.Вставить("ГодСтрокой", Формат(Год(ИсходнаяДата), "ЧГ=0"));

	Возврат Части;

КонецФункции

&НаСервереБезКонтекста
Функция СведенияОТекущейДате(НачалоРабочегоДня, КонецРабочегоДня)

	Сведения = ЧастиДаты(ТекущаяДатаСеанса());
	Сведения.Вставить("РабочееВремя", Сведения.ДеньНедели <= 5
		И Сведения.Время >= НачалоРабочегоДня И Сведения.Время < КонецРабочегоДня);
	Возврат Сведения;

КонецФункции

&НаКлиенте
Процедура ПоказатьСегодня(Команда)

	// Один серверный вызов: на тонком клиенте ТекущаяДатаСеанса() недоступна
	Сведения = СведенияОТекущейДате(Дата(1, 1, 1, 9, 0, 0), Дата(1, 1, 1, 18, 0, 0));
	Сообщить(СтрШаблон("День %1, месяц %2, год %3, квартал %4, день недели %5, неделя года %6",
		Сведения.День, Сведения.Месяц, Сведения.ГодСтрокой, Сведения.Квартал,
		Сведения.ДеньНедели, Сведения.НеделяГода));
	Если Не Сведения.РабочееВремя Тогда
		Сообщить("Нерабочее время: заявка уйдёт в работу в следующий рабочий день");
	КонецЕсли;

КонецПроцедуры

Месяц текущей даты — число от 1 до 12, день недели — от 1 (понедельник) до 7 (воскресенье). Если обмену нужен номер недели по ISO 8601, сверьте НеделяГода() на датах около 1 января. Название месяца строкой — в статье про формат даты, начало месяца — о начале периода, число дней в месяце — о високосном годе.

Часовой пояс сеанса и информационной базы

Пояс информационной базы хранится в базе и действует на все сеансы без собственного пояса. Пояс сеанса выставляют, когда филиалы работают в разных поясах. Идентификаторы возвращает ПолучитьДопустимыеЧасовыеПояса(), кроме того, платформа принимает смещение вида GMT+7 или GMT+5:30. Пример хранит пояс пользователя в хранилище общих настроек и применяет его при старте сеанса.

// Серверный общий модуль. Вызов - из модуля сеанса, в ветке старта сеанса:
// Если ТребуемыеПараметры = Неопределено Тогда УстановитьЧасовойПоясПользователя(); КонецЕсли;
Процедура УстановитьЧасовойПоясПользователя() Экспорт

	ПоясПользователя = ХранилищеОбщихНастроек.Загрузить("НастройкиВремени", "ЧасовойПояс");
	Если ТипЗнч(ПоясПользователя) <> Тип("Строка") Или ПустаяСтрока(ПоясПользователя) Тогда
		Возврат; // остаётся пояс базы, а если он не задан - пояс компьютера сервера
	КонецЕсли;

	Попытка
		УстановитьЧасовойПоясСеанса(ПоясПользователя);
	Исключение
		// Неверная строка в настройке не должна мешать входу в программу
		ЗаписьЖурналаРегистрации("НастройкаВремени", УровеньЖурналаРегистрации.Ошибка, , ,
			ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
	КонецПопытки;

КонецПроцедуры

// Запись пояса пользователю. Для чужого пользователя нужно право АдминистрированиеДанных
Процедура ЗаписатьЧасовойПоясПользователя(ИмяПользователя, ИдентификаторПояса) Экспорт

	ХранилищеОбщихНастроек.Сохранить("НастройкиВремени", "ЧасовойПояс", ИдентификаторПояса, , ИмяПользователя);

КонецПроцедуры

// Смещение от UTC в секундах -> строка "GMT+7" или "GMT+5:30"
Функция ЧасовойПоясПоСмещению(СмещениеСекунд) Экспорт

	ВсегоМинут = Окр(Макс(СмещениеСекунд, -СмещениеСекунд) / 60);
	Результат = "GMT" + ?(СмещениеСекунд < 0, "-", "+") + Формат(Цел(ВсегоМинут / 60), "ЧН=0; ЧГ=0");
	Если ВсегоМинут % 60 <> 0 Тогда
		Результат = Результат + ":" + Формат(ВсегоМинут % 60, "ЧЦ=2; ЧВН=");
	КонецЕсли;
	Возврат Результат;

КонецФункции

// Однократная настройка пояса базы, например "GMT+7"
Процедура УстановитьЧасовойПоясБазы(ИдентификаторПояса) Экспорт

	Если ПолучитьЧасовойПоясИнформационнойБазы() = ИдентификаторПояса Тогда
		Возврат;
	КонецЕсли;

	// Метод требует монопольного режима: при других сеансах здесь будет исключение
	УстановитьМонопольныйРежим(Истина);
	Попытка
		УстановитьЧасовойПоясИнформационнойБазы(ИдентификаторПояса);
	Исключение
		УстановитьМонопольныйРежим(Ложь);
		ВызватьИсключение;
	КонецПопытки;
	УстановитьМонопольныйРежим(Ложь);

КонецПроцедуры

// Время из внешней системы в UTC -> время сеанса (для документов и отчётов)
Функция ВремяСеансаИзUTC(ДатаUTC) Экспорт

	Возврат МестноеВремя(ДатаUTC, ЧасовойПоясСеанса());

КонецФункции

// Время сеанса -> UTC (для выгрузки и технических отметок)
Функция UTCИзВремениСеанса(ДатаСеанса) Экспорт

	Возврат УниверсальноеВремя(ДатаСеанса, ЧасовойПоясСеанса());

КонецФункции

Вызов УстановитьЧасовойПоясПользователя() ставьте в УстановкаПараметровСеанса модуля сеанса: при старте сеанса параметр обработчика равен Неопределено. УстановитьЧасовойПоясИнформационнойБазы() требует монопольного режима, вызов без параметра возвращает базу к поясу сервера. МестноеВремя() и УниверсальноеВремя() без второго параметра берут пояс компьютера, а не сеанса, поэтому ЧасовойПоясСеанса() передавайте явно.

Текущая дата в запросе и в СКД

В языке запросов функции текущей даты нет: дату передают параметром — Запрос.УстановитьПараметр("Сейчас", ТекущаяДатаСеанса()). Сравнение и функции дат разобраны в статье «Дата в запросе 1С».

В языке выражений СКД есть своя ТекущаяДата(): её пишут в выражении параметра или вычисляемого поля, значение подставляется при компоновке макета. Если важен пояс пользователя, заполните параметр из кода датой сеанса, как в статье о параметрах СКД. Для настроек «на сегодня» удобен тип СтандартнаяДатаНачала с вариантом НачалоЭтогоДня.

Фоновые и регламентные задания

Регламентное задание выполняется в отдельном сеансе без пользователя за клиентом. ТекущаяДатаСеанса() в нём вернёт время в поясе базы, а если он не задан — в поясе компьютера сервера. Если пояс выставляет модуль сеанса по настройке пользователя, задание получит пояс пользователя, от имени которого выполняется. Фоновому заданию из формы дату или пояс надёжнее передать параметром, см. статью о фоновых заданиях.

// Обработчик регламентного задания. Пользователя за клиентом нет:
// "сейчас" - время сеанса задания, то есть пояс базы или пояс компьютера сервера
Процедура КонтрольПросроченныхЗадач() Экспорт

	СтартМс = ТекущаяУниверсальнаяДатаВМиллисекундах(); // для длительности
	Сейчас = ТекущаяДатаСеанса(); // один вызов на процедуру

	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Задачи.Ссылка КАК Задача,
	|	Задачи.СрокИсполнения КАК Срок
	|ИЗ
	|	Задача.ЗадачаИсполнителя КАК Задачи
	|ГДЕ
	|	НЕ Задачи.Выполнена
	|	И НЕ Задачи.ПометкаУдаления
	|	И Задачи.СрокИсполнения > ДАТАВРЕМЯ(1, 1, 1)
	|	И Задачи.СрокИсполнения < &Сейчас";
	Запрос.УстановитьПараметр("Сейчас", Сейчас);
	Выборка = Запрос.Выполнить().Выбрать();

	Просроченные = Новый Массив;
	Пока Выборка.Следующий() Цикл
		ЧасовПросрочки = Цел((Сейчас - Выборка.Срок) / 3600);
		Просроченные.Добавить(СтрШаблон("%1: просрочка %2 ч", Выборка.Задача, Формат(ЧасовПросрочки, "ЧН=0; ЧГ=0")));
	КонецЦикла;

	ДлительностьМс = ТекущаяУниверсальнаяДатаВМиллисекундах() - СтартМс;
	Комментарий = СтрШаблон("Проверка на %1 (пояс %2), просрочено задач: %3, заняло %4 мс, отметка UTC %5",
		Формат(Сейчас, "ДЛФ=DT"), ЧасовойПоясСеанса(), Просроченные.Количество(),
		Формат(ДлительностьМс, "ЧН=0; ЧГ=0"), XMLСтрока(ТекущаяУниверсальнаяДата()));
	Если Просроченные.Количество() > 0 Тогда
		Комментарий = Комментарий + Символы.ПС + СтрСоединить(Просроченные, Символы.ПС);
	КонецЕсли;
	ЗаписьЖурналаРегистрации("КонтрольЗадач", УровеньЖурналаРегистрации.Информация, , , Комментарий);

КонецПроцедуры

Срок и момент проверки — в поясе сеанса, техническая отметка — в UTC, длительность — в миллисекундах. Если у пользователей разные пояса, сроки надёжнее хранить в UTC. Результат в УТ 11.4: «Администрирование → Обслуживание → Журнал регистрации», событие «КонтрольЗадач».

Разбор ключевых строк

  • ДатаСеанса = ТекущаяДатаСеанса(); — часы читаются один раз, дальше работает переменная. Два вызова около полуночи дадут разные сутки.
  • УниверсальноеВремя(ДатаСеанса, ЧасовойПоясСеанса()) — перевод в UTC. Второй параметр допустим на сервере, в толстом клиенте и во внешнем соединении.
  • Дата(1, 1, 1) + Цел(ТекущаяУниверсальнаяДатаВМиллисекундах() / 1000) — UTC там, где нет ТекущаяУниверсальнаяДата(), но по часам клиента.
  • ПоправкаКДатеСеанса = ДатаСеансаНаСервере() - ЧасыКлиента — секунды, в которые входит и разница поясов, и ошибка часов ПК. Так же устроена функция БСП.
  • Дата(1, 1, 1) + (ИсходнаяДата - НачалоДня(ИсходнаяДата)) — время в том виде, в каком его хранит реквизит с составом «Время».
  • Задачи.СрокИсполнения < &Сейчас — срок со временем сравнивается с моментом. Если реквизит хранит только дату, сравнивайте с НачалоДня(Сейчас), иначе срок «сегодня» станет просроченным в 00:00:01.

Типичные ошибки

  • «Процедура или функция с указанным именем не определена (ТекущаяДатаСеанса)». Вызов в процедуре &НаКлиенте: в тонком и веб-клиенте этой функции нет, как и ТекущаяУниверсальнаяДата() с ЧасовойПоясСеанса(). Получите дату на сервере или через ОбщегоНазначенияКлиент.ДатаСеанса().
  • Время у филиала смещено на несколько часов. Пояс базы не задан, и ТекущаяДатаСеанса() отдаёт время сервера. Код ни при чём: задайте пояс базы или сеанса.
  • Документ «завтрашним» числом. Дату взяли через ТекущаяДата() на клиенте, а у пользователя часы ушли вперёд или стоит другой пояс. Около полуночи такой документ попадает в чужие сутки и чужие остатки.
  • Остатки «на сейчас» не видят свежий документ. Остатки(&Сейчас) учитывает движения строго до переданного момента. Документ восточного филиала, проведённый по его времени, для сеанса с московским поясом оказывается «в будущем». Для текущих остатков период в виртуальную таблицу не передавайте.
  • Длительность операции 0 или отрицательная. Её считали разностью ТекущаяДата(): шаг — целая секунда, а смена пояса или переход на летнее время сдвигает местное время на час. Берите ТекущаяУниверсальнаяДатаВМиллисекундах() и не вычитайте клиентское значение из серверного — это разные часы.
  • Год выводится как «2 026». Строка(Год(Сейчас)) форматирует число с разделителем групп. Нужен Формат(Год(Сейчас), "ЧГ=0").

Частые вопросы

Как получить текущую дату и время одной строкой?

На сервере — ТекущаяДатаСеанса(): значение типа Дата всегда содержит и дату, и время с точностью до секунды. На клиенте — ОбщегоНазначенияКлиент.ДатаСеанса() или серверная функция, как в примерах выше. Только дату покажет Формат(Сейчас, "ДЛФ=D"), только текущее время — Формат(Сейчас, "ДЛФ=T").

Как узнать часовой пояс компьютера пользователя на тонком клиенте?

Функции ЧасовойПояс() на тонком клиенте нет, но смещение вычисляется: ТекущаяДата() - УниверсальноеВремя(ТекущаяДата()) — число секунд, для Новосибирска 25 200. Без второго параметра УниверсальноеВремя() считает по поясу компьютера. Передайте смещение на сервер, превратите в строку функцией ЧасовойПоясПоСмещению() и сохраните пользователю — модуль сеанса применит пояс при следующем входе. Переход на летнее время строка вида GMT+7 не учитывает.

Можно ли сменить пояс базы, пока пользователи работают?

Нет, УстановитьЧасовойПоясИнформационнойБазы() требует монопольного режима. Пояс своего сеанса УстановитьЧасовойПоясСеанса() меняет в любой момент; вызов без параметра возвращает сеансу пояс базы, а если он не задан — пояс сервера.

Чем ТекущаяДатаСеанса() отличается от ПолучитьОперативнуюОтметкуВремени()?

Оперативная отметка выстраивает документы по порядку: функция выдаёт неубывающие значения и, если текущая секунда уже выдана, возвращает на секунду больше. По справке в клиент-серверном варианте за основу берётся время компьютера сервера, в файловом — компьютера пользователя. Для «сегодня» в документах и отчётах берите дату сеанса.

Когда проще заказать

Если даты «плывут» сразу в нескольких местах — документы филиала уходят в соседние сутки, регламентная выгрузка забирает не тот день, — нужно пройти все вызовы ТекущаяДата(), настроить пояса и проверить фоновые задания. Такую работу берут исполнители площадки, см. услуги по доработке 1С. Опишите симптомы на странице размещения задачи: оценка бесплатная, ответ в течение рабочего дня.

По теме

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

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

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

Станьте частью сообщества!
Войдите или зарегистрируйтесь, и вы сможете участвовать в обсуждениях.


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