Difference between revisions of "Struct.Numerator.TimePeriod"
m (1 revision imported) |
|
(No difference)
| |
Latest revision as of 07:53, 7 February 2021
| 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;
...