Перейти к основному содержимому

Элемент проекта вида «Документ»

Элемент проекта Документ предназначен для моделирования объектов, которые имеют привязку ко времени и отражают некие свершившиеся факты, актуальность которых падает с течением времени.

Ближайшим аналогом являются бумажные документы: «Накладная», «Акт», «Счет». Важным аспектом является именно естественное устаревание каждого конкретного экземпляра с течением времени. Например, долгосрочный договор с клиентом чаще всего моделируется с помощью элемента проекта Справочник, хотя у него есть четкий бумажный аналог — документ договора. Однако, с точки зрения пользователя, договор устаревает медленно (или не устаревает вообще, пока существует договоренность с контрагентом). А вот факты конкретных бизнес-операций устаревают естественным образом: отгрузили накладную, оплатили счет — и забыли об этом. Состояние счетов и накладных недельной или годовой давности не интересует нас, как пользователя в дне сегодняшнем. Операция выполнена и осталась в истории. К ней можно вернуться, но она теряет релевантность при ведении бизнеса здесь и сейчас.

Таким образом, для договоров более важен факт их существования, поэтому в моделях для их описания, как правило, используется элемент проекта Справочник, а для оплаченных счетов или отгруженных накладных важна актуальность свежих данных. Существование старых (архивных) данных все менее ценно с каждым новым днем, поэтому для описания моделей «Счет» и «Накладная», как правило, используется элемент проекта Документ.

В зону ответственности элемента Документ не входит непосредственно формирование движений, так как движения это прерогатива регистров учета и алгоритма проведения, который хоть и опирается на данные документа, но не принадлежит документу. Документ, в лучшем случае, выступает только привязкой движения к первичному документу (регистратору) и основанием для движения.

Данные, содержащиеся в Документе, можно представить в виде таблицы, имеющей одну или несколько колонок. Строки этой таблицы содержат записи, которые являются объектами Документа. Все объекты Документа независимы друг от друга. Каждый такой объект имеет уникальный идентификатор, называемый ссылка. На каждый такой объект можно сослаться во время работы приложения, например, выбрать его при заполнении отчета.

Например, Накладная — это Документ:

НомерДатаСумма
НК00101.05.202232 000
НК00201.05.202245 000
НК00303.05.202223 000
НК00404.05.202241 000

Объектами этого Документа являются накладная с номером НК001, датой создания 01.05.2022 и суммой 32000, накладная с номером НК002, датой создания 01.05.2022 и суммой 45000 и т. д.

Вид Документ содержит специальные свойства, которые называются реквизитами. Реквизит — это описание одной колонки в такой таблице. У вида Документ есть два стандартных реквизита — обязательный реквизит Дата, который выстраивает вводимые документы на оси времени, и необязательный системный реквизит Номер.

Реквизит Дата индексированный и позволяет искать документы в пределах диапазона дат. Списки документов в пользовательском интерфейсе автоматически сортируются по Дате. При интерактивном вводе Дата устанавливается автоматически. Форма объекта при создании нового документа открывается с реквизитом Дата равным дате в поясе клиента и временем 0:00:00 (если время актуально для типа Даты). При записи нового объекта Документа дата устанавливается по алгоритму установки даты.

Реквизит Номер может заполняться автоматически. За такое поведение отвечает свойство реквизита НомерАвтонумерация. Нумерация может выполняться с учетом периодичности. Например, каждый год накладные могут нумероваться сначала.

У Документа всегда присутствует один обязательный реквизит — Дата. Помимо системного реквизита Номер, вы также можете добавить любое количество собственных реквизитов для того, чтобы описать дополнительные колонки, например Сумма, Контрагент, Позиции, и др.

См. также