В конфигурациях 1С:Предприятие дата и время часто отображаются с секундами — даже когда они не нужны в отчётах, документах или интерфейсе. Лишние 00:00:00 портят внешний вид печатных форм, усложняют восприятие данных и занимают место в таблицах. К счастью, убрать секунды можно несколькими способами: от простого изменения формата до написания обработок на встроенном языке.
Эта статья подойдёт и начинающим пользователям, и разработчикам. Мы разберём:
- 🔹 Настройки формата даты в типовых конфигурациях без программирования
- 🔹 Функции форматирования в запросах и отчётах
- 🔹 Программные решения для глобального изменения отображения
- 🔹 Особенности работы с датами в разных версиях платформы (8.2 vs 8.3)
Важно: методы отличаются по сложности и области применения. Например, изменение формата в настройках пользователя затрагивает только его сессию, а правка конфигурации — всех пользователей базы. Выбирайте подход исходя из задачи.
1. Изменение формата даты в настройках пользователя
Самый простой способ убрать секунды — настроить формат отображения даты в личном профиле. Это не требует прав администратора и действует только для текущего пользователя.
Инструкция для 1С:Предприятие 8.3:
- Откройте главное меню и перейдите в
Сервис → Параметры. - Выберите вкладку
Форматы. - В поле
Формат датызамените стандартное значениеДФ=dd.MM.yyyy HH:mm:ssнаДФ=dd.MM.yyyy HH:mm. - Сохраните изменения и перезапустите сеанс.
Для 1С:Предприятие 8.2 путь немного отличается: Сервис → Параметры → Запуск 1С:Предприятия → Форматы. В остальном шаги идентичны.
Убедитесь, что у вас есть права на изменение параметров|Проверьте версию платформы (8.2 или 8.3)|Скопируйте текущий формат на случай отката|Перезапустите 1С после изменений-->
⚠️ Внимание: Этот метод работает только для отображения дат в интерфейсе. В печатных формах, отчётах и запросах секунды могут остаться — там используются собственные настройки форматирования.
2. Форматирование даты в запросах (язык запросов 1С)
Если секунды мешают в результатах запросов (например, в отчётах или обработках), используйте функцию ФОРМАТ(). Она позволяет гибко настраивать вывод даты прямо в тексте запроса.
Пример запроса с удалением секунд:
ВЫБРАТЬ
ФОРМАТ(Документ.Дата, "ДФ=dd.MM.yyyy HH:mm") КАК ДатаБезСекунд
ИЗ
Документ.ЗаказКлиента КАК Документ
Допустимые форматы для функции ФОРМАТ():
| Формат | Пример вывода | Описание |
|---|---|---|
ДФ=dd.MM.yyyy HH:mm | 15.05.2026 14:30 | Дата с часами и минутами |
ДФ=dd.MM.yyyy | 15.05.2026 | Только дата |
ДФ=HH:mm | 14:30 | Только время без секунд |
ДФ=dd MMMM yyyy | 15 мая 2026 | Дата прописью |
Если запрос используется в отчёте, не забудьте обновить схему компоновки данных после изменений. В противном случае старый формат может сохраниться в кэше.
Чтобы быстро проверить формат, выполните запрос в Консоли запросов (доступна через меню Все функции или по горячей клавише Ctrl+Shift+Q).
3. Программное форматирование в модулях (встроенный язык)
Для глобального изменения отображения дат во всех документах или формах потребуется написать код на встроенном языке. Этот метод подходит разработчикам и требует прав на редактирование конфигурации.
Пример функции для удаления секунд из даты:
Функция ДатаБезСекунд(ЗначениеДаты)
Возврат Формат(ЗначениеДаты, "ДФ=dd.MM.yyyy HH:mm");
КонецФункции
Где использовать:
- 📌 В модулях объектов (например, в обработчике события
ПриОткрытииформы документа) - 📌 В общих модулях для повторного использования кода
- 📌 В обработках перед выводом данных на печать
Чтобы применить функцию ко всем датам в форме, добавьте обработчик события ПриЧтенииДанных:
Процедура ПриЧтенииДанных(Элемент)
Если ТипЗнч(Элемент.Значение) = Тип("Дата") Тогда
Элемент.Значение = ДатаБезСекунд(Элемент.Значение);
КонецЕсли;
КонецПроцедуры
⚠️ Внимание: Изменение конфигурации может привести к ошибкам при обновлении типовых решений. Всегда тестируйте код на копии базы перед внедрением в рабочую систему.
4. Настройка печатных форм
Секунды в печатных формах часто появляются из-за стандартных шаблонов. Чтобы их убрать, отредактируйте макет формы:
Пошаговая инструкция:
- Откройте нужный документ (например,
РеализацияТоваровУслуг). - Перейдите в меню
Печать → Настройка печатной формы. - Найдите поле с датой (обычно это
Документ.Дата). - В свойствах поля измените
ФорматнаДФ=dd.MM.yyyy HH:mm. - Сохраните макет и проверьте вывод на печать.
Если печатная форма создаётся программно (например, через ТабличныйДокумент), используйте метод УстановитьФормат():
Таблица.ВывестиСекцию("Шапка");
Таблица.УстановитьФормат(1, "ДФ=dd.MM.yyyy HH:mm"); // 1 — номер колонки с датой
Что делать, если формат не применяется?
Иногда изменения формата игнорируются из-за кэширования. Попробуйте:
1. Очистить кэш 1С (папка %APPDATA%\1C\1Cv8).
2. Перезапустить клиентское приложение.
3. Проверить, не переопределяется ли формат в другом месте кода (например, в обработчике ПередВыводом).
5. Особенности работы с датами в 1С 8.2 и 8.3
Версии платформы 1С:Предприятие отличаются поддержкой функций форматирования. Например, в 8.2 нет функции Формат() в языке запросов — её заменили только в 8.3.6.
Сравнение возможностей:
| Функциональность | 1С 8.2 | 1С 8.3 |
|---|---|---|
Форматирование в запросах (ФОРМАТ()) | ❌ Нет | ✅ Да (с версии 8.3.6) |
Глобальная функция Формат() | ✅ Да | ✅ Да |
| Настройки формата в параметрах пользователя | ✅ Да | ✅ Да |
Поддержка ДФ= в макетах | ✅ Да | ✅ Да |
Для 1С 8.2 альтернативный способ удаления секунд в запросах — использование конструкции ВЫРАЗИТЬ():
ВЫБРАТЬ
ВЫРАЗИТЬ(Документ.Дата КАК СТРОКА(16)) КАК ДатаБезСекунд
ИЗ
Документ.ЗаказКлиента КАК Документ
Это решение менее гибкое, но работает в старых версиях платформы.
6. Автоматизация через обработки
Если секунд нужно убрать во многих местах конфигурации, целесообразно создать универсальную обработку. Она будет проходить по всем документам, отчётам и формам, применяя заданный формат.
Пример кода для рекурсивного обхода форм:
Процедура ПрименитьФорматДат(Объект)
Для Каждого Элемент Из Объект.ЭлементыФормы Цикл
Если ТипЗнч(Элемент.Значение) = Тип("Дата") Тогда
Элемент.Формат = "ДФ=dd.MM.yyyy HH:mm";
КонецЕсли;
Если Элемент.Тип = Тип("ГруппаФормы") Тогда
ПрименитьФорматДат(Элемент); // Рекурсия для вложенных элементов
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Где использовать обработку:
- 🔧 В
Главном меню → Все функции → Обработкидля ручного запуска. - 🔧 В
Планировщике заданийдля автоматического выполнения (например, раз в неделю). - 🔧 В модуле управляемого приложения для применения ко всем новым сессиям.
⚠️ Внимание: Массовое изменение формата может конфликтовать с логикой работы типовых конфигураций (например, 1С:Бухгалтерия или 1С:ЗУП). Перед применением проверьте совместимость с обновлениями от фирмы 1С.
Для типовых конфигураций безопаснее использовать настройки пользователя или локальные правки печатных форм. Глобальные изменения кода могут привести к ошибкам при обновлении.
7. Распространённые ошибки и их решения
При работе с датами в 1С пользователи часто сталкиваются с типичными проблемами. Вот самые частые из них и способы их устранения:
Ошибка 1: Формат не применяется в отчёте.
- 🔸 Проверьте, не переопределён ли формат в схеме компоновки данных.
- 🔸 Очистите кэш отчёта (
Файл → Очистить кэш). - 🔸 Убедитесь, что поле в запросе имеет тип
Дата, а неСтрока.
Ошибка 2: После изменения конфигурации секунды вернулись.
- 🔸 Возможно, обновление типовых решений сбросило настройки. Используйте
Сравнение и объединение конфигураций, чтобы сохранить правки. - 🔸 Для критичных изменений создайте расширение конфигурации — оно сохраняется при обновлениях.
Ошибка 3: В внешних отчётах (например, из 1С:Консолидация) формат игнорируется.
- 🔸 Откройте исходный код отчёта и найдите параметры вывода даты.
- 🔸 Используйте функцию
Формат()непосредственно в коде отчёта.
В внешних обработках и отчётах формат даты может зависеть от настроек источника данных. Если вы подключаетесь к другой базе, проверьте параметры соединения — иногда формат передаётся "как есть" без преобразований.
FAQ: Частые вопросы по удалению секунд в датах 1С
Можно ли убрать секунды только в одном документе, не затрагивая остальные?
Да. Откройте форму документа в режиме Конфигуратор, найдите реквизит с датой и измените его свойство Формат. Это не повлияет на другие документы.
Почему после обновления 1С секунды снова появились?
Типовые конфигурации при обновлении сбрасывают пользовательские настройки формата. Чтобы избежать этого, переносите изменения в расширение конфигурации или используйте дополнительные отчёты/обработки.
Как убрать секунды в дате при выгрузке в Excel?
Используйте функцию Формат() перед выгрузкой:
ТаблицаExcel.УстановитьФормат(1, "ДФ=dd.MM.yyyy HH:mm");
Или преобразуйте дату в строку:
ТаблицаExcel.ВывестиСтроку(Формат(Документ.Дата, "ДФ=dd.MM.yyyy HH:mm"));
Влияет ли удаление секунд на сортировку дат в отчётах?
Нет. Форматирование затрагивает только отображение, но не значение даты. Сортировка и фильтрация работают с оригинальными данными (включая секунды).
Можно ли убрать секунды в мобильном приложении 1С?
Да, но настройки зависят от версии мобильной платформы. В 1С:Мобильное предприятие формат даты изменяется в настройках синхронизации или через серверные правила обмена.