Записки программиста 1с

Тип дата 1с. Примеры кода.

Тип дата в 1с относится к примитивным типам данных. Он используется постоянно, например как реквизит даты Документа.

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

Типовой порядок частей даты принятый в 1С — год, месяц, день, час, минута, секунда.

Самый простой способ задания даты представлен ниже:

ДатаРождения='20220102145555';//1 февраля 2022 года 14 часов 55 минут 55 секунд

Дата приравнивается к переменной строки цифр в одинарных кавычках.

В данной записи вида ‘ГГГГММДДччммсс’ где:

  • ГГГГ — четыре цифры года (включая тысячелетие и век);
  • ММ — две цифры месяца;
  • ДД — две цифры даты;
  • чч — две цифры часа (в 24-х часовом формате);
  • мм — две цифры минут;
  • сс — две цифры секунд.

Часы, минуты и секунды можно не указывать, при этом они приравниваются к нулю.

тип дата 1с
Функции типа Дата в 1с

Также перечень всех функций работы с датами можно посмотреть в синтакс-помощнике:

функции типа дата 1с
Функции типа Дата в 1с

Увеличение даты на 1 день

Значение типа данных дата определено с точностью до секунды. При прибавлении к дате числа 1 увеличивается время на 1 секунду. Поэтому увеличить дату на 1 день можно так:

ДатаВременная=Дата+60*60*24;

пустая дата в 1с

Для того чтобы проверить дату на “пустое” значение, нужно сравнить имеющееся значение со значением типа “Дата” по умолчанию. Например:

Функция ДатаНеЗаполнена(ПереданноеЗначение)
Если ПереданноеЗначение = Дата('00010101') Тогда
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;
КонецФункции

Функция ДеньНедели()

Пример подсчета рабочих и выходных дней

        раб=0;вых=0;
	ДатаТ=Объект.ДатаНач;
	пока ДатаТ<=объект.ДатаКон цикл
		если ДеньНедели(ДатаТ)=7 или ДеньНедели(ДатаТ)=6 тогда
			вых=вых+1;
		иначе	
			раб=раб+1;
		конецесли;
			ДатаТ=ДатаТ+60*60*24;
					
	конеццикла;
	Объект.Дней=Число(раб);
	объект.Подробности="вых="+строка(вых)+"  раб="+Строка(раб);

Функция ТекущаяДата()

Выводит текущую дату.

        Перем Дата;
	Дата=ТекущаяДата();
	Сообщить(Дата);

Функция ДобавитьМесяц ()

Функция добавляет указанное количество месяцев к заданной дате. Синтаксис:

ДобавитьМесяц(<Дата>, <ЧислоМесяцев>)

Добавляет (или вычитает) к указанной дате заданное число месяцев.

ТекущаяУниверсальнаяДатаВМиллисекундах

Функция ТекущаяУниверсальнаяДатаВМиллисекундах() позволяет узнать дату в миллисекундах. Она доступна начиная с версии платформы 8.2.17.

&НаКлиенте
Процедура ТестДата(Команда)
 Сообщить(ТекущаяУниверсальнаяДатаВМиллисекундах()); //63 628 364 816 246
КонецПроцедуры

Дата

Функция Дата() служит для создания значения типа “Дата”. Использовать ее можно двумя способами:

  • Дата(x) — где параметр “x” это строка вида “ГГГГММДДччммсс”, часы, минуты и секунды можно опустить, т.е. преобразуем строку в дату;
  • Дата(x, y, z, w, v, c) — в этом случае параметры “x”, “y”, “z”, “w”, “v” и “c” являются числами и означают год, месяц, день, час, минуту и секунду соответственно. Как и в предыдущем случае час, минуту и секунду можно опустить.

МоментВремени

МоментВремени это объект который является совокупностью даты и ссылки на какой-либо объект информационной базы. Он используется в качестве значения свойств или параметров методов других объектов, имеющих тип МоментВремени. Применяться этот объект может при программном создании документов. Разные документы создаются в разные моменты времени. МоментВремени необходим для того, чтобы различать моменты времени для объектов имеющих одинаковую дату создания.

Количество дней в месяце в 1с: Предприятие

Пример нахождения Количество дней в месяце в 1с: Предприятие

&НаКлиенте
Процедура Команда4(Команда)
	Дата=Объект.Период;
	КоличествоДней=День(КонецМесяца(Дата));
	Сообщить("КоличествоДней="+КоличествоДней);	
КонецПроцедуры

Функция преобразования Даты из числового формата Excel

Функция преобзавованиеДаты(Строка.ДатаРождения)
СтрокаДата=Сред(строка.ДатаРождения,7,4)+сред(строка.ДатаРождения,4,2)+лев(строка.ДатаРождения,2);
ДатаРождения=Дата(СтрокаДата);
Возврат ДатаРождения;
Конецфункции

Функция 1с Получить Дату из Строки

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

&НаСервере
функция ПолучитьДатуИзСтроки(Стр) 

         ДТ = Дата("00010101000000");

         Если ПустаяСтрока(Стр) Тогда
             Возврат ДТ;
         КонецЕсли;

         Если Найти(Стр,".") > 0 Тогда

	     М = СтрРазделить(Стр,".");

         ИначеЕсли Найти(Стр,"/")>0 Тогда

             М = СтрРазделить(Стр,"/");

         ИначеЕсли Найти(Стр,",")>0 Тогда

             М = СтрРазделить(Стр,",");

         ИначеЕсли Найти(Стр,"-")>0 Тогда

             М = СтрРазделить(Стр,"-");

         КонецЕсли; 

         Попытка

             Если М.Количество() = 3 Тогда //"01.02.13" или "01.02.2013"
                 Год = ?(СтрДлина(М[2]) = 2,2000 + М[2],М[2]);
                 ДТ = Дата(Год,М[1],М[0]);
             ИначеЕсли М.Количество() = 2 Тогда //"02.13" или "02.2013";
                 Год = ?(СтрДлина(М[1]) = 2,2000 + М[1],М[1]);
                 ДТ = Дата(Год,М[0],1);
             КонецЕсли;

         Исключение
         КонецПопытки; 

         Возврат ДТ; 

     КонецФункции

тип дата 1с
Код преобразования

Функция перевода данных типа даты при экспорте из файла электронной таблицы Excel.

Изучен тип дата в 1с и его основные функции.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *