Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Понятие момента времени




Для определения положения документа на оси времени использу- ется реквизит документа Дата. Дата содержит время с точностью до секунды. Это позволяет контролировать последовательность записи документов. Однако при большом объеме создаваемых документов вероятна ситуация, когда несколько документов будут иметь одина- ковое значение даты (т. е. будут созданы в течение одной секунды). Как в этом случае определить последовательность созданных документов?

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

Понятие момента времени реализовано во встроенном языке при помощи универсального объекта МоментВремени. Этот объект имеет свойства Дата и Ссылка, которые позволяют получить «составля- ющие» момента времени, и один метод – Сравнить(), при помощи которого возможно сравнение двух моментов времени между собой. Кроме этого, объект МоментВремени имеет конструктор и может быть создан в явном виде для любого объекта базы данных ссылоч- ного типа.

Для нескольких документов, имеющих одинаковую дату и время, последовательность их на оси событий определяется системой исходя из ссылок на эти документы. Она может не совпадать с последова- тельностью создания документов, и она недоступна для изменения пользователем, то есть нельзя каким-либо образом повлиять на после- довательность документов внутри одной секунды или вычислить, что один документ создан раньше, а другой – позже.

Оперативная отметка времени создается системой каждый раз при оперативном проведении документа. Ее значение формируется исходя из текущей даты сеанса и последней созданной оперативной отметки.

Если последняя оперативная отметка меньше текущей даты сеанса, в качестве новой оперативной отметки принимается текущая дата сеанса.


Если последняя оперативная отметка равна или больше текущей даты сеанса, в качестве новой оперативной отметки принимается значение на одну секунду большее, чем старая оперативная отметка времени.

Таким образом, если у объекта конфигурации Документ установлено свойство оперативного проведения (рис. 14. 30), последовательность действий системы будет следующей:

„ при создании нового документа система будет устанавливать ему текущую дату сеанса и «нулевое» время;

„ при проведении такого документа (с датой, день которой соответ- ствует дню текущей даты сеанса) система установит в качестве даты документа оперативную отметку времени;

„ если отменить проведение документа и затем провести его снова (не изменяя даты), система установит документу новую оператив- ную отметку времени;

„ если попытаться перепровести документ, то система также авто- матически установит документу новую оперативную отметку времени и проведет его;

„ при попытке проведения (или перепроведения) оперативно про- водимого документа с датой, день которой меньше дня текущей даты сеанса, документ будет проведен неоперативно;

„ если попытаться провести (или перепровести) оперативно прово- димый документ с датой, день которой больше дня текущей даты сеанса, то система не даст выполнить такое действие.

 

 

Рис. 14. 30. Разрешение оперативного проведения документа


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

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

Если же отрицательных остатков не появилось, тогда можно смело проводить документ.

Полдела у нас уже сделано: мы формируем движения документа и записываем их. Единственное, что нам осталось, – в случае опера- тивного проведения проконтролировать, что получилось, и, если появились отрицательные остатки, отменить проведение документа.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...