Формат даты в 1С:Предприятии 8.3 — где он задаётся и как его поменять

· 9 мин

Содержание

Сменить формат даты в 1С 8.3 можно на трёх уровнях: для всей информационной базы — в конфигураторе через Администрирование → Региональные установки информационной базы, для одного поля формы или отчёта — свойством «Формат», для вывода из кода — функцией Формат(Дата, "ДФ=dd.MM.yyyy"). Настроек формата даты у отдельного пользователя в платформе нет.

Частое заблуждение — что формат даты в 1С:Предприятии берётся из настроек Windows. Это не так: тонкий и толстый клиент берут его из региональных установок базы или из кода локализации сеанса. Поэтому смена формата в «Панели управления» Windows на программу не влияет.

С чего начать: какой формат даты и где вы хотите изменить

Прежде чем что-то менять, определите масштаб задачи. От него зависит, нужен ли вообще конфигуратор.

Что хотите получитьГде менятьНужны права администратора
Все даты в базе в другом виде (например, 2026-10-22 вместо 22.10.2026)Региональные установки информационной базыДа
Дату в одном поле формы без времени или с днём неделиСвойство «Формат» элемента формыДа, через конфигуратор или расширение
Дату в колонке отчётаОформление поля в настройках отчёта (СКД)Нет, если отчёт позволяет менять настройки
Дату в печатной форме, письме, файле выгрузкиФункция Формат() в кодеДа, нужен разработчик
Другой язык и порядок «месяц/день» для части пользователейПараметр запуска /VL или код локализации в Формат()Зависит от способа

Если база типовая и на поддержке, правьте формы не в основной конфигурации, а в расширении. Так изменения переживут обновление релиза.

Где вам нужно поменять вид даты?

Смена формата даты для всей базы через региональные установки

Это главный «рубильник». Он определяет, как платформа показывает даты, числа и булевы значения там, где разработчик не задал формат явно.

Пошагово

  1. Откройте базу в режиме Конфигуратор под пользователем с полными правами.
  2. Выберите в главном меню Администрирование → Региональные установки информационной базы.
  3. В поле «Язык (Страна)» проверьте код локализации. Для России это русский (Россия), код ru_RU.
  4. Если нужно задать свой вид даты, впишите форматную строку в поле формата даты, например yyyy-MM-dd. Для времени — отдельное поле, например HH:mm.
  5. Нажмите «ОК».
  6. Закройте и снова откройте 1С:Предприятие у пользователей, чтобы сеансы подхватили новые установки.

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

Что изменится, а что нет

  • ✅ Поля ввода дат в формах без собственного формата.
  • ✅ Колонки списков и табличных частей.
  • ✅ Отчёты, где у поля не настроено оформление.
  • ❌ Печатные формы и тексты, в которых дата выводится через Формат() с явной строкой.
  • ❌ Элементы, у которых в конфигураторе заполнено свойство «Формат».

Отсюда типичная картина: в документе дата уже 2026-10-22, а в печатной форме по-прежнему 22.10.2026. Это нормально — печатная форма живёт по своему коду.

Формат даты в конфигураторе: реквизит, форма, отчёт

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

Состав даты у реквизита

У реквизита типа «Дата» есть квалификатор «Состав даты» с тремя вариантами:

  • 📅 Дата — хранится и показывается только день;
  • 🕐 Время — только время;
  • 📅🕐 Дата и время — полное значение.

Если в документе показывается лишнее время 0:00:00, первым делом проверьте этот квалификатор. Но менять его у существующего реквизита с данными нужно осторожно: при переходе на «Дата» время в сохранённых значениях обнулится при записи объекта.

Свойство «Формат» у элемента формы

  1. Откройте форму документа или справочника в конфигураторе (в типовой — заимствуйте форму в расширение).
  2. Выделите поле с датой в дереве элементов.
  3. В палитре свойств найдите «Формат» и нажмите кнопку выбора — откроется конструктор форматной строки.
  4. На вкладке «Дата» выберите готовый вариант или впишите свой, например dd MMMM yyyy.
  5. Если поле редактируемое, отдельно задайте «Формат редактирования». Он отвечает за вид даты в момент ввода.

Для формата редактирования выбирайте цифровые шаблоны вроде dd.MM.yyyy. Текстовый месяц («октября») в режиме ввода неудобен: пользователь не сможет набрать дату с клавиатуры привычным способом.

