1с как вывести дату без времени
Перейти к содержимому

1с как вывести дату без времени

  • автор:

Вывод даты без времени в табличную часть

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

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

Открываем Справку, набираем «Формат», выбираем самую нижнюю строчку и видим примеры
// Примеры форматирования дат

А = Формат(‘20020820153309’, «ДФ=»»дд ММММ гггг ‘г.’ ЧЧ:мм:сс»»»);
// А = «20 августа 2002 г. 15:33:09»

А = Формат(‘20020820153309’, «ДФ=»»дд/ММ-гггг»»»);
// А = «20/08-2002»

А = Формат(‘20020820153309’, «ДЛФ=ДД»);
// А = «20 августа 2002 г.»;

Дата в 1С запросе

Текущая дата(и время) в запросе 1С получается только в качестве параметра.

Получение дат

Как передать текущую дату в запрос?

Запрос . УстановитьПараметр ( «ТекущаяДата» , ТекущаяДата ( ) ) ;
тзРезультатЗапроса = Запрос . Выполнить ( ) . Выгрузить ( ) ;

Далее приводятся только тексты запросов.

Как получить начало текущего месяца?

Конец текущего года?

Как получить полдень текущей даты?

Добавим использование функции ДОБАВИТЬКДАТЕ(ДАТА,<ГОД,КВАРТАЛ,МЕСЯЦ,ДЕКАДА,НЕДЕЛЯ,ДЕНЬ>,ЧИСЛО)

Как получить дату без времени (0:00)

Как задать дату-константу в запросе 1С?

Возможно задать дату с точностью до секунды?

А до милисекунды?

Вычисления над датами

Разность в секундах,минутах,часах, днях, неделях получается при использовании функции РАЗНОСТЬДАТ(Дата1,Дата2,<ГОД,КВАРТАЛ,МЕСЯЦ,ДЕКАДА,НЕДЕЛЯ,ДЕНЬ>)

Как получить номер текущего месяца?

ВЫБРАТЬ
МЕСЯЦ(&ТекущаяДата) как ТекущийМесяц,
РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&ТекущаяДата,ГОД),КОНЕЦПЕРИОДА(&ТекущаяДата,МЕСЯЦ),МЕСЯЦ) как ПолныхПрошедшихМесяцев

Как получить день недели?

ВЫБРАТЬ
ДЕНЬНЕДЕЛИ(&ТекущаяДата) КАК НомерДня,
ВЫБОР
КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 1
ТОГДА «понедельник»
КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 2
ТОГДА «вторник»
КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 3
ТОГДА «среда»
КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 4
ТОГДА «четверг»
КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 5
ТОГДА «пятница»
КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 6
ТОГДА «суббота»
ИНАЧЕ «Воскресенье»
КОНЕЦ КАК НаименованиеДняНедели

Сколько осталось до Нового года?

ВЫБРАТЬ
&ТекущаяДата > ДАТАВРЕМЯ(2017, 1, 1) КАК НовыйГодНаступил,
ВЫБОР
КОГДА &ТекущаяДата > ДАТАВРЕМЯ(2017, 1, 1)
ТОГДА «Да, наступил»
ИНАЧЕ «Нет, не наступил»
КОНЕЦ КАК Ответ,
РАЗНОСТЬДАТ(&ТекущаяДата,ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(2017, 1, 1),СЕКУНДА,-1),ДЕНЬ) как ОсталосьДней,
РАЗНОСТЬДАТ(&ТекущаяДата,КОНЕЦПЕРИОДА(&ТекущаяДата,ДЕНЬ),ЧАС) как ОсталосьЧасов,
РАЗНОСТЬДАТ(&ТекущаяДата,КОНЕЦПЕРИОДА(&ТекущаяДата,ЧАС),Минута) как ОсталосьМинут,
РАЗНОСТЬДАТ(&ТекущаяДата,КОНЕЦПЕРИОДА(&ТекущаяДата,Минута),Секунда) как ОсталосьСекунд

primer-rascheta-vremeni-do-novogo-godaЧто еще следует знать про дату в запросах?

Дата в запросах может фигурировать не только в полях выборки, и вычислениях, но также передаваться, как параметры виртуальных таблиц.

  • для среза последних значений в регистре сведений в качестве момента на которое берется значение. Если периодичность регистра не совпадает с переданным параметром, система обрежет лишние (секунда, дни в зависимости от), округления не происходит
  • для остатков регистра накопления в качестве дата остатка
  • для оборотов регистров бухгалтерии или регистра накопления (НачалоПериода,КонецПериода)
  • других виртуальных таблиц

Допустимо задание дат-констант и использование параметров, также обработка их выше приведенными функциями.

Но нельзя дату передать в параметры виртуальных таблиц из полученных ранее в этом запросе полей выборки.

Сортировка даты в запросе производится в рамках секунды.

Момент времени документа не является датой, он сортирует более глубже, чем дата документа, т.е. при наличии документов в одну секунду времени, сортировка по дате производится в недопустимом порядке: например в виде представления. Используйте для этого момент времени.

Внешнее представление даты определяется представлением операционной системы, управлять из запроса, а также приводить в строковое представление в классическом запросе невозможно в отличии от СКД, где возможна пост-обработка и условное оформление.

Допускается применение функции МАКСИМУМ(),МИНИМУМ() к дата в запросе, как в группировке так и в итогах запроса.

Ошибка «неверные параметры» возникает в случае, когда вместо даты передается null, число или что-то иное.

Преобразовать строку в дату в запросе

Специальных функций нет. но возможно преобразование через функцию ПОДСТРОКА и конструкцию ВЫБОР КОГДА

[cl-popup title=»Запрос,приводится в академических целях» btn_label=»Открыть текст запроса» size=»m» border_radius=»3″] ВЫБРАТЬ
«20161012» КАК Параметр,
&Парам = «20161012» КАК ВерныйПараметр,
ПОДСТРОКА(&Парам, 1, 1) КАК символ1,
ПОДСТРОКА(&Парам, 2, 1) КАК символ2,
ПОДСТРОКА(&Парам, 3, 1) КАК символ3,
ПОДСТРОКА(&Парам, 4, 1) КАК символ4
ПОМЕСТИТЬ Расчеты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Расчеты.Параметр,
Расчеты.ВерныйПараметр,
ВЫБОР
КОГДА Расчеты.символ1 = «2»
ТОГДА 2
КОГДА Расчеты.символ1 = «1»
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ * 1000 + ВЫБОР
КОГДА Расчеты.символ2 = «0»
ТОГДА 0
КОГДА Расчеты.символ2 = «1»
ТОГДА 1
КОГДА Расчеты.символ2 = «2»
ТОГДА 2
КОГДА Расчеты.символ2 = «3»
ТОГДА 3
КОГДА Расчеты.символ2 = «4»
ТОГДА 4
КОГДА Расчеты.символ2 = «5»
ТОГДА 5
КОГДА Расчеты.символ2 = «6»
ТОГДА 6
КОГДА Расчеты.символ2 = «7»
ТОГДА 7
КОГДА Расчеты.символ2 = «8»
ТОГДА 8
ИНАЧЕ 9
КОНЕЦ * 100 + ВЫБОР
КОГДА Расчеты.символ3 = «0»
ТОГДА 0
КОГДА Расчеты.символ3 = «1»
ТОГДА 1
КОГДА Расчеты.символ3 = «2»
ТОГДА 2
КОГДА Расчеты.символ3 = «3»
ТОГДА 3
КОГДА Расчеты.символ3 = «4»
ТОГДА 4
КОГДА Расчеты.символ3 = «5»
ТОГДА 5
КОГДА Расчеты.символ3 = «6»
ТОГДА 6
КОГДА Расчеты.символ3 = «7»
ТОГДА 7
КОГДА Расчеты.символ3 = «8»
ТОГДА 8
ИНАЧЕ 9
КОНЕЦ * 10 + ВЫБОР
КОГДА Расчеты.символ4 = «0»
ТОГДА 0
КОГДА Расчеты.символ4 = «1»
ТОГДА 1
КОГДА Расчеты.символ4 = «2»
ТОГДА 2
КОГДА Расчеты.символ4 = «3»
ТОГДА 3
КОГДА Расчеты.символ4 = «4»
ТОГДА 4
КОГДА Расчеты.символ4 = «5»
ТОГДА 5
КОГДА Расчеты.символ4 = «6»
ТОГДА 6
КОГДА Расчеты.символ4 = «7»
ТОГДА 7
КОГДА Расчеты.символ4 = «8»
ТОГДА 8
ИНАЧЕ 9
КОНЕЦ КАК НомерГода
ПОМЕСТИТЬ Цифры
ИЗ
Расчеты КАК Расчеты
;

Я знаю, что трачу половину денег на рекламу впустую, но не знаю, какую именно половину.

— Джон Ванамакера

