Формат даты в 1С:Предприятии 8.3 — где он задаётся и как его поменять
Содержание
Сменить формат даты в 1С 8.3 можно на трёх уровнях: для всей информационной базы — в конфигураторе через Администрирование → Региональные установки информационной базы, для одного поля формы или отчёта — свойством «Формат», для вывода из кода — функцией Формат(Дата, "ДФ=dd.MM.yyyy"). Настроек формата даты у отдельного пользователя в платформе нет.
Частое заблуждение — что формат даты в 1С:Предприятии берётся из настроек Windows. Это не так: тонкий и толстый клиент берут его из региональных установок базы или из кода локализации сеанса. Поэтому смена формата в «Панели управления» Windows на программу не влияет.
С чего начать: какой формат даты и где вы хотите изменить
Прежде чем что-то менять, определите масштаб задачи. От него зависит, нужен ли вообще конфигуратор.
| Что хотите получить | Где менять | Нужны права администратора |
|---|---|---|
Все даты в базе в другом виде (например, 2026-10-22 вместо 22.10.2026) | Региональные установки информационной базы | Да |
| Дату в одном поле формы без времени или с днём недели | Свойство «Формат» элемента формы | Да, через конфигуратор или расширение |
| Дату в колонке отчёта | Оформление поля в настройках отчёта (СКД) | Нет, если отчёт позволяет менять настройки |
| Дату в печатной форме, письме, файле выгрузки | Функция Формат() в коде | Да, нужен разработчик |
| Другой язык и порядок «месяц/день» для части пользователей | Параметр запуска /VL или код локализации в Формат() | Зависит от способа |
Если база типовая и на поддержке, правьте формы не в основной конфигурации, а в расширении. Так изменения переживут обновление релиза.
Смена формата даты для всей базы через региональные установки
Это главный «рубильник». Он определяет, как платформа показывает даты, числа и булевы значения там, где разработчик не задал формат явно.
Пошагово
- Откройте базу в режиме
Конфигураторпод пользователем с полными правами. - Выберите в главном меню
Администрирование → Региональные установки информационной базы. - В поле «Язык (Страна)» проверьте код локализации. Для России это
русский (Россия), кодru_RU. - Если нужно задать свой вид даты, впишите форматную строку в поле формата даты, например
yyyy-MM-dd. Для времени — отдельное поле, напримерHH:mm. - Нажмите «ОК».
- Закройте и снова откройте 1С:Предприятие у пользователей, чтобы сеансы подхватили новые установки.
Региональные установки влияют на всю базу и на всех пользователей. Перед сменой формата проверьте, не разбирают ли обработки или обмены дату из строки по старому шаблону. Если разбирают, после смены они начнут ошибаться.
Что изменится, а что нет
- ✅ Поля ввода дат в формах без собственного формата.
- ✅ Колонки списков и табличных частей.
- ✅ Отчёты, где у поля не настроено оформление.
- ❌ Печатные формы и тексты, в которых дата выводится через
Формат()с явной строкой. - ❌ Элементы, у которых в конфигураторе заполнено свойство «Формат».
Отсюда типичная картина: в документе дата уже 2026-10-22, а в печатной форме по-прежнему 22.10.2026. Это нормально — печатная форма живёт по своему коду.
Формат даты в конфигураторе: реквизит, форма, отчёт
Когда нужно поменять вид даты точечно, работают со свойствами объектов метаданных и элементов формы.
Состав даты у реквизита
У реквизита типа «Дата» есть квалификатор «Состав даты» с тремя вариантами:
- 📅 Дата — хранится и показывается только день;
- 🕐 Время — только время;
- 📅🕐 Дата и время — полное значение.
Если в документе показывается лишнее время 0:00:00, первым делом проверьте этот квалификатор. Но менять его у существующего реквизита с данными нужно осторожно: при переходе на «Дата» время в сохранённых значениях обнулится при записи объекта.
Свойство «Формат» у элемента формы
- Откройте форму документа или справочника в конфигураторе (в типовой — заимствуйте форму в расширение).
- Выделите поле с датой в дереве элементов.
- В палитре свойств найдите «Формат» и нажмите кнопку выбора — откроется конструктор форматной строки.
- На вкладке «Дата» выберите готовый вариант или впишите свой, например
dd MMMM yyyy. - Если поле редактируемое, отдельно задайте «Формат редактирования». Он отвечает за вид даты в момент ввода.
Для формата редактирования выбирайте цифровые шаблоны вроде 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, но с немецкими названиями месяцев.
Три способа задать локализацию
- Для всей базы — поле «Язык (Страна)» в региональных установках информационной базы.
- Для сеанса — параметр командной строки
/VL, например/VLen_US. Его можно прописать в свойствах базы в окне запуска (поле дополнительных параметров) у конкретного пользователя. - Для одной строки в коде — параметр
Лв форматной строке.
Формат(Дт, "Л=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. Для реестров, загружаемых в банк или налоговую программу, нужен второй вариант: внешние системы часто проверяют длину поля.