При переходе с обычных форм (например, 1С:Бухгалтерии 2.0) на управляемое приложение в 1С:Бухгалтерии 8.3 (редакция 3.0) многие пользователи сталкиваются с тем, что привычный пункт меню установки рабочей даты отсутствует на привычном месте. Разберем подробно, где находится эта настройка в современных релизах, в чем заключаются технические особенности работы механизма и как правильно использовать его на практике.
Выясним, где именно в программе задается дата для подстановки в новые документы. Начиная с последних релиза редакции 3.0, функционал установки рабочей даты вынесен в персональные настройки пользователя. Для изменения даты выполним следующие шаги:
Если требуется вернуть стандартное поведение программы, достаточно переключить тумблер обратно в положение Текущая дата компьютера. После этого при создании новых документов система снова будет запрашивать реальное системное время с вашего компьютера.
Проанализируем, почему этот механизм изменился по сравнению со старыми версиями платформы. В платформе 1С:Предприятие 8 на обычных формах существовало глобальное свойство РабочаяДата. Однако в режиме управляемого приложения логика работы системы принципиально изменилась:
Платформенное свойство РабочаяДата доступно для прямого изменения только в режиме толстого клиента. В управляемом интерфейсе (тонкий клиент и веб-клиент) весь основной программный код исполняется на сервере, где системная дата задается операционной системой сервера. Поэтому в Библиотеке стандартных подсистем (БСП) механизм рабочей даты был реализован на прикладном уровне как персональная настройка пользователя.
Разберем на примере кода, как конфигурация определяет рабочую дату при подстановке в формы:
// В управляемом приложении рабочая дата пользователя получается
// через функции Библиотеки Стандартных Подсистем (БСП)
РабочаяДатаПользователя = НастройкиПользователяКлиентСервер.ПолучитьРабочуюДату();
// Если персональная дата не задана, используется системная дата сеанса
Если НЕ ЗначениеЗаполнено(РабочаяДатаПользователя) Тогда
РабочаяДатаПользователя = ТекущаяДатаСеанса();
КонецЕсли;
Рассмотрим детально, какие процессы в программе затрагивает подстановка рабочей даты, чтобы избежать ошибок при ведении учета.
Рабочая дата влияет на:
Рабочая дата НЕ влияет на:
Посмотрим на практические сценарии использования рабочей даты в работе бухгалтера:
Сценарий 1: Массовый ввод документов за прошлый или будущий период.
Если в конце месяца требуется выписать большую пачку реализаций или ввести поступившие первичные документы за прошлую неделю, установите рабочую дату на требуемое число. Это избавит от необходимости вручную править дату в каждом созданном документе.
Сценарий 2: Расчеты и алгоритмы, жестко завязанные на системное время.
Некоторые узкоспециализированные расчетные механизмы или внешние обработки могут обращаться напрямую к платформенной функции ТекущаяДата(), игнорируя настройки БСП. В таких случаях (особенно в файловых база данных) для корректного проведения расчетов может потребоваться временное изменение системной даты непосредственно в операционной системе Windows.