Формат даты в отчёте на СКД

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

Программное форматирование: функция Формат() и форматная строка

В коде дату превращают в строку функцией Формат(). Второй параметр — форматная строка из пар «параметр=значение» через точку с запятой.

Главные параметры для даты

ПараметрНазначениеПример
ДФ (DF)Свой шаблон датыДФ=dd.MM.yyyy
ДЛФ (DLF)Готовый локальный форматДЛФ=DD
ДП (DE)Текст для пустой датыДП='не указана'
Л (L)Код локализацииЛ=en_US

Символы шаблона ДФ

  • d / dd — день без ведущего нуля / с нулём;
  • ddd / dddd — краткий / полный день недели;
  • M / MM — месяц числом; MMM / MMMM — названием;
  • yy / yyyy — год двумя / четырьмя цифрами;
  • H / HH — часы в 24-часовом формате, h / hh — в 12-часовом;
  • m / mm — минуты, s / ss — секунды;
  • q — номер квартала.

Можно писать и русскими буквами (дд.ММ.гггг), но не смешивайте алфавиты в одной строке — так проще читать и проверять код.

Примеры на одной дате

Возьмём 22 октября 2026 года, 14:05:09, четверг.

Дт = Дата(2026, 10, 22, 14, 5, 9);

Формат(Дт, "ДФ=dd.MM.yyyy");          // 22.10.2026
Формат(Дт, "ДФ=yyyy-MM-dd");          // 2026-10-22
Формат(Дт, "ДФ=yyyyMMdd");            // 20261022
Формат(Дт, "ДФ='dd MMMM yyyy'");      // 22 октября 2026
Формат(Дт, "ДФ=dddd");                // четверг
Формат(Дт, "ДФ=HH:mm");               // 14:05
Формат(Дт, "ДЛФ=D");                  // 22.10.2026
Формат(Дт, "ДЛФ=DD");                 // 22 октября 2026 г.
Формат(Дт, "ДЛФ=DT");                 // 22.10.2026 14:05:09
Формат('00010101', "ДФ=dd.MM.yyyy; ДП='—'");  // —

Значения параметров с пробелами, точкой с запятой или знаком «=» берите в одинарные кавычки, как в примере с dd MMMM yyyy.

Строка из даты для файла и имени файла

Для имён файлов и обменов нужен формат без точек, двоеточий и пробелов. Удобный вариант — ДФ=yyyyMMdd_HHmmss: имена сортируются по времени и не содержат запрещённых символов Windows.

ИмяФайла = "Выгрузка_" + Формат(ТекущаяДатаСеанса(), "ДФ=yyyyMMdd_HHmmss") + ".xml";

Обратная задача: дата из строки

Конструктор Дата("...") принимает строку только вида ГГГГММДДччммсс, например Дата("20261022"). Строку 22.10.2026 он не разберёт и выдаст ошибку преобразования. Для такого случая напишите короткую функцию:

Функция СтрокаДДММГГГГВДату(Знач Текст)

    Части = СтрРазделить(СокрЛП(Текст), ".", Ложь);
    Если Части.Количество() <> 3 Тогда
        Возврат Дата(1, 1, 1);
    КонецЕсли;

    Попытка
        Возврат Дата(Число(Части[2]), Число(Части[1]), Число(Части[0]));
    Исключение
        Возврат Дата(1, 1, 1);
    КонецПопытки;

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

Функция возвращает пустую дату, если строка битая. Вызывающий код проверяет результат на Дата(1, 1, 1) и сообщает пользователю, какая строка не разобралась.

Как показать период, а не одну дату

С периодами формат даты работает иначе. Вывести «Октябрь 2026 г.» через две даты и тире — плохая идея: получится громоздко.

Функция ПредставлениеПериода()

Платформа умеет сама подобрать короткое представление периода:

Начало = Дата(2026, 10, 1);
ПредставлениеПериода(Начало, КонецМесяца(Начало));      // Октябрь 2026 г.
ПредставлениеПериода(Начало, КонецКвартала(Начало));    // 4 квартал 2026 г.
ПредставлениеПериода(НачалоГода(Начало), КонецГода(Начало)); // 2026 г.

