К статье
Практический материал

Разработка и Конфигурация · 10 мин

Локальный формат даты в 1С: что это и как с ним работать

Что такое локальный формат даты в 1С, где он задаётся, как изменить отображение дат в документах и отчётах и исправить типичные ошибки форматирования.

Локальный формат даты в 1С — это правило, по которому платформа отображает и преобразует даты с учётом региональных настроек: порядка дня, месяца и года, разделителей, длины года (две или четыре цифры) и языка названий месяцев. Одна и та же дата может выглядеть как «01.03.2026», «03/01/2026» или «1 марта 2026 г.» в зависимости от того, какой локальный формат применён.

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

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

Что именно определяет локальный формат даты

Локальный формат включает несколько составляющих. Первая — порядок компонентов: в российском и европейском стандарте сначала идёт день, затем месяц и год (ДД.ММ.ГГГГ), в американском — месяц, день, год (ММ/ДД/ГГГГ). Вторая — символ-разделитель: точка, слэш или дефис. Третья — представление года: две цифры (25) или четыре (2026). Четвёртая — язык и стиль текстового представления, когда месяц пишется словом.

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

Откуда 1С берёт локальный формат: четыре уровня

Первый уровень — региональные настройки операционной системы, под которой работает клиент или сервер 1С. Если в Windows выбрана русская локаль, даты по умолчанию выводятся как ДД.ММ.ГГГГ; при английской (США) — как ММ/ДД/ГГГГ. Именно этот уровень чаще всего «ломает» отчёты после переезда сервера или смены языка системы.

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

Четвёртый уровень — явное форматирование в коде или в макете. Функция Формат() с параметром локального формата (например, «ДЛФ=D» или «ДФ=dd.MM.yyyy») жёстко задаёт вид даты независимо от системных настроек. Формат, указанный явно, имеет приоритет над всеми остальными уровнями.

Дата отличается у одного пользователяЛокаль его рабочего места

Проверьте региональные настройки ОС на его компьютере

Дата отличается у всех пользователейНастройки сервера или базы

Проверьте локаль сервера 1С и свойства информационной базы

Дата неверна только в одном отчётеФормат задан в коде или макете

Ищите Формат() или шаблон ДФ в модуле отчёта

Как проверить и изменить локальный формат в ОС и в базе

На уровне Windows откройте «Панель управления» → «Регион» (или «Параметры» → «Время и язык» → «Язык и регион») и посмотрите краткий формат даты. Изменение применяется к новым сеансам 1С — перезапустите клиент после смены настроек. На сервере, где работает агент 1С или СУБД, локаль проверяется под учётной записью службы сервера 1С, а не под вашей административной учёткой — это частая причина расхождений.

На уровне информационной базы в конфигураторе откройте «Администрирование» → «Параметры информационной базы» и проверьте установленные региональные параметры. В клиент-серверном варианте также имеет значение локаль, заданная при создании базы в консоли кластера. Если база создавалась с английской локалью, а пользователи работают с русской, возможны сюрпризы при серверных вычислениях с датами в строковом виде.

Порядок диагностики неправильного формата даты
  1. 1
    Воспроизведите проблему и зафиксируйте, у кого и где дата выглядит неверно
  2. 2
    Проверьте региональные настройки ОС на проблемном рабочем месте или сервере
  3. 3
    Проверьте параметры локализации информационной базы в конфигураторе
  4. 4
    Если проблема в конкретном отчёте или печатной форме — откройте модуль и найдите вызовы Формат() с датой
  5. 5
    Исправьте найденный уровень и перезапустите сеанс 1С для проверки

Явное форматирование даты в коде 1С

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

Также доступен параметр Л (код локализации), позволяющий вывести дату по правилам конкретной страны, например английской, даже если система русская. Это полезно при формировании документов для иностранных контрагентов.

bsl
ДатаДокумента = ТекущаяДатаСеанса();
Строка1 = Формат(ДатаДокумента, "ДЛФ=D");          // полная дата словами по локали
Строка2 = Формат(ДатаДокумента, "ДФ=dd.MM.yyyy");   // 01.03.2026 независимо от локали
Строка3 = Формат(ДатаДокумента, "Л=en_US; ДЛФ=D");  // полная дата по английской локали

Обратите внимание: пустая дата (01.01.0001) при форматировании часто выводится как «01.01.0001» или пустой строкой в зависимости от контекста. Перед выводом в печатную форму стоит проверять дату на заполненность функцией ЗначениеЗаполнено().

Локальный формат при обмене данными и интеграциях

Самый рискованный сценарий — передача дат в виде строк между системами с разной локалью. Если одна база выгружает «03.04.2026» (3 апреля), а принимающая система читает её как ММ/ДД/ГГГГ, получится 4 марта — и ошибку можно долго не замечать, потому что дата формально корректна.

Безопасная практика — использовать в обменах локаль-независимый формат ISO 8601: ГГГГ-ММ-ДД (например, 2026-03-04). В 1С такой вид получают через ДФ=yyyy-MM-dd. В XML и JSON даты по стандартам обмена 1С (EnterpriseData, XDTO) сериализуются именно в ISO-формате, поэтому штатные обмены обычно защищены, а проблемы возникают в самописных текстовых выгрузках CSV и Excel.

Типичные ошибки и как их проверить

Чаще всего встречаются четыре ошибки. Первая — разработчик форматирует дату без явного шаблона, полагаясь на локаль своей машины, и на сервере с другими настройками получает другой вид строки. Вторая — ручной разбор строки с датой через строковые функции вместо использования типа Дата, что ломается при смене разделителя. Третья — выгрузка в Excel, где Excel сам переконвертирует текст в дату по своей локали. Четвёртая — смена локали ОС на сервере без перезапуска служб 1С, из-за чего часть сеансов работает со старыми настройками.

Проверка результата проста: после изменений сформируйте тестовый отчёт или печатную форму с известной датой, где день больше 12 (например, 25 марта) — такой пример однозначно показывает порядок дня и месяца, в отличие от неоднозначной даты вроде 03.04.

Типичные ошибки
01
Форматировать дату без шаблона ДФ/ДЛФ — вид строки меняется от машины к машине
02
Передавать даты строкой ДД.ММ.ГГГГ в обменах — принимающая сторона с локалью ММ/ДД/ГГГГ переставит день и месяц
03
Менять локаль ОС и забывать перезапустить службу сервера 1С — старые сеансы работают с прежними настройками
04
Проверять формат на дате вроде 05.06 — перестановка дня и месяца остаётся незамеченной
Контрольные точки

Как проверить результат

Печатная форма документа
Норма

Дата соответствует ожидаемому виду (например, 25.03.2026)

Тревожный признак

День и месяц переставлены или другой разделитель

Выгрузка в файл
Норма

Даты в формате ГГГГ-ММ-ДД или в заявленном шаблоне

Тревожный признак

Смешанные форматы в разных строках

Поведение у разных пользователей
Норма

Одинаковый вид даты на всех рабочих местах

Тревожный признак

У части пользователей формат отличается

Итог и частые вопросы

Локальный формат даты влияет только на представление, не на хранение, поэтому большинство проблем решается настройкой отображения, а не исправлением данных. Для стабильного результата задавайте формат явно в коде, а в обменах используйте ISO-формат ГГГГ-ММ-ДД.

Итог

Что важно запомнить

Локальный формат даты — это правило отображения, а не хранения. Он определяется локалью ОС, настройками базы и явным форматированием в коде; последний имеет приоритет. Для обменов используйте ISO-формат, для проверки — дату с днём больше 12.

Чем локальный формат даты отличается от формата хранения даты в 1С?

Хранение в базе едино и не зависит от региона: дата сохраняется во внутреннем формате платформы с точностью до секунды. Локальный формат применяется только при выводе значения в строку — на экран, в печать или в файл. Поэтому «неправильная» дата на экране почти никогда не означает испорченные данные.

Почему у одного пользователя даты отображаются иначе, чем у остальных?

Скорее всего, на его компьютере в операционной системе выбрана другая региональная схема (например, английская вместо русской). Проверьте настройки региона в ОС этого рабочего места и перезапустите клиент 1С после изменения.

Как вывести дату в 1С всегда в виде ДД.ММ.ГГГГ независимо от настроек?

Используйте функцию Формат() с явным шаблоном: Формат(Дата, "ДФ=dd.MM.yyyy"). Такой вызов игнорирует региональные настройки системы и даёт одинаковый результат на любой машине.

Какой формат даты безопасно использовать при выгрузке в другие системы?

Рекомендуется локаль-независимый формат ISO 8601 — ГГГГ-ММ-ДД (шаблон ДФ=yyyy-MM-dd). Он однозначно читается большинством систем и исключает перестановку дня и месяца, характерную для текстовых форматов ДД.ММ.ГГГГ и ММ/ДД/ГГГГ.

Изменил региональные настройки на сервере, но формат дат не поменялся. Что делать?

Служба сервера 1С и открытые сеансы продолжают работать со старыми настройками. Перезапустите службу агента сервера 1С и завершите активные сеансы пользователей, затем проверьте формат повторно. Также убедитесь, что локаль изменена для той учётной записи, под которой работает служба.

Можно ли задать формат даты для конкретного пользователя, не меняя настройки системы?

Да, если конфигурация предусматривает персональные настройки языка и представления данных. Кроме того, разработчик может задавать формат индивидуально в печатных формах и отчётах через параметры функции Формат(), включая код локализации (параметр Л).