Объекты 1С «Документы»

Объект 1С «Документы» — объект метаданных, с помощью которого в прикладном решении хранится информация о совершенных хозяйственных операциях или о событиях, произошедших в "жизни" предприятия вообще. Это могут быть, например, приходные накладные, приказы о приеме на работу, счета, платежные поручения и т.д.

Каждый созданный документ в конфигурации создается для отражения своего типа операции (например, поступление товаров, списание товаров и т.д.).

Документы могут:

  1. проводиться;
  2. просто записываться.

Состояния документа 1С:

  • не помечен на удаление и не проведен;
  • не помечен на удаление и проведен;
  • помечен на удаление и не проведен.

Объект встроенного языка "Момент времени" содержит дату проведения документа и ссылку на него, что позволяет однозначно идентифицировать положение документа на временной оси

Значения свойств "Дата" и "Ссылка" реальных полей таблицы документа определяют его хронологическую позицию среди других документов.

Структура документа в 1С

Каждый документ 1С содержит:

  1. номер;
  2. дату и время (позволяют установить строгую временную последовательность совершения операций);
  3. набор реквизитов (набор информации, которая является одинаковой для всех документов этого конкретного вида);
  4. табличные части (набор информации, которая одинакова по своей структуре, но различна по количеству, для разных документов этого конкретного вида);

Рекомендуется устанавливать строковый тип номера, так как в дальнейшем возможно потребуется указывать в номере и префикс организации.

Подробнее

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

Пример программного получения момента времени:

Нумерация документов 1С

Возможные значения свойства "Периодичность":

  • Непериодический;
  • В пределах года (как правило, означает, что в новом году нумерация документов начнется сначала);
  • В пределах квартала;
  • В пределах месяца;
  • В пределах дня.

[свернуть]

Реквизиты и табличные части документа 1С

Помимо номера, даты и времени, каждый документ, как правило, содержит некоторую дополнительную информацию, которая подробно описывает этот документ. Например, для документа "Поступление товаров и услуг" это может быть информация о поставщике товаров (контрагенте), складе, на который приходуются товары и т.п. Набор такой информации является одинаковым для всех документов конкретного вида, и для ее хранения служат реквизиты документа.

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

Реквизиты и табличные части документа 1С

Система 1С поддерживает:

  • режим автоматической нумерации документов (автоматической генерации номера для нового документа);
  • осуществление контроля уникальности номеров документов, не разрешая создавать документы с одинаковыми номерами (флаг "Автонумерация" на вкладке "Нумерация");
  • автоматический режим, при котором уникальность номеров и автоматическая нумерация могут выполняться в пределах определенного периода (день, месяц, квартал, год). Например, если периодичность установлена год, то с нового года система опять начнет нумерацию указанных документов с 1.

Иногда возникают ситуации, когда для нескольких видов документов необходима сквозная нумерация. Для этих случаем в системе предусмотрен такой объект как нумератор.

Проведение документа 1С

Движения документа – это записи в регистрах, которые создаются в процессе проведения документа и отражают изменения, производимые документом.

Важным свойством документа является возможность его проведения:

  • если документ проводится, то он может изменить состояние тех или иных учитываемых данных, и как правило, при проведении создает записи в регистрах сведений, регистрах накопления, регистрах бухгалтерии, регистрах расчета, тем самым внося изменения в учет организации;
  • если же документ не является "проводимым", значит, что событие, которое он отражает, не влияет на состояние учета, который ведется в данном прикладном решении (документы, у которых запрещено проведение, обычно используются как печатные формы, например: счет, доверенность и т.д.).

Если флаг "Проведен" у документа установлен в "Истина", то для системы это означает, что документ проведен (в общем списке такие документы выделены соответствующей пиктограммой). С точки зрения логики программы проведенный документ может влиять на отчетность (финансовый результат компании).

Когда происходит интерактивное или программное проведение срабатывает процедура ОбработкаПроведения(), которая находится в модуле объекта документа.

Данная процедура имеет два параметра:

  • Если выставить параметру "Отказ" значение "Истина", то проведение не будет выполнено;
  • Параметр "РежимПроведения" устанавливает режим проведения документа - оперативное или неоперативное.

То, в какие регистры документ будет делать движения задается на вкладке "Движения".

Примеры

Отсюда https://v8.1c.ru

Например, документ "Поступление товаров и услуг" при своем проведении может вносить изменения:

  • в состояние расчетов с поставщиками;
  • в учет остатков товаров;
  • в состояние заказов покупателей;
  • другие учетные данные.

Для документа "Коммерческое предложение контрагенту" проведение может быть запрещено, так как этот документ никак не влияет на состояние учета.

[свернуть]

Конструктор движений документов 1С

Алгоритм, на основании которого документ вносит те или иные изменения в состояние учетных данных при своем проведении, описывается средствами встроенного языка на этапе разработки прикладного решения. Система содержит конструктор движений, который помогает разработчику создавать алгоритмы проведения документа.

Конструктор движений - один из инструментов разработки, который используется только для документов и помогает создать процедуру обработки проведения документа на встроенном языке.

Конструктор может быть вызван из окна редактирования документа.

Конструктор движений позволяет:

  1. выбрать регистры, в которые будут вноситься записи;
  2. вручную или автоматически заполнить выражения, которые будут записаны в поля регистра.

Результатом работы конструктора является готовая процедура на встроенном языке с именем ОбработкаПроведения. Эта процедура располагается в модуле документа и будет вызвана системой в момент проведения документа.

Пример

[свернуть]
Рисунки

https://v8.1c.ru

[свернуть]

Пример процедуры-обработчика проведения документа

 

[свернуть]

Формы документа 1С

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

Наряду с этим разработчик имеет возможность создать собственные формы, которые система будет использовать вместо форм по умолчанию.

Формы документа 1С

Форма документа 1С

Форма документа 1С предназначена для просмотра и изменения данных отдельных документов.

Как правило, она представляет данные в удобном для восприятия и редактирования виде.

Рисунок

[свернуть]

Форма списка документа 1С

Форма списка документа 1С предназначена для просмотра документов одного вида и позволяет:

  • выполнять навигацию по списку документов;
  • задавать временной интервал отображаемых документов;
  • добавлять, помечать на удаление и удалять документы;
  • выполнять сортировку и отбор отображаемой информации по нескольким критериям.
Рисунок

[свернуть]

Форма выбора документа 1С

Форма выбора документа 1С предназначена для выбора конкретных документов из списка, и обычно содержит минимальный набор информации, необходимой для выбора того или иного документа.

Может использоваться и при создании документа.

Макеты документа 1С

Макеты документа 1С предназначены для формирования печатных форм документа (бланков) или для отображения дополнительной информации, имеющей отношение к документу.

Документу 1С могут быть сопоставлены несколько макетов, содержащих данные, необходимые для обеспечения работы документа.

Настройка и свойства документов 1C

Вкладка "Движения"

Вкладка "Движения"

Вкладка "Движения"

[свернуть]

Вкладка "Движения" определяет состав регистров, по которым будет делать движения документ, и позволяет устанавливать следующие свойства документа:

  1. Проведение (Разрешить или Запретить) - определяет, разрешено ли проведение (движения) данного документа.
  2. Оперативное проведение (Разрешить или Запретить)  - если установлено "Разрешить", то проведение документа будущей датой невозможно.
  3. Удаление движений — определяет режим очистки движения документа:
    • Удалять автоматически при отмене проведения — движения будут очищены только при нажатии кнопки «Отмена проведения», но не удаляются при перепроведении;
    • Удалять автоматически — движения будут удаляться в любом случае, даже если документ 1С перепроводится;
    • Не удалять автоматически — значит, что удаление движений осуществляется разработчиком.

Оперативное и неоперативное проведение документа 1С

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

Рисунок

«Оперативное проведение" - "Разрешить»

[свернуть]

Для тех видов документов, для которых в метаданных данное свойство включено, система поддерживает режим оперативного проведения, то есть, каждое проведение может выполняться:

  1. либо в оперативном режиме,
  2. либо в неоперативном режиме. 

При включенном в конфигураторе режиме "Оперативное проведение" - "Разрешить" можно проводить:

  • либо документ с предыдущей датой,
  • либо документ с текущей датой и текущим временем.

В оперативном режиме система контролирует остатки по регистрам для исключения отрицательных остатков (баланса). Такой контроль имеет смысл только в текущий момент, т.к. отклонение времени проведения даже на секунду (раньше или позже) может привести к иному состоянию базы, чем в момент самого проведения.

Неоперативное проведение - проведение документа прошлой или будущей датой. Контроль остатков в данном режиме проведения не выполняется (при проведении "задним числом" практического смысла не несет, товар все равно уже отгружен).

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

[свернуть]

Вкладка "Ввод на основании"

Ввод на основании обычно создает объект другого типа, данные которого лишь функционально зависят от "объекта-основания" (в отличие от "копирования" – создания нового объекта копированием существующего, причем того же типа и с идентичными данными).

Документ может быть введен на основании:

  • плана обмена,
  • справочника,
  • бизнес-процесса,
  • задачи,
  • другого документа.

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