1C7.7 Как форматировать ТекущаяДата?

1. user2117714 17.12.24 14:58 Сейчас в теме
1C7.7 Форматировать ТекущаяДата

```bsl
Процедура Выполнить()
Сообщить(Формат(ТекущаяДата(), "ДДММГГГГ")); // ТекущаяДата: 17.12.24
КонецПроцедуры
```
Получаю: 17.12.24

Ожидаю: 17-12-2024
Ну или другой формат...
Интересует какой имеется манёвр в форматировании даты.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 80 17.12.24 15:10 Сейчас в теме
(1) почитать синтаксис-помощник по методу Формат() не предлагать?
user2117714; +1 Ответить
3. user2117714 17.12.24 16:18 Сейчас в теме
(2) Пока получается так - см. код.
Или есть какие нюансы и другие способы?

По материалам синтаксис-помощник
Приемленные варианты (год `2024`)
Сообщить(Формат(ТекущаяДата(), "ДДДММГГГГ")); // [+]17.12.2024
Сообщить(СтрЗаменить(Формат(ТекущаяДата(), "ДДДММГГГГ"), ".", "-")); // [!] 17-12-2024	


Остальные варианты (год `24`)
Сообщить(Формат(ТекущаяДата(), "Д-ДДММГГГГ")); // 17.12.24
Сообщить(Формат(ТекущаяДата(), "Д -ДДММГГГГ")); // 17.12.24
Сообщить(Формат(ТекущаяДата(), "Д (-)ДДММГГГГ")); // 17.12.24



По материалам синтаксис-помощник:

где
**ПодстрокаФормата** может быть вида:
- DDMMYY (ДДММГГ), дата в виде - ДД.ММ.ГГ;
- DDMMYYYY (ДДММГГГГ), дата в виде - ДД.ММ.ГГГГ;
- DDMMMMYYYY (ДДММММГГГГ), дата в виде - ДД месяц прописью ГГГГ;
- (0)DDMMMMYYYY ((0)ДДММММГГГГ) этот формат представляет собой вариант предыдущего формата с тем отличием, что число месяца всегда выводится двумя цифрами, т.е. для чисел меньших 10 спереди будет добавлен 0.
Например:
Формат('01.01.1999', ''Д (0)ДДММММГГГГ'') = 01 Января 1999 г.

- MMMMYYYY (ММММГГГГ), дата в виде - месяц прописью ГГГГ;
- MMMMYY (ММММГГ), дата в виде - месяц прописью ГГ;
- QQQQYYYY (ККККГГГГ), дата в виде - N квартал ГГГГ;
- QQQQYY (ККККГГ), дата в виде - N квартал ГГ;
- YYYYMMDD (ГГГГММДД), дата в виде ГГГГММДД, то есть дата '10.11.1998' будет представлена как строка ''19981110'';
- WWWW (НННН), выводит наименование дня недели, соответсвующее указанной дате. Наименования дней недели берутся из файла прописи.

**Замечание:**
Для чисел:
- наличие ''0'' перед длиной поля подавляет отображение нулевых значений (выводится пустая строка).
Пример: ''Ч015.2'';

- Символ ''-'' перед длиной поля означает, что нулевые значения при выводе будут отображаться прочерком.
Пример: ''Ч-17.2''.;
Если форматная строка заканчивается символами >X, происходит сдвиг отображаемых разрядов на X позиций.
Если в форматной строке указано ''(0)'', то данная последовательность символов должна быть первой в формате и предшествовать всем прочим спецификациям. При задании такой спецификации все позиции в поле вывода числа, соответствующие незадействованным старшим разрядам, будут заполнены символами ''0''.
**Например:** Формат(123.15, ''Ч (0)10.2'') = 0000123.15;
Подробнее см. в документации, глава 'Системные процедуры и функции'
Показать
4. nomad_irk 80 17.12.24 16:31 Сейчас в теме
(3) В 7.7 не силен и проверить не на чем, что получается в случае
Формат(ТекущаяДата(), "ДД-ММ-ГГГГ")

?
user2117714; +1 Ответить
5. user2117714 17.12.24 16:39 Сейчас в теме
(4)
Формат(ТекущаяДата(), "ДД-ММ-ГГГГ")

