Как преобразовать строку в дату 1С 8.3
Меню

Как преобразовать строку в дату 1С 8.3

Значение типа Дата – один из самых простых типов данных в 1С, который встречается практически постоянно. Ее значение содержит дату григорианского календаря с 01 января 0001 года с точностью до 0,1 миллисекунды.

Создание переменной типа дата приравнивается к переменной строки цифр ‘ГГГГММДДччммсс’, где ГГГГ – год, ММ – месяц, чч – часы (в формате 24 часа), мм – минуты, сс – секунды.

Часто возникают ситуации при работе в 1С перевести строку в дату. Например, при написании даты в формате 18.12.18, 18/12/2018, или другие варианты. Если часы, минуты, секунды опустить, то они приравняются к нулю. Если мы опускаем дату, то она считается равной 1.

Далее мы рассмотрим, как можно сделать преобразование строки в дату. Это действие несложное, но требует определенных знаний. Если у вас возникнут вопросы, обращайтесь за консультацией по программе 1С к нашим специалистам – мы с радостью вам поможем.

Рассмотрим, как можно сделать преобразование строки в дату.

  1. Преобразование строки вида «20181218»


 // Преобразование строки вида 20181218 в дату
	Дата = Дата("20181218"); // 18.12.2018

  1. Преобразование строки вида «18.12.2018»


 // Преобразование строки вида 18.12.1018 в дату
	Дата = Дата("2018.12.18"); // 18.12.2018

  1. Преобразование строки вида «2019, 1, 1»


 // Преобразование строки вида 2019,1,1 в дату
	Дата = Дата("2019,1,1"); // 01.01.2019

  1. Преобразование строки вида «2018-12-18»


 // Преобразование строки вида 2018-12-18 в дату
	СтрокаДата="2018-12-18";
	СтрокаДата=СтрЗаменить(СтрокаДата,"-","");
    НоваяДата = Дата(СтрокаДата); // 18.12.2018

  1. Преобразование строки вида «2018/12/18»


 // Преобразование строки вида 2018/12/18 в дату
	СтрокаДата="2018/12/18";
	СтрокаДата=СтрЗаменить(СтрокаДата,"/","");
    НоваяДата = Дата(СтрокаДата); // 18.12.2018

В последних двух примерах удаляется лишний символ в написании даты. Это может быть любой символ разделитель, главное – его или убрать, или заменить точкой.

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

  1. Преобразование строки вида «21:31:02 2018:12:18»


 // Преобразование строки вида 21:31:02 2018:12:18 в дату
	СтрокаДата="21:31:02 2018:12:18";
	СтрокаДата=СтрЗаменить(СтрокаДата,":","");
    НоваяДата=Дата(Прав(СтрокаДата,8)+ЛевСтрокаДата,6);//18.12.2018 21.31.01

В данном примере мы заменяем символ «:» и берем 8 чисел справа (дату – год, месяц, день), затем приписываем к ним 6 чисел слева (время – часы, минуты, секунды).

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


     Сообщить(СтрВДату("18/12\2018 21-31-02"));
     Сообщить(СтрВДату("5/9/18"));
     Сообщить(СтрВДату("17/9/19"));
     Сообщить(СтрВДату("18 декабря 18 г. 21:31:02"));    
     Сообщить(СтрВДату("1 янв. 2019 г ::"));

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

Если у вас регулярно возникают вопросы по настройке программы, обратитесь к нашим специалистам: мы проконсультируем вас и сделаем соответствующие настройки, подобрав при этом оптимальный тариф на сопровождение 1С, исходя из ваших индивидуальных потребностей.


Рассказать друзьям
Предыдущая статья статья
Как автоматизировать казначейство на базе 1С
Следующая статья статья
Основные справочники 1С 8.3: создание и изменение элементов
Комментарии