Главная » 1С Предприятие » ВСТРОЕННЫЕ ФУНКЦИИ ДЛЯ ДАТ И ВРЕМЕНИ

0

1С, как  и  полагается программе бухгалтерского назначения, хранит много  различных Дат, для управления которыми  и доступа  к которым используются  приводимые в табл.  2.9

функции. Параметры, имя которых содержит слово  дата, это  выражения типа Дата. Параметр вариант может быть либо датой, либо выражением символьного типа. Прочие параметры это числовые выражения. Большинство функций,  если  они получают в качестве параметра несуществующую дату, например ‘33.10.01’,  возвращают пустое значение типа Дата. Например:

Сообщить(НачМесяца(‘33.10.01′));             //Напечатает                 .   .

Функции для дат

Таблица 2.9

Функция

ЧТ О   возвращает

рДатаТек =  РабочаяДата ([рДата],  [режимСмены]);

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

•   0, то рабочая  дата в  полночь  не меняется;

•   1, то  система  предлагает изменить  рабочую  дату в  полночь;

•   2, то рабочая дата  меняется в  полночь  автоматически. Если  параметр  режимСмены   не  задан,  то  при  вызове функции  РабочаяДата сохраняются заданные в  системе установки  режима смены. Если  новое  значение  даты  -

это  несуществующая дата, то  рабочая дата  не  меняется. Рабочую дату  можно также  изменить,  воспользовавшись в  1С:Предприятии  пунктами  меню  Сервис Параметры

и  выбрав  в  появившемся окне  закладку  Общие

(см.  рис. 2.1). По умолчанию рабочая  и  текущие даты совпадают

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

Текущую  (системную) дату

новаяДата = ДобавитьМесяц

(дата,    числоМесяцев);

Дату, получаемую  в результате прибавления к значению параметра дата  заданного вторым  параметром числа месяцев. Значение  параметра  числоМесяцев может быть меньше  нуля

нМесяца  = НачМесяца(дата);

Дату  начала месяца,  которому принадлежит дата

кМесяца   =   КонМесяца(дата);

Дату  конца месяца, которому принадлежит дата

нКвартала =

НачКвартала(дата);

Дату начала  квартала, которому  принадлежит дата

кКвартала =

КонКвартала(дата);

Дату конца  квартала, которому  принадлежит дата

нГода = НачГода(дата);

Дату  начала года, которому принадлежит дата

кГода =  КонГода(дата);

Дату  конца года, которому принадлежит дата

Функция

Что  возвращает

нНедели = НачНедели(дата);

Дату  начала недели, которой  принадлежит дата

кНедели  КонНедели(дата);

Дату конца  недели, которой  принадлежит дата

год = ДатаГод(дата);

Числовое значение  года, которому принадлежит дата

месяц = ДатаМесяц(дата);

Номер месяца, которому принадлежит дата

число = ДатаЧисло(дата);

Номер  дня месяца,  заданного  параметром дата

неделя =

НомерНеделиГода(дата);

Номер недели  года, которой принадлежит дата

деньГода  =

НомерДняГода(дата);

Номер  дня года, заданного  параметром  дата

деньНедели = НомерДняНедели(дата);

Номер  дня недели, заданного  параметром дата

(нумерация дней  начинается с понедельника)

период = ПериодС  тр (датаНачПериода, датаКонПериода);

Символьное  представление  периода, границы которого задаются значениями параметров функции.  Если период это месяц,  квартал, полугодие или год, то выводится соответствующее название периода, например  1 Полугодие 2002  г.

нИнтервала = Начало СтандартногоИнтервала ([вариант]);

Устанавливает/возвращает  вариант   задания   начала стандартного интервала отображения журнала  документов. Параметр  вариант, если  он имеет тип Дата, задает дату начала интервала журнала документов. Если  параметр -

это символьное выражение, то оно  должно вычисляться со следующими значениями: "День", "Месяц", "Квартал", "Год". Если параметр опущен или содержит неверное значение, имеющаяся в системе установка  сохраняется. Начало стандартного интервала можно задать

в  1С:Предприятии, обратившись к пунктам меню Сервис -

Параметры и выбрав в появившемся окне закладку Журналы  (рис. 2.3)

кИнтервала = Конец СтандартногоИнтервала ([вариант]);

Устанавливает/возвращает вариант задания конца стандартного  интервала отображения журнала документов. Параметр  вариант имеет тот же, что  и для

предшествующей функции, смысл с той разницей, что задает конец  стандартного  интервала

время  = ТекущееВремя ([час], [мин], [сек]);

Строку, отображающую текущее (системное)  время.  Если заданы параметры час, мин и сек, то функция  запишет в них числовые значения соответственно часа, минут и секунд  текущего  времени

флаг = ВвестиПериод

(нПер,  кПер,  заг)

Единицу, если  в выведенном  диалоге (рис. 2.4) задания даты  начала (нПер)  и даты  конца  (кПер)  периода  нажата  кнопка  ОК,  или нуль, если нажата кнопка  Отмена,  или клавиша Esc, или кнопка,  закрывающая окно диалога. Символьный параметр  заг задает заголовок  диалогового окна

Рис.  2.4. Диалог задания дат начала  и конца периода

Примеры:

рДата = РабочаяДата();

// 10.10.01

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

// 10.10.01

новая Дата = ДобавитьМесяц(рДата, -2);

// 10.08.01

нМесяца = НачМесяца(рДата);

//01.10.01

кМесяца = КонМесяца(рДата);

//31.10.01

нКвартала = НачКвартала(рДата);

//01.10.01

кКвартала = КонКвартала(рДата);

//31.12.01

нГода =  НачГода(рДата);

//01.01.01

кГода = КонГода(рДата);

//31.12.01

нНедели = НачНедели(рДата);

//08.10.01

кНедели = КонНедели(рДата);

//14.10.01

год = ДатаГод(рДата);

//2001

месяц = ДатаМесяц(рДата);

//10

дч = ДатаЧисло(рДата);

//10

неделя =  НомерНеделиГода(рДата);

//41

деньГода =  НомерДняГода(рДата);

//283

деньНедели =  НомерДняНедели(рДата);

// 3

период = ПериодСтр(нКвартала, кКвартала);

//4  Квартал 2001  г.

// Новая установка начала стандартного интервала

НачалоСтандартногоИнтервала("Месяц"); нИнтервала =  НачалоСтандартногоИнтервала(  );

// Месяц

// Новая установка конца стандартного интервала КонецСтандартногоИнтервала("Квартал");    //               Квартал кИнтервала = КонецСтандартногоИнтервала();             //        4 Квартал 2001 г. время = ТекущееВремя();                          //                                  19:53:12

// Подготовка  к вызову диалога (рис. 2.4) задания дат начала и конца периода

// Устанавливаем значения дат, отображаемых в диалоге

нПер = ‘01.04.01’; кПер = ‘30.06.01’;

флаг = ВвестиПериод(нПер, кПер,  "Введите период");

Замечание.  При  работе  с датами  на всем временном  интервале,  начиная  от  рождества Христова,  используется  григорианский календарь, который берет  отсчет  от 4 октября  1582 г. по юлианскому  календарю. Причем этот день юлианского  календаря стах 15 октября 1582 г. в григорианском.

Функцию    ТекущееВремя   часто   употребляют   для   замера    времени   вычисление (правда,  достаточно  продолжительных,  поскольку  функция   не  возвращает  миллисекунды), например так:

процедура Выполнить(  )                       //              Замеряет время вычислений перем  нЧас, нМин, нСек;               //          нСек время начало вычислений перем  кЧас, кМин, кСек;               //          кСек время конца вычислений перем  времяВычислений;

перем ин, с;

ТекущееВремя(нЧас, нМин, нСек);        //     Фиксируем время начала  вычислений

// Некоторые вычисления

с = 0;

для ин = 1 по 500000 цикл

с = с + (ин * 2) / ин;                 //          Некоторые вычисления конецЦикла;

ТекущееВремя(кЧас, кМин, кСек);         //     А это время конца вычислений

// Время вычислений в секундах

времяВычислений = (кЧас нЧас) * 3600 + (кМин нМин) * 60 + (кСек нСек); Сообщить("Длительность процесса равна " + времяВычислений + " сек.");

конецПроцедуры // Выполнить

Источник: Бартеньев О. В. 1С:Предприятие:  программирование для  всех.  Базовые объекты и расчеты на одной дискете. М.: Диалог-МИФИ, 2005. 464 с.

По теме:

  • Комментарии