Быстрый старт · 9 мин
Как в 1С задать дату: полное руководство
Как задать дату в 1С: ввод в поля документов, рабочая дата, периоды отчётов, написание дат в коде на встроенном языке и типичные ошибки при работе с датами.
Дата в 1С встречается повсюду: в шапках документов, в периодах отчётов, в регистрах, в запросах и в программном коде. При этом «задать дату» может означать разные действия — от простого ввода числа в поле до формирования значения типа «Дата» на встроенном языке. Ниже разобраны все основные сценарии с точными шагами и ограничениями.
Ключевой момент, который нужно понять сразу: дата документа и рабочая дата сеанса — не одно и то же. Дата документа хранится в самом документе и определяет его положение в учёте. Рабочая дата — это настройка сеанса пользователя, которая подставляется по умолчанию в новые документы. Путаница между ними — самая частая причина ошибок «документ создался не тем числом».
Как задать дату в поле документа или справочника
В любом документе 1С поле даты обычно находится в шапке рядом с номером. Чтобы изменить его, щёлкните по полю и введите значение с клавиатуры в формате ДД.ММ.ГГГГ — разделители программа подставит сама, достаточно набрать цифры подряд, например 15032026. После нажатия Enter или Tab значение будет принято.
Второй способ — календарь. Справа от поля даты есть кнопка со стрелкой или значком календаря: при нажатии открывается мини-календарь, где можно выбрать день, переключить месяц и год стрелками. Это удобно, когда нужная дата находится в другом месяце и вводить её вручную дольше.
Если в поле указаны и дата, и время, они вводятся через пробел: сначала дата, затем часы и минуты. Время имеет значение для документов, порядок которых внутри дня влияет на последовательность проведения, — например, для кассовых операций или складских перемещений.
- 1Откройте документ и щёлкните по полю даты в шапке
- 2Введите дату цифрами в формате ДДММГГГГ или выберите день в календаре
- 3При необходимости добавьте время через пробел
- 4Нажмите Enter и проверьте, что значение принято
- 5Запишите или проведите документ, чтобы дата сохранилась
Как изменить рабочую дату сеанса
Рабочая дата определяет, какое число 1С подставляет в новые документы по умолчанию. По умолчанию она равна текущей дате компьютера, но её можно изменить — это полезно, когда нужно массово ввести документы прошлым периодом, например при переносе данных из бумажного учёта.
В типовых конфигурациях на платформе 8.3 рабочая дата меняется через меню: «Все функции» → «Стандартные» → «Установка рабочей даты», либо через раздел «Администрирование» → «Параметры сеанса» (название пункта зависит от конфигурации). В открывшемся окне выберите вариант: текущая дата компьютера, произвольная дата или «текущая дата минус N дней».
Важно понимать ограничение: рабочая дата действует только в рамках текущего сеанса пользователя и не влияет на других пользователей базы. После перезапуска программы настройка сбрасывается, если конфигурация не сохраняет её автоматически.
Как задать период в отчётах и журналах
В отчётах дата задаётся не одним значением, а периодом — датой начала и датой окончания. Поля периода расположены в верхней части формы отчёта. Их можно заполнить вручную, выбрать через календарь или воспользоваться кнопкой выбора стандартного периода: «Сегодня», «Этот месяц», «Прошлый квартал», «Этот год» и т.д.
В журналах документов период фильтрует список. Обратите внимание: если журнал пуст, хотя документы точно есть, первым делом проверьте установленный период — часто он сужен до одного дня или сброшен на пустое значение. Кнопка «Установить интервал дат» в панели журнала позволяет быстро расширить выборку.
Дата запрета редактирования: почему дату нельзя поменять
Если поле даты в документе недоступно для изменения или программа выдаёт сообщение о запрете редактирования, значит, в базе установлена дата запрета изменения данных. Это штатный механизм закрытия периода: все документы до указанного числа блокируются от изменений, чтобы закрытый отчётный период не «поплыл».
Проверить настройку можно в разделе «Администрирование» → «Поддержка и обслуживание» → «Даты запрета изменения данных» (в конфигурациях на БСП). Изменить дату запрета может только пользователь с соответствующими правами — обычно администратор или главный бухгалтер. Если вам нужно исправить документ в закрытом периоде, согласуйте временное открытие периода и обязательно верните запрет после правки.
Как задать дату в коде на встроенном языке
В модуле дату создают функцией Дата(), которая принимает параметры в порядке: год, месяц, день и при необходимости часы, минуты, секунды. Например, Дата(2026, 3, 15) вернёт 15 марта 2026 года, а Дата(2026, 3, 15, 14, 30, 0) — ту же дату с временем 14:30.
Для получения текущего момента используйте ТекущаяДатаСеанса() — она возвращает дату и время сеанса на сервере, что корректнее, чем дата клиентского компьютера. Преобразовать строку в дату можно функцией Дата("20260315143000") — строка передаётся в формате ГГГГММДДччммсс. Для арифметики с датами применяют ДобавитьМесяц(), НачалоДня(), КонецДня() и сложение с числом секунд.
НачалоПериода = НачалоМесяца(ТекущаяДатаСеанса()); КонецПериода = КонецМесяца(ТекущаяДатаСеанса()); ПроизвольнаяДата = Дата(2026, 3, 15); Завтра = ТекущаяДатаСеанса() + 86400;Частая ошибка разработчиков — передавать параметры Дата() в «человеческом» порядке день-месяц-год. Функция ожидает именно год-месяц-день, поэтому Дата(15, 3, 2026) вернёт некорректное значение или ошибку. Второй подводный камень — пустая дата: Дата(1,1,1) считается признаком «дата не заполнена», и сравнение с ней используют для проверки заполненности реквизитов.
Формат отображения даты и настройки региона
То, как дата выглядит на экране (15.03.2026 или 03/15/2026), определяется региональными настройками информационной базы и операционной системы. В конфигураторе региональные параметры задаются в свойствах базы: «Администрирование» → «Региональные установки информационной базы». Там же настраивается формат даты и времени по умолчанию.
В коде формат вывода контролируется функцией Формат() с параметром вида "ДЛФ=D" (краткая дата) или "ДЛФ=DD" (полная, с названием месяца). Это полезно при формировании печатных форм и выгрузок, где требуется строго определённое представление даты независимо от настроек сеанса.
Проверка результата и контрольные точки
После установки даты убедитесь, что она применилась там, где нужно. Для документа — перепроведите его и посмотрите движения по регистрам: дата записей должна совпадать с датой документа. Для отчёта — сверьте границы периода в шапке с ожидаемыми и проверьте, что в выборку попали документы крайних дат периода.
Как проверить результат
Совпадает с рабочей датой или введённым значением
Подставляется неожиданное число — проверьте рабочую дату сеанса
Данные включают документы с даты начала по дату окончания
Крайние дни пусты — период задан неверно или обрезан
Дата(2026,3,15) возвращает 15.03.2026
Получается другое число — перепутан порядок параметров
Что важно запомнить
Дата документа вводится в шапке вручную или через календарь, рабочая дата сеанса задаётся в настройках и влияет только на новые документы, а в коде дату создают функцией Дата(год, месяц, день). Если дату нельзя изменить — проверьте дату запрета редактирования.
Частые вопросы
Почему новый документ создаётся не сегодняшним числом?
Скорее всего, в сеансе установлена рабочая дата, отличная от текущей. Откройте настройки рабочей даты и переключите её на «Текущая дата компьютера». Также проверьте системную дату самого компьютера — при её сбое 1С берёт неверное значение за основу.
Как ввести дату быстрее, без мыши?
Щёлкните в поле даты и наберите цифры подряд без точек: 150324 превратится в 15.03.2026 (год дополняется текущим веком). Подтвердите ввод клавишей Enter или Tab — это самый быстрый способ при массовом вводе документов.
Можно ли изменить дату проведённого документа?
Да, если период не закрыт датой запрета и у вас есть права. Отмените проведение, измените дату, затем проведите документ заново. Учтите: перепроведение с новой датой изменит движения по регистрам, что может повлиять на последовательность других документов этого дня.
Чем отличается ТекущаяДата() от ТекущаяДатаСеанса()?
ТекущаяДатаСеанса() возвращает время сервера, единое для всех пользователей базы, и потому корректна для учётных операций. ТекущаяДата() на клиенте берёт часы компьютера пользователя, которые могут быть сбиты. В новых разработках рекомендуется использовать ТекущаяДатаСеанса().
Как задать пустую дату или проверить, что дата не заполнена?
Пустая дата в 1С — это значение Дата(1,1,1), отображается как 01.01.0001. Для проверки в коде используют сравнение: Если РеквизитДата = Дата(1,1,1) Тогда ... или функцию ЗначениеЗаполнено(), которая для пустой даты вернёт Ложь.
Почему в отчёте не видно документов последнего дня периода?
Проверьте, как задана дата окончания: если в ней стоит время 00:00:00, документы за этот день с более поздним временем не попадут в выборку. Используйте стандартные периоды отчёта (они автоматически ставят конец дня 23:59:59) или в коде применяйте функцию КонецДня().