Если границы не совпадают с месяцем, кварталом или годом, функция выведет обе даты. Это ожидаемо.

Граница периода и время

Самая коварная особенность периода — время в конце. Дата 31.10.2026 без времени — это 31.10.2026 0:00:00. Если отбирать данные «до 31.10.2026» такой датой, весь последний день выпадет из выборки.

  • ✅ Конец периода получайте через КонецДня(), КонецМесяца() и подобные функции.
  • ✅ В формах для выбора периода используйте тип СтандартныйПериод — он сам хранит правильные границы.
  • ❌ Не храните конец периода как дату, отформатированную без времени: формат меняет только вид, а не значение.

Формат даты влияет только на отображение. Значение в базе остаётся прежним, и отборы, сравнения и запросы работают по полному значению вместе со временем.

Периоды в запросах

В языке запросов функции Формат() нет. Даты из запроса получайте как значения, а форматируйте уже при выводе. Если нужна группировка по месяцам, используйте НАЧАЛОПЕРИОДА(Поле, МЕСЯЦ) в запросе, а представление «Октябрь 2026 г.» стройте в коде или в оформлении отчёта.

Локализация: формат даты для других языков и стран

Формат даты в 1С зависит от кода локализации. Для ru_RU короткая дата — 22.10.2026, для en_US — 10/22/2026, для de_DE — 22.10.2026, но с немецкими названиями месяцев.

Три способа задать локализацию

  1. Для всей базы — поле «Язык (Страна)» в региональных установках информационной базы.
  2. Для сеанса — параметр командной строки /VL, например /VLen_US. Его можно прописать в свойствах базы в окне запуска (поле дополнительных параметров) у конкретного пользователя.
  3. Для одной строки в коде — параметр Л в форматной строке.
Формат(Дт, "Л=en_US; ДЛФ=D");    // 10/22/2026
Формат(Дт, "Л=en_US; ДЛФ=DD");   // October 22, 2026
Формат(Дт, "Л=de_DE; ДФ='dd. MMMM yyyy'");  // 22. Oktober 2026

Узнать текущие настройки из кода можно функциями КодЛокализацииИнформационнойБазы() и ТекущийКодЛокализации().

Многоязычные печатные формы

Если печатная форма уходит иностранному контрагенту, формируйте дату с явным Л= в каждой строке Формат(). Не полагайтесь на локализацию сеанса: бухгалтер, работающий в русском интерфейсе, иначе получит в английском инвойсе «22 октября».

Для однозначного обмена с внешними системами выбирайте формат ISO yyyy-MM-dd или yyyy-MM-ddTHH:mm:ss. Его одинаково читают любые программы и страны, а путаница «день/месяц» исключена.

Частые ошибки при смене формата даты

Диагностика: выберите симптом

Ещё одна неочевидная ловушка — ведущий ноль. Шаблон d.M.yyyy даст 5.3.2026, а dd.MM.yyyy — 05.03.2026. Для реестров, загружаемых в банк или налоговую программу, нужен второй вариант: внешние системы часто проверяют длину поля.

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

Можно ли задать свой формат даты отдельному пользователю?
Персональной настройки формата даты у пользователя в платформе нет. Отдельному пользователю можно задать код локализации сеанса параметром запуска /VL — тогда даты покажутся в формате выбранной страны.
Почему в Excel после выгрузки из 1С дата превращается в число или текст?
Excel хранит дату как число дней и сам решает, как её показать. Если дата пришла строкой, Excel не всегда её распознает. Выгружайте дату как значение типа «Дата», а не как результат Формат(), и задайте формат ячейки уже в Excel.
Нужно ли выгонять пользователей, чтобы поменять региональные установки?
Работа пользователей при этом не ломается, но новые установки они увидят после повторного входа в программу. Удобнее менять настройки вне рабочего времени и предупредить коллег.
Какой формат даты выбрать для обмена между базами и с сайтом?
Формат ISO: yyyy-MM-ddTHH:mm:ss. Он не зависит от страны и одинаково читается 1С, веб-сервисами и базами данных.
Как вывести месяц словом в именительном падеже, например «Октябрь 2026»?
Для периода надёжнее всего ПредставлениеПериода() с границами месяца: она вернёт «Октябрь 2026 г.». Шаблон с MMMM рядом с днём даёт родительный падеж — «22 октября».