Как стать программистом 1С: Тонкости работы с датой 1С
Основу учета составляют документы, отражающие операции компании. Что-то купили, что-то продали. Документов много и они должны быть как-то упорядочены. Ведь мы не можем сначала что-то продать, а потом что-то купить
Документы упорядочены на линии времени. Каждый документ имеет дату, а точнее дату и время до секунды.
Поэтому дата в 1С имеет большое значение и не так проста как кажется на первый взгляд.
Дата документа 1С
Каждый документ имеет дату и время, что располагает список документов в определенном порядке. Когда Вы открываете любой список документов, то сразу это видите перед глазами.
Однако когда
Вы открываете два списка разных документов, это не так бросается в глаза. Они тоже упорядочены друг с другом по дате, хотя и не находятся в едином списке.
Если дата и время документа продажи будет больше чем дата и время документа покупки – 1С сообщит Вам ошибку – «Недостаточно товаров на складе..».
Момент времени 1С
А если у документов одна дата и время, как их различить?
С точки зрения пользователя – никак. Однако со стороны программного кода – они упорядочены дополнительно – по «моменту времени».
Суть применения – упорядочивание документов, созданных с одинаковым временем. Поэтому момент времени содержит:
Дату и время
Ссылку на конкретный документ.
Применение даты 1С и момента времени 1С
Есть замечательный пример – партийный учет. Это когда мы покупаем один и тот же товар несколько раз по разной цене. И когда мы начинаем его продавать – какой товар мы продали – тот что дороже или тот что дешевле?
И мы начинаем например вычислять это с помощью методики FIFO – т.е. мы считаем, что сначала продаем то, что пришло раньше. Но для
этого нужно вычислить – какой документ был проведен раньше?
Оперативное и неоперативное проведение 1С
Оперативным проведением считается тогда, когда это крайний документ по линии времени. Неоперативным, когда мы проводим документ «вчерашней» датой.
В пользовательском понимании оперативное проведение
считается когда проводим документ «сейчас» («сейчашней датой»). При этом что такое «сейчас» обычно мало кто задумывается.
Весь вопрос в том, что при оперативном проведении проводятся всякие проверки на корректность. Например – а можем ли мы столько продать, есть ли у нас столько на складе?
При неоперативном считается проверять уже не надо, т.к. это «вчерашняя» операция,
которая уже свершилась, что же ее проверять.
Как мы видим – с помощью даты и времени можно манипулировать не только результатами учета, но и даже безопасностью, отключением проверок.
Дата актуальности 1С и итоги 1С
Каждый документ «двигает» учет на какую-то цифру своего результата, в штуках или деньгах. Результат
он записывает в большую таблицу – регистр. То есть – все документы проводятся по регистрам.
Во-первых, мы сразу понимаем, что порядок строчек в этой таблице зависит от даты документа и его момента времени.
Во-вторых, рано или поздно такая таблица становится очень большой и считать итого по ней становится очень долго. Поэтому придуман механизм итогов. Это когда на конец каждого месяца система просчитывает заранее
промежуточное итого. И далее считает не с начала этой таблицы, а с последнего итого.
Дата, на которую посчитано промежуточное итого называется – дата актуальности.
Только вот какая штука, если мы возьмем и введем документ с датой меньше даты актуальности – она сдвинется назад (на последние итоги перед этим документом или на начало таблицы). Иначе – итоги уже будут неверные.