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