Как преобразовать строку в дату 1С 8.3
Очень частая задача в программировании 1С — преобразование одного типа данных в другой. Проблема преобразования строки в дату — это произвольность написания строки. Кому-то требуется превратить строку «15.12.15» в нужное число, у кого-то значение «15 декабря 2015 года», а возможно, «15.12.2015 20:42:22».
Рассмотрим примерные варианты решения такой задачи.
Варианты преобразования даты из строки
Проще всего преобразовать строку вида «20151215204222», используя метод «Дата»:
Дата(«20151215204222») // 15.12.2015 20:42:22
Со строкой «15.12.2015 20:42:22» также прекрасно справляется типовой метод:
Дата(«15.12.2015 20:42:22») //15.12.2015 20:42:22
Второй вариант, если мы знаем отдельные составляющие даты в строковом формате: год, месяц, день и т.д:
Дата(«2015″,»12″,»15″,»20″,»42″,»22») // 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С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
СПРОСИТЕ в комментариях!
Борис:
А теперь запустите этот код на компьютере, где стоит стандарт отображения даты, отличный от принятого в России.
Аноним:
Командой Формат, после преобразования скорее всего очень легко решится.
Аноним:
у меня не справляется метод дата()…..
Аноним:
СтроковаяДата = «2015-12-15 20:42:22»;
СтроковаяДата = СтрЗаменить(СтроковаяДата , «-«,»»);
СтроковаяДата = СтрЗаменить(СтроковаяДата , «:»,»»);
НоваяДата = Дата(СтроковаяДата ); // 15.12.2015 20:42:22
Здесь нужна еще одна операция для удаления пробела.
Аноним:
нет самого интересного, когда дата в виде 01.01.20
Аноним:
Мона так:
СтроковаяДата = «01.01.20»
ПолученнаяДата = Дата(СтроковаяДата + » 00:00:01″;
Аноним:
А если не таким способом, а другие варианты существуют для такого вида даты? «01.01.2020»?
dolgopa:
Дата(«15.12.2015 20:42:22») — это не работает
Аноним:
Еще как работает
Alex:
В начале статьи обозначена задача преобразовать строку «15 декабря 2015 года» в дату, но так и не раскрыто как это сделать…
Аноним:
вот согласна)
Аноним:
Курсы для кого тогда, если все здесь раскрыть ))