Формат даты 1С использование на примерах

В статье представлены способы задать формат даты 1с 8. Для этого необходимо использовать форматную строку. Редактировать ее можно либо вручную, либо при помощи специального конструктора.

Форматные строки используются в:

  • Программном коде, в функции Формат;
  • Свойствах полей формы, в свойстве ФорматРедактирования;
    Формат редактирования 1с
  • Оформлении поля СКД. Схема компоновки -> вкладка Поля -> для нужного поля столбец Оформление -> Формат;
    Формат даты 1с СКД
  • Свойствах ячейки макета.

При использовании функции Формат, следует помнить, что она возвращает строковое значение, т.е. представление переданной даты в определенном формате.

Формат даты 1с при помощи форматной строки

При помощи форматной строки можно задать параметры форматирования даты. Не стоит описывать их полностью вручную. Лучше всего, воспользоваться встроенным в платформу конструктором, а затем отредактировать полученную форматную строку вручную. Это сэкономит ваши силы и позволит быстро добиться результата.

В свойствах полей, ячеек макета, конструктор форматной строки вызывается нажатием кнопки. А в коде он вызывается аналогично конструктору запроса: контекстное меню -> Конструктор форматной строки…

конструктор форматной строки 1с

То есть правильный вызов конструктора для метода Формат, выглядит так:

  • Следует описать функцию Формат, без форматной строки:
  • Поставить курсор между кавычек, вызвать конструктор;
  • После окончания работы с конструктором нажать ОК.

Конструктор форматной строки

Сам же конструктор форматной строки представляет собой набор вкладок, предназначенных для форматирования данных различных типов. Нас интересует вкладка Дата.

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

Локальный формат даты 1с

В остальных случаях можно пользоваться произвольным форматом даты. Его можно не только выбирать из выпадающего списка, но и редактировать вручную. Для редактирования используются следующие форматные коды:

  • д (d) — день месяца (цифрами) без лидирующего нуля;
  • дд (dd) — день месяца (цифрами) с лидирующим нулем;
  • ддд (ddd) — краткое название дня недели;
  • дддд (dddd) — полное название дня недели;
  • М (m) — минута без лидирующего нуля;
  • ММ (mm) — минута с лидирующим нулем;
  • МММ (MMM) — краткое название месяца *);
  • ММММ (MMMM) — полное название месяца *);
  • к (q) — номер квартала в году;
  • г (y) — номер года без века и лидирующего нуля;
  • гг (yy) — номер года без века с лидирующим нулем;
  • гггг (yyyy) — номер года с веком;
  • ч (h) — час в 12-часовом варианте без лидирующих нулей;
  • чч (hh) — час в 12-часовом варианте с лидирующим нулем;
  • Ч (H) — час в 24-часовом варианте без лидирующих нулей;
  • ЧЧ (HH) — час в 24-часовом варианте с лидирующим нулем;
  • м (m) — минута без лидирующего нуля;
  • мм (mm) — минута с лидирующим нулем;
  • с (s) — секунда без лидирующего нуля;
  • сс (ss) — секунда с лидирующим нулем;
  • вв (tt) — отображение половины дня AM/PM (действительно только для языков конфигурирования, поддерживающих 12 часовой вариант представления времени).

Также можно добавлять в форматную строку произвольный текст, используя кавычки (если добавляемый текст не может быть интерпретирован, как составная часть даты, тогда можно обойтись и без кавычек):

Формат даты 1с с произвольным текстом

Итоговый текст такой форматной строки будет выглядеть следующим образом:

Примеры использования формата дат

Приведем несколько примеров форматирования даты.

Дата без времени (05.10.2020)

Только время (12:35:50)

Месяц текстом, год полностью (Октябрь 2020)

Месяц текстом кратко, год без тысячелетия (окт. 20)

Месяц числом, через точку год полностью (10.2020)

Склонение названия месяца

При форматировании даты не всегда достаточно именительного падежа. Иногда требуется указать, к примеру, что отчет сформирован в «Октябре 2020 г.», а не в «Октябрь 2020 г.». Для решения этой проблемы подойдет серверная строковая функция ПолучитьСклоненияСтроки (доступна, начиная с версии платформы 8.3.13).

Функция возвращает массив вариантов склонения строки. Подробнее прочитать про заполнение параметров можно в синтаксис помощнике.

Пример. Отформатировать дату в «месяц год», месяц в предложном падеже вывести в виде сообщения.

Добавить комментарий

Ваш адрес email не будет опубликован.