Результат: 17.12.24
Ожидаю: 17.12.2024

Пока так (3)
7. nomad_irk 80 17.12.24 16:49 Сейчас в теме
(5) Есть еще извращенный вариант:

Формат(ТекущаяДата(), "ДД") + "-" + Формат(ТекущаяДата(), "ММ") + "-" + Формат(ТекущаяДата(), "ГГГГ");
user2117714; +1 Ответить
8. user2117714 17.12.24 19:26 Сейчас в теме
(7)
Формат(ТекущаяДата(), "ДД") + "-" + Формат(ТекущаяДата(), "ММ") + "-" + Формат(ТекущаяДата(), "ГГГГ");

Сделал:
Сообщить(Формат(ТекущаяДата(), "ДД") + "-" + Формат(ТекущаяДата(), "ММ") + "-" + Формат(ТекущаяДата(), "ГГГГ"));


Выдаёт: 17.12.24--


Пока буду использовать:
Сообщить(Формат(ТекущаяДата(), "ДДДММГГГГ")); // [+]17.12.2024
Сообщить(СтрЗаменить(Формат(ТекущаяДата(), "ДДДММГГГГ"), ".", "-")); // [!] 17-12-2024    
nomad_irk; +1 Ответить
9. user1936660 17.12.24 20:52 Сейчас в теме
(1)
Ну или
*Звуки старческого кряхтения*
Значение = ТекущаяДата();

ФорматЗначения = Шаблон("[ДатаЧисло(Значение)#Ч(0)2.0]-[ДатаМесяц(Значение)#Ч(0)2.0]-[ДатаГод(Значение)]");
Сообщить(ФорматЗначения);
user2117714; +1 Ответить
6. Jontao 17.12.24 16:47 Сейчас в теме
Формат(ТекущаяДата(), "ДФ=dd-MM-yyyy"); 17-12-2024
Не знаю как на 7.7 на 8 вот так работает
10. Said-We 17.12.24 21:54 Сейчас в теме
(1) А если попробовать английские большие буквы "DDD-MM-YYYY", а не русские?
В каком-то релизе работала нормально только английская форматная строка из больших букв.
И по-моему там три буквы D. Первая говорит что это именно форматная строка даты, а далее сама форматная строка. Ещё есть варианты "(-)", "0" - лидирующий ноль у даты и т.д.
Точно уже не помню, но запомнилось как-то так. Проверить уже негде.

Из поста выше:
Например:
Формат('01.01.1999', ''Д (0)ДДММММГГГГ'') = 01 Января 1999 г.

По идее можно попробовать как-то так:
Формат('01.01.1999', ''D (0)DD-MM-YYYY'')
user2117714; +1 Ответить
11. user1936660 17.12.24 22:16 Сейчас в теме
(10)
А если попробовать
Там для даты тупо зафиксированы варианты, перечисленные в справке, никаких комбинаций составлять нельзя. При любом непонимании оно молча сваливается в формат по умолчанию c отображением года двумя цифрами.
user2117714; +1 Ответить
14. CheBurator 2696 18.12.24 03:29 Сейчас в теме
(11) " отображением года двумя цифрами."
- количество цифр регулируется параметром в настройках
если форматная строка в принципе не является "датной", то возвращается пусто, например, Формат(ТекущаяДата(),"ММ") - вместо ММ можно написать "хрень"
user2117714; +1 Ответить
12. user2117714 17.12.24 23:07 Сейчас в теме
(10)
D (0)DD-MM-YYYY''

Результат: 17.12.24


Сообщить(Формат(ТекущаяДата(), "D (0)DD-MM-YYYY"));
13. user2107191 17.12.24 23:14 Сейчас в теме
А одиночные кавычки там не нужны случайно?

Нет, не то.
15. CheBurator 2696 18.12.24 03:31 Сейчас в теме
в (11) написано правильно: "для даты тупо зафиксированы варианты, перечисленные в справке, никаких комбинаций составлять нельзя." Делайте как в СП описано.
user2117714; +1 Ответить
16. CheBurator 2696 18.12.24 03:32 Сейчас в теме
"Интересует какой имеется манёвр в форматировании даты."
как описано в СП. далее - конструкциями языка превращаете из того что описано в СП в любое нужное.
user2117714; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот