Где хранится рабочая дата в 1С и как ей управлять?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При работе с типовыми конфигурациями 1С часто возникает вопрос: где именно система хранит значение «рабочей даты» и можно ли ею управлять программно? В этой статье мы подробно разберем механизм работы с рабочей датой, рассмотрим, как она настраивается пользователем и как к ней обращаться в программном коде.

Понятие рабочей даты в 1С

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

С технической точки зрения платформа работает с концепцией РабочаяДата на уровне текущего сеанса пользователя. В момент запуска программы система считывает настройки из профиля пользователя и устанавливает это значение в память процесса.

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

Если вам или пользователям программы необходимо изменить рабочую дату для оперативной работы, это можно сделать через стандартные настройки интерфейса:

  1. Откройте меню Сервис (или соответствующий раздел настроек пользователя в зависимости от конфигурации).
  2. Перейдите в пункт Персональные настройки.
  3. Найдите поле Рабочая дата.
  4. Установите необходимое значение и сохраните настройки.

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

Программное получение и установка рабочей даты

Разработчикам важно использовать унифицированные методы БСП (Библиотеки стандартных подсистем), чтобы код оставался рабочим после обновлений конфигурации. Давайте рассмотрим, как правильно работать с датой в типовых решениях, таких как 1С:Бухгалтерия 3.0 и 1С:ЗУП 3.1.

Работа в 1С:Бухгалтерия 3.0

Для получения актуальной рабочей даты в 1С:Бухгалтерия 3.0 мы используем функционал ОбщегоНазначенияБП. Рассмотрим пример получения значения:


// Получение текущей рабочей даты
РабочаяДата = ОбщегоНазначенияБП.ПолучитьРабочуюДату();

Если вам требуется программно установить рабочую дату для пользователя, воспользуйтесь вызовом серверных процедур:


// Установка рабочей даты
ОбщегоНазначенияБПВызовСервера.УстановитьЗначениеПоУмолчанию("РабочаяДата", ЗначениеРабочейДатыДляСохранения);

Работа в 1С:ЗУП 3.1

В конфигурации 1С:Зарплата и Управление Персоналом механизмы унифицированы через общий модуль ОбщегоНазначения. Рекомендуется использовать методы, которые автоматически проверяют наличие пользовательской настройки:


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

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

Почему не стоит искать «таблицу с датой»

Часто возникает соблазн поискать рабочую дату в регистрах или константах. Однако мы настоятельно рекомендуем отказаться от попыток прямого редактирования данных в хранилищах настроек. Это связано с тем, что:

Используя методы ОбщегоНазначения, вы обеспечиваете стабильность своего кода. Если вы столкнулись с необходимостью изменения даты, всегда отдавайте предпочтение стандартным методам УстановитьЗначениеПоУмолчанию или встроенным настройкам пользователя.

← На главную