Дата в 1С

Хранение дат в системе

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

Переменные типа «дата» всегда представляют дату в секундах. Даты отсчитываются от Рождества Христова (нашей эры), т.е с 01.01.0001 00:00:00 по григорианскому календарю. Дата начала на самом деле не является датой. Это значение используется в системе для представления «пустой даты» (аналогично пустой ссылке для ссылочных типов или пустой строке «» для строкового типа).

Максимальная дата — 31.12.3999 23:59:59

Как получить текущую дату и время?

Дата = ТекущаяДата();

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

Чтобы облегчить работу разработчика, «1С» создала в платформе специальный форматный конструктор строк.

Для запуска конструктора достаточно вызвать контекстное меню (правая кнопка мыши) и выбрать из списка «Конструктор форматной строки»:

Сам производитель выглядит так:

Где нужно выбрать нужную вкладку в зависимости от типа данных — Number, Date или Boolean.

Давайте посмотрим на использование функции на примерах.

Как явно указать нужную дату?

  • Литерал встроенного языка в форме ‘ГГГГММДДччммсс’: ‘20101103160457’ — вернет значение 03.11.2010 16:04:57 ‘2011.05.09: 11: 00:05’ — получим 09.05.2011 11: 00: 05
  • Функция глобального контекста Date (): Date (2008, 06, 4, 18,45, 23) — вернет значение 06/04/2008 18:45:23 Date (2011, 2, 16) — вернет значение 16.02.2011 0:00: 00
  • Если нам нужно указать конкретную дату в тексте запроса, мы используем литерал DATE TIME (): DATE TIME (2004, 10, 04)

Пустая дата в 1С

В текстах модуля

1. Дата = ‘00010101’ 2. Дата = ‘00010101000000’ 3. Дата = ‘0001-01-01’ 4. Дата = Дата (1,1,1)

По требованию

1. WHERE Data = DATE TIME (0001,01,01,0,0,0) 2. WHERE Data = & EmptyDate Query.SetParameter («EmptyDate», ‘00010101’);

Формат даты в 1С на примере месяца: прописью, без времени

Получить формат даты без времени:

Формат даты 1С, где месяц буквами:

Формат времени без даты, только часы, минуты и секунды:

Как соединить дату и время?

Функция ConnectDateANDTime (Дата, Время) Export DateString = Format (Date, «DF =» «yyyyMMdd» «»); TimeString = Format (Время, «DF =» «ЧЧммсс» «»); Результат = Дата (StringaData + StringaTora); Результат возврата; EndFunction

Как сложить две даты

mEmptyDate = ‘00010101000000’; ReceivedDate = mEmptyDate + (Date1 — mEmptyDate) + (Date2 — mEmptyDate);

Вариант Б. Месяц прописью, а год числом

Здесь нам нужно изменить формат следующим образом:

Чтобы лучше понять параметры строки формата, я рекомендую вам изучить страницу «Структура строки формата

Присоединяйтесь к моей команде помощников программистов.
В нем мы обсуждаем программирование в 1С.

Как вычислить количество дней между двумя датами

  • Способ 1 (по запросу)

Запрос = Новый запрос; Query.Text = «ВЫБРАТЬ | РАЗНИЦА (& BeginPeriod, & EndPeriod, МЕСЯЦ) КАК МЕСЯЦЫ, | РАЗНИЦА (& BeginPeriod, & EndPeriod, DAY) КАК ДНЕЙ»;

  • Способ 2

Количество дней = (Дата окончания — Дата начала) / 60/60/24;

Если у вас есть другие интересные заметки, пишите в комментариях, я с радостью дополню эту статью.

Функция Формат()

Синтаксис функции довольно прост:

Value — это значение, которое нужно отформатировать, Format String — определенным образом указанная строка, из которой формируется правило обработки формата.

Самое интересное — это форматная строка. Рассмотрим это подробнее.

Как добавить к дате секунду, минуту, час, день

Дата — это количество секунд с 1 января 0001 00:00:00. Следовательно, чтобы добавить к дате дни, часы, минуты и т.д., необходимо добавить соответствующее количество секунд:

Результат = Дата (2016, 07, 21) + 1; // Добавлен второй Результат = Date (2016, 07, 21) + 2 * 60; // Добавлены 2 минуты Result = Date (2016, 07, 21) + 60 * 60 * 10; // Добавлено 10 часов Результат = Дата (2016, 07, 21) + 5 * 60 * 60 * 24; // Добавлено 5 дней

Формат

Описание:

Обеспечивает удобное для чтения представление значений. Полезно для отчетов и других визуальных отображений значений.

Синтаксис:

Параметры:

Строка формата — это строковое значение, которое включает параметры форматирования.

Параметры форматирования перечислены через символ «;». Наличие параметра означает, что форматирование отличается от стандартного.

Если параметр не указан, применяется стандартное форматирование, которое в основном соответствует преобразованию значения в строку. Однако для значений типа Number и Date по умолчанию (0 и 01.01.0001 00:00:00 соответственно) будет возвращена пустая строка.

Каждый параметр определяется именем параметра, символом «=» и значением параметра. Значение параметра можно указывать в одинарных или двойных кавычках. Это необходимо, если значение параметра содержит символы, используемые в синтаксисе строки формата.

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

Имена и значения параметров строки формата:

  • Л — название языка, страны, для которых будет выполняться стандартное форматирование.
  • CC — это общее количество десятичных знаков, отображаемых для целых и дробных частей. Затем исходное число округляется в соответствии с правилами округления. Если этот параметр указан, необходимо указать параметр NPV для отображения дробной части числа, иначе дробная часть отображаться не будет.
  • NDC — количество десятичных знаков в дробной части. Затем исходное число округляется в соответствии с правилами округления.
  • ЧС — сдвиг цифр: положительный — деление, отрицательный — умножение. Другими словами, это означает, что исходное число будет умножено или разделено на 10 * C, где C — значение модуля параметра.
  • CRD — это символ-разделитель для целых и дробных частей.
  • CHRG — это символ-разделитель групп для целой части числа. Если вы используете пустую строку в качестве разделителя, символ неразрывного пробела будет разделителем.
  • CHN — это строка, представляющая нулевое значение числа. Если не указано, пустое строковое представление. Если указано «CHN =», то в виде «0». Не используется для числовых полей ввода.
  • CHVN — отображать ли ведущие нули. Значение этого параметра не указывается, наличие самого параметра определяет вывод ведущих нулей.
  • ЧГ — порядок группировки цифр номера. Значения — это числа, разделенные запятыми, которые указывают количество цифр, которые нужно сгруппировать справа налево. Только первые два числа имеют смысл. Первый из них указывает на первичную группировку, то есть ту, которая будет использоваться для младших разрядов целой части числа. Если второе число не указано, будут сгруппированы только младшие цифры. Если в качестве второго числа указан 0, значение, указанное для первичной группировки, будет применяться ко всем цифрам целой части числа. Если в качестве второго числа используется значение, отличное от 0, это значение будет использоваться для группировки всех, кроме наименее значащих цифр, уже сгруппированных вместе.
  • CHO — это представление отрицательных чисел.
  • 0 (0) — строка вида «(1,1)»;
  • 1 (1) — строка вида «-1,1″;
  • 2 (2) — строка вида «- 1,1″;
  • 3 (3) — строка типа «1,1-«;
  • 4 (4) — это строка типа «1,1 -«.
  • DF — формат даты.
    • d — день месяца (цифрами) без нуля в начале;
    • дд — день месяца (цифрами) с нулем в начале;
    • ddd — краткое название дня недели
    • дддд — полное название дня недели ;
    • M — номер месяца (цифрами) без нуля в начале;
    • ММ — номер месяца (цифрами) с нулем в начале;
    • МММ — краткое название месяца;
    • ММММ — полное название месяца;
    • k — номер квартала в году;
    • г — номер года без века и ведущего нуля;
    • yy — номер года без века с нулем в начале;
    • гггг — номер года со столетием;
    • h — время в 12-часовом варианте без ведущих нулей;
    • чч — час в 12-часовом варианте с нулем в начале;
    • H — теперь в 24-часовом варианте без ведущих нулей;
    • ЧЧ (ЧЧ) — час в 24-часовом варианте с ведущим нулем;
    • m — минута без нуля в начале;
    • мм — минуты с ведущим нулем;
    • s — секунда без нуля в начале;
    • ss — секунда с ведущим нулем;
    • bc — отображает полдня AM / PM (действительно только для языков конфигурации, которые поддерживают 12-часовой формат).
    • DLF — это местный формат даты. Задает вариант отображения части даты.
      • D — дата (цифрами);
      • ДД — длинная дата (прописью месяц);
      • Б — полный рабочий день, дату можно совмещать с временем;
      • ДВ — дата и время.
      • DP — это строка, представляющая пустую дату (например, Format (‘00010101000000’, «DP =» «empty date» «») вернет строку «empty date»).
      • BL — это строка, представляющая логическое значение False.
      • BI — строка, представляющая логическое значение True.
      • Функция «Форматирование» в 1С 8.3 предоставляет разработчику довольно интересный инструмент для форматирования значений. Эта функция часто используется для вывода примитивных типов данных (дата, время, числа, строка, логическое значение) в желаемом формате.

        Давайте подробнее рассмотрим функцию и метод составления строки формата.

        Источники

        • https://codernote.ru/1c/rabota-s-datami-v-1s/
        • https://www.koderline.ru/expert/programming/article-data-propisyu-v-1s/
        • https://4apple.org/1s-format-daty-mesjac-propisju-i-god/


        Оцените статью