1с как из даты получить время
есть поле дата, формат: дата и время.
нужно, чтоб в реквизит записывалось только время. т.е. тип дата формата время.
как это можно получить?
если формат(), то на выходе строка, а нужно именно дата/время.
время = дата — началодня(дата)
Что значит «дата/время» в контексте «только время»?
Т.е. тебе нужна дата 01.01.0001 ? Ты не можешь «отрезать» дату т.к. это не предусмотрено конструктивом. Но ты можешь через форматную строку её не показывать.
Не припомню я такого формата — время.
(1) даст разницу в секундах. Автор, видимо, хочет в шестидесятиричной системе, с разделителем.
(1) выдает некое количество секунд
А какой смысл? Что тебе надо?
Формат(ТекущаяДата(), «ДЛФ=T»)
(2) когда описываем тип реквизита, если тип дата, то можно выбрать формат: дата, время либо дата время. вот реквизит именно формат время
(6) это дает в результате строку
+(6) Дальше как с датой
время = дата(‘00010101’) + (Дата-НачалоДня(Дата));
(7) При выборе значения формата — Время используется нулевая дата.
(5) да, надо именно так.
(7) В 1С времени без даты не бывает по определению. Как вариант можно использовать «нулевую дату» (01.01.0001) но это черевато возможными траблами в будущем.
поэтому если нужен формат «время», то сохраняйте признак форматной строки и используйте «текущую дату» или например «фиксированную дату» 01.01.2010 (но это зависит от бизнес-логики)
(13) Использование «нулевой» даты является штатным режимом работы с временем в 1С. О каких подводных камнях вы говорите?
Я не услышал, какую прикладныю задачу пытается решить автор, и не представляю, как ему, бедному, помочь.
(10) так получилось, спасибо!!
(14) клиент хочет, чтоб при создание дока в тч можно было проставлять время посещения, чтоб можно было менять, но если не заполнено, то по умолчанию ставилось текущее.
(14) всё что входит в синтаксис — штатно. Но из практики грабли с «нулевой датой» — типичны. к сожалению многие прогеры не проводят контроль на наличие «нулевой даты» (особенно если дата нулевая, а вот время — нет)
(16) Вы неверно оценили задачу.
В прикладном смысле «время посещения» неразрывно связано с датой посещения, поэтому используйте текущую дату полностью!
В форме документа, в колонке табличной части можно указать формат отображения!
В этом случае будет сохраняться правильное значение, а отображаться — нужное по заданию.
В запросе всегда легко можно обрезать дату, оставив время, а вот наоборот — привязать время к дате — уже сложнее. В 1С не определен оператор + для значений типа «Дата».
(17) «Типичные» — они хотябы гуглятся, или только в вашем сознании на уровне рефлексов?
(18) «На уровне рефлексов»: «В 1С не определен оператор + для значений типа «Дата».(с) — это глупости
Дата1 = Дата2 + 200; — нормальный оператор для переменной Дата1, Дата2 с типом дата
1с как из даты получить время
Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.
Полный синтаксис (нажмите, чтобы раскрыть)
Дата
Значения данного типа содержит дату григорианского календаря (с 01 января 0001 года) и время с точностью до 0,1 миллисекунды.
Литералы:
Строка цифр, заключенная в одинарные кавычки вида: ‘ГГГГММДДччммсс’, где:
- ГГГГ — четыре цифры года (включая тысячелетие и век);
- ММ — две цифры месяца;
- ДД — две цифры даты;
- чч — две цифры часа (в 24-х часовом формате);
- мм — две цифры минут;
- сс — две цифры секунд;
Во встроенном языке в литерале типа Дата обязательно должно задаваться значение года, месяца и дня. Для задания даты соответствующей началу отсчета достаточно указать ‘00010101’. Допускается при указании литералов типа Дата опускать последние символы (секунды, минуты, часы и т.д.). Это означает, что данные параметры будут равны нулю (для времени) или единице (для даты). В литерале даты допускается использование различных разделителей.
Оглавление (нажмите, чтобы раскрыть)
- Как инициализировать дату константой
- Как преобразовать строку в дату
- Как инициализировать дату отдельными компонентами
- Как указать в дате часы, минуты и секунды
- Как узнать год (месяц, день, час, минута, секунда) у даты
- Как получить текущую дату
- Операции с датой
- Вспомогательные функции для работы с датой
- Скачать и выполнить эти примеры на компьютере
&НаКлиенте Процедура ВыполнитьКод(Команда) /// Как инициализировать дату константой в 1с 8.3, 8.2 МояДата = '20130724'; // 24.07.2013 /// Как преобразовать строку в дату в 1с 8.3, 8.2 МояДата = Дата("20130724"); // 24.07.2013 /// Как инициализировать дату отдельными компонентами в 1с 8.3, 8.2 МояДата = Дата(2013, 07, 24); // 24.07.2013 /// Как указать в дате часы, минуты и секунды в 1с 8.3, 8.2 МояДата = '20130724132506'; // 24 июля 2013 г. 13 ч. 25 мин. 6 сек. /// Как узнать год (месяц, день, час, минута, секунда) у /// даты в 1с 8.3, 8.2 Г = Год(МояДата); // 2013 М = Месяц(МояДата); // 7 Д = День(МояДата); // 24 Ч = Час(МояДата); // 13 Ми = Минута(МояДата); // 25 С = Секунда(МояДата); // 6 /// Как получить текущую дату в 1с 8.3, 8.2 Сообщить(ТекущаяДата()); /// Операции с датой в 1с 8.3, 8.2 Сообщить(ТекущаяДата() + 1); // прибавили секунду Сообщить(ДобавитьМесяц(ТекущаяДата(), 1)); // прибавили месяц Сообщить(ДобавитьМесяц(ТекущаяДата(), -1)); // отняли месяц /// Вспомогательные функции для работы с датой в 1с 8.3, 8.2 МояДата = '20130110125905'; // 10 января 2013 года 12:59:05 Сообщить(ДеньГода(МояДата)); // 10 Сообщить(ДеньНедели(МояДата)); // 4 т.е. четверг (нумерация с понедельника) Сообщить(НеделяГода(МояДата)); // 2 Сообщить(НачалоГода(МояДата)); // 01.01.2013 0:00:00 Сообщить(КонецГода(МояДата)); // 31.12.2013 23:59:59 Сообщить(НачалоКвартала(МояДата)); // 01.01.2013 0:00:00 Сообщить(КонецКвартала(МояДата)); // 31.03.2013 23:59:59 Сообщить(НачалоМесяца(МояДата)); // 01.01.2013 0:00:00 Сообщить(КонецМесяца(МояДата)); // 31.01.2013 23:59:59 Сообщить(НачалоНедели(МояДата)); // 07.01.2013 0:00:00 Сообщить(КонецНедели(МояДата)); // 13.01.2013 23:59:59 Сообщить(НачалоДня(МояДата)); // 10.01.2013 0:00:00 Сообщить(КонецДня(МояДата)); // 10.01.2013 23:59:59 Сообщить(НачалоЧаса(МояДата)); // 10.01.2013 12:00:00 Сообщить(КонецЧаса(МояДата)); // 10.01.2013 12:59:59 Сообщить(НачалоМинуты(МояДата)); // 10.01.2013 12:59:00 Сообщить(КонецМинуты(МояДата)); // 10.01.2013 12:59:59 КонецПроцедуры /// Скачать и выполнить эти примеры на компьютере
Работа с типом Дата в языке 1С 8.3, 8.2 (в примерах)
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
1С ТекущаяДата – как получить текущую дату и время программно
ТекущаяДата() – возвращает текущую дату и время, установленную в системе.
Очень удобно использовать например для получения актуальных остатков на текущий момент времени в запросе.
При клиент-серверном варианте, время выдается в зависимости от компьютера на котором выполняется функция.
Чтобы получить только время используем метод Формат():
Формат(ТекущаяДата(), "ДЛФ=T"); //9:17:10
Получить только дату, без времени:
Формат(ТекущаяДата(), "ДЛФ=Д"); //05.02.2021
Часы = Час(ТекущаяДата()); // 9 часов Минуты = Минута(ТекущаяДата()); // 17 минут Секунды = Секунда(ТекущаяДата()); // 10 секунд
Похожие записи
Выгрузить результат запроса в таблицу значений в 1С
От Александр 10.11.2020
Если необходимо выгрузить результат для последующей его обработки, то это очень просто делается встроенными средствами 1С Так же конструкция может выглядеть так: После мы получаем таблицу значений с реквизитами, как в запросе: Владелец Код Наименование После таблицу значений можно обрабатывать. Например обойти в цикле:
Получить имя ключа структуры 1С
От Александр 26.06.2023
Работа со структурой в 1С Переменная с типом структура представляет из себя коллекцию значений, каждый элемент которой состоит из пары «Ключ» и «Значение». Ключ всегда является строкой и должен быть уникальным в рамках коллекции, а так же удовлетворять требованиям, предъявляемым к именованию переменных встроенного языка, значение может быть любого типа. Создадим структуру содержащую ФИО сотрудника…

Отключить расшифровку правой кнопкой в СКД
От Александр 26.05.2022 01.11.2023
По умолчанию в СКД при клике правой кнопкой по полю документа результата отрабатывает событие расшифровки и возникает ошибка, если расшифровка не предусмотрена. Значение данных расшифровки отсутствует, либо имеет неправильный тип. Событие называется Обработка дополнительной расшифровки. Для того, чтобы при клике правой кнопкой по результату формирования отчета СКД открывалось стандартное контекстное меню, необходимо прописать:

Вывод картинки в форме списка в управляемых формах 1С
От Александр 20.08.2020 01.11.2023
Как добавить столбец в форму списка описано тут. Иногда есть необходимость вывода картинки в столбце формы списка, например для наглядной сигнализации о чем либо. В нашем случае о том, что по клиенту есть какие-то новые сообщения. Текстовый столбец бы затерялся, а вот на картинку взгляд падает сразу. И так, выбираем динамический список формы списка, если…

Запрещено изменение параметра, отменяющего действие
От Александр 15.07.2020 01.11.2023
Проблема возникает когда в расширении конфигурации в процедуре события, в обработке “После” используется конструкция Отказ = Ложь Чтобы исправить проблему необходимо использовать “Перед” или “Вместо”. Данная ошибка обуславливается тем, что параметру Отказ уже могло быть присвоено значение Истина в предыдущих проверках.
Как передать Таблицу Значений с Клиента на Сервер
От Александр 03.04.2022
Бывают ситуации при которых необходимо передать структуру данных ТаблицаЗначений с Клиента на Сервер, но проблема в том, что платформа 1С не поддерживает такую передачу, но поддерживает передачу Массива. Для передачи Таблицы Значений между клиентом и сервером, нужно преобразовать Таблицу Значений в Массив на клиенте, а после из массива в Таблицу Значений на сервере. В Библиотеке…
Работа с датами в 1С
Дата в 1С один из примитивных типов данных в системе. Дата всегда имеет формат год, месяц, день, час, минута, секунда. Таким образом, переменная типа дата содержит не только дату, но и время.
Очевидно, что очень часто программистам приходится работать с датой и временем и естественно, по мере работы возникают вопросы, ответы на которые приходится где то искать. Я накидал для себя небольшую шпаргалку по работе с датами.
Хранение дат в системе
В базе данных даты хранятся с точностью до секунд. Для реквизитов типа “дата” можно установить вариант хранения “дата и время”, “только дата”, “только время”.
Переменные типа “дата” всегда представляют дату с секундами. Отсчет дат ведется с Рождества Христова (наша эра), т.е. с 01.01.0001 00:00:00 по Григорианскому календарю. Начальная дата – это не совсем дата. Это значение в системе используется для представления “пустой даты” (аналог пустой ссылки для ссылочных типов или пустой строки “” для строкового типа).
Максимальная дата – 31.12.3999 23:59:59
Как получить текущую дату и время?
Дата = ТекущаяДата();
Как явно указать нужную дату?
- Литералом встроенного языка вида ‘ГГГГММДДччммсс’ :
'20201103160457' // вернет значение 03.11.2020 16:04:57 '2021.05.09:11:00:05' // получим 09.05.2021 11:00:05
- Функцией глобального контекста Дата():
Дата(2020, 06, 4, 18,45, 23) // вернет значение 04.06.2020 18:45:23 Дата(2021, 2, 16) // вернет значение 16.02.2021 0:00:00
- Если нам необходимо в тексте запроса указать конкретную дату — тогда используем литерал ДАТАВРЕМЯ():
ДАТАВРЕМЯ(2019, 10, 04)
Пустая дата в 1С
В текстах модулей
Дата
Запрос Запрос