1с найти в строке дату

Обновлено: 07.07.2024

Очень частая задача в программировании 1С — преобразование одного типа данных в другой. Проблема преобразования строки в дату — это произвольность написания строки. Кому-то требуется превратить строку «15.12.15» в нужное число, у кого-то значение «15 декабря 2015 года», а возможно, «15.12.2015 20:42:22».

Рассмотрим примерные варианты решения такой задачи.

Варианты преобразования даты из строки

Проще всего преобразовать строку вида «20151215204222», используя метод «Дата»:

Со строкой «15.12.2015 20:42:22» также прекрасно справляется типовой метод:

Второй вариант, если мы знаем отдельные составляющие даты в строковом формате: год, месяц, день и т.д:

Пример преобразования строки вида «2015-12-15 20:42:22»:

СтроковаяДата = «2015-12-15 20:42:22»;
СтроковаяДата = СтрЗаменить(СтроковаяДата , «-«,»»);
СтроковаяДата = СтрЗаменить(СтроковаяДата , «:»,»»);
НоваяДата = Дата(СтроковаяДата ); // 15.12.2015 20:42:22

Если дата указан так «20:42:22 2015/12/15», можно преобразовать её следующим образом:

СтроковаяДата = «20:42:22 2015/12/15»;
СтроковаяДата = СтрЗаменить(СтроковаяДата , «/»,»»);
СтроковаяДата = СтрЗаменить(СтроковаяДата , «:»,»»);
НоваяДата = Дата(Прав(СтроковаяДата , 8) + Лев(СтроковаяДата ,6));

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):


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

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

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

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

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

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

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

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

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

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

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

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

Дата

Значения данного типа содержит дату григорианского календаря (с 01 января 0001 года) и время с точностью до 0,1 миллисекунды.

Литералы:

Работа с типом Дата в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).

Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.


Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Распечатать

17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C: Enterprise Development Tools  50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe  1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Google maps : вывод точек на карту и режим панорамы  7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора PostgreSQL: установка, настройка, обслуживание  11
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц Посмотреть все результаты поиска похожих

Еще в этой же категории

Разница между датами в рабочих днях, подсчет рабочих дней в 1С  5
Разрабатывая некий функционал в 1С, бывает, необходимо посчитать количество рабочих дней после какой-то даты. В этой статье примеры кода и запросы в которых считается количество рабочих дней: Код, при вычислении определяет только по дню недели, ви Как посчитать разницу между двумя датами?  5
Код уникален и сработает везде. Функция ПолучитьКоличествоДней() Счетчик = 1; НачалоПериода = Объект.НачалоПериода; Пока НачалоПериода Объект.КонецПериода Цикл Счетчик = Счетчик + 1; Как получить день недели прописью?  4
При разработке часто пользователю хочется видеть на форме день недели словом, например: Вторник , Среда и т.д. Собственно как получить день недели словом? Через функцию формат: ДеньПрописью = Формат(ТекущаяДата(), "ДФ=дддд"); Еще вариант для кра Как получить количество рабочих дней в месяце по календарю?  1
Для одного проекта потребовалось получить количество рабочих дней в месяце по календарю, без учета праздников. В результате получилась простая функция: Функция ПолучитьКолВоРабочихДнейПоКалендарю(ДатаМесяца) Рабочие=0; Кон=НачалоМесяца(ДатаМес Подсчет реального количества месяцев между датами, включая начало и конец месяца  0
В одном проекте понадобилось подсчитывать полное количество месяцев между датами, Допустим надо получить кол-во месяцев между датами 25.10.14 и 21.11.14 Функция РазницаДатВМесяцах ( Как вычислить разницу между двумя датами в месяцах ) вернет Посмотреть все в категории Работа с Датами (Временем)

Читайте также: