Struct.Numerator.TimePeriod

From SunFlurry wiki
Jump to: navigation, search
  Numerator.TimePeriod (Свойства нумераторов)
Объект:Объект структуры базы данных
Статус разработки: Реализована
Тип:Атрибут
Обращение к БД:Нет
Доступность:Только чтение
Исключения:Неверное позиционирование.
Визуальность:Нет

Атрибут применяется к объекту структуры базы данных, позиционированному на свойствах нумератора, и возвращает периодичность номера нумератора. Возможны следующие значения:

  • 0 -- нумератор не имеет периода.
  • 1 -- нумерация будет начинаться сначала в начале года.
  • 2 -- нумерация будет начинаться сначала в начале квартала.
  • 3 -- нумерация будет начинаться сначала в начале месяца.
  • 4 -- нумерация будет начинаться сначала в начале каждого дня.

Синтаксис

Struct.Numerator.TimePeriod:<Периодичность номера нумератора (INT)>

Возвращаемое значение

Возвращается числовое значение.

Примеры

//Фрагмент вызывается при изменении реквизита "DocDate" (дата документа) существующего документа.
//Фрагмент проверяет, выходит ли измененное значение реквизита "DocDate" за период нумерации для реквизита-нумератора "DocNum"
//  Если выходит, необходимо запретить запись изменений, так как в новом периоде это может нарушить нумерацию (нумерация продолжиться не с начала, а с старого номера этого документа).

//Получим старую дату существовавшего документа
ДатаСтар:=aEl.Copy().DocDate;
//Найдем период нумерации номера
ФлПериод:=Struct.Doc(Вид).Props("DocNum").Numerator.TimePeriod;
  
Фл:=0;
If ФлПериод=1 Then //Год
  Фл:=(GetYear(aEl.DocDate)<>GetYear(ДатаСтар);
ElseIf ФлПериод=2 Then //Квартал
  Фл:=BegOfQuarter(aEl.DocDate)<>BegOfQuarter(ДатаСтар);
ElseIf ФлПериод=3 Then //Месяц
  Фл:=BegOfMonth(aEl.DocDate)<>BegOfMonth(ДатаСтар);
ElseIf ФлПериод=4 Then //День
  Фл:=BegOfDay(aEl.DocDate)<>BegOfDay(ДатаСтар);
EndIf;

If Фл Then
  Message("Сохранение запрещено, так как дата выходит за предыдущий период нумерации документа!","!");
  Exit;
EndIf;

...