§ 9.4. Документ и справочник: одна запись, разные правила
Поставьте рядом карточку товара и форму поступления. Устроены они одинаково: основной реквизит, поля с путями к данным, группы, командная панель. А кнопки разные — у поступления есть «Провести», которой у товара нет и быть не может. Разница не в формах, а в том, что за записью стоит.
1. Что у них общего
Общего больше, чем различий, и всё это мы читали в прошлых главах.
| что одинаково | и там, и там |
|---|---|
| о чём разговор | об одной записи |
| что в основном реквизите | объект: справочника или документа |
| как живут данные формы | пришли копией, уходят при записи |
| из чего собрана форма | те же пять видов элементов |
| что будет без своей формы | платформа построит автоформу |
Поэтому всё, чему книга учила до сих пор, работает в обеих формах без оговорок. Различия начинаются там, где начинается смысл записи.
2. Справочник хранит, документ отмечает
Справочник отвечает на вопрос «что у нас есть»: товары, склады, контрагенты. Документ отвечает на вопрос «что произошло»: поступил товар, отгрузили покупателю, изменили цены.
| справочник | документ | |
|---|---|---|
| о чём запись | о вещи или лице | о событии |
| ключевые стандартные реквизиты | код, наименование | номер, дата |
| бывает ли иерархия | бывает: группы и элементы | не бывает |
| что с записью потом | правят, когда вещь изменилась | не правят: событие уже случилось |
Отсюда и разные стандартные реквизиты. Вещи нужен код и название; событию — номер и дата, потому что события выстраиваются во времени, и порядок у них важен.
Справочник говорит: «вот это у нас есть». Документ говорит: «вот это у нас произошло, такого-то числа».
Из этой разницы вырастает и то, чего у справочника нет вовсе, — проведение.
3. Проведение: то, чего у справочника нет
У документа есть свойство «Проведение». Документация описывает его коротко: оно «определяет, разрешено ли проведение документа при записи». Если разрешено, у документа появляется второе действие после записи — провести.
| действие | что делает |
|---|---|
| записать | сохраняет саму запись |
| провести | записывает движения по регистрам |
| отменить проведение | снимает признак проведённости и удаляет сделанные движения |
Движение — это запись в регистре: приход на склад, расход со склада, новая цена. Куда документ пишет такие записи, задано у него списком регистров; документация так и говорит: это «те регистры, по которым документ может выполнять движения». Поступление пишет приход, реализация — расход; справочнику писать некуда, у него движений нет.
У проведения бывает и срок. Оперативным называют проведение «сейчас» — когда документ проводят текущей датой, по горячим следам события; разрешено оно или нет, задано отдельным свойством документа. Задним числом документ проводится по другим правилам, и отсюда предупреждения, знакомые каждому пользователю: «дата документа меньше текущей» — значит, проведение уже не оперативное.
4. Что из этого видно в форме
Различия в данных дают различия на экране — и все они читаются сразу.
| что видно в форме документа | откуда это |
|---|---|
| кнопки «Провести» и «Провести и закрыть» | проведение разрешено у документа |
| признак проведённости в заголовке или поле | стандартный реквизит документа |
| «Отменить проведение» в меню | обратное действие к проведению |
| предупреждение о дате | правила оперативного проведения |
Рабочее правило: есть «Провести» — перед вами документ с разрешённым проведением, и его данные идут дальше, в регистры. Нет — либо справочник, либо документ, которому проведение запретили; тогда смотрят на номер и дату.
5. Как читают форму документа
Карточку справочника читают по вопросу «что это за вещь». Форму документа — по вопросу «что это за событие», и вопрос раскладывается на четыре.
| что смотрим | что узнаём |
|---|---|
| номер и дата | когда событие случилось |
| поля шапки | кто и где участвовал: контрагент, склад |
| табличную часть | что именно и сколько |
| итоги и проведение | чем это кончилось для учёта |
Порядок не случаен: шапка отвечает на «кто, когда, где», строки — на «что», проведение — на «что из этого следует». Так же, кстати, читают и бумажный документ: подписи и дата сверху, перечень в середине.
6. Чем формы различаются в чужой конфигурации
Признаков хватает, чтобы определить вид объекта, не заглядывая в дерево.
| признак в форме | вид объекта |
|---|---|
| поля «Код» и «Наименование» | справочник |
| поля «Номер» и «Дата» | документ |
| кнопка «Провести» | документ с разрешённым проведением |
| таблица со строками товаров | чаще документ; у справочника тоже бывает — например, контактные лица у контрагента |
| форма группы в ролях объекта | иерархический справочник |
Четвёртая строка — напоминание, что признаки не абсолютны: табличная часть бывает и у справочника. Решают первые три, а надёжнее всего — номер с датой: они есть только у документа.
7. В Конфигураторе и в Предприятии
Проверим эти признаки вживую — сначала в Предприятии, потом в дереве конфигурации.
- Откройте в Предприятии карточку товара и поступление № 12. Выпишите кнопки каждой формы и отметьте те, что есть только у документа.
-
В Конфигураторе откройте документ «Поступление товаров» и найдите свойство проведения и список движений.
-
Сравните со справочником «Товары»: ни того, ни другого у него нет.
-
В Предприятии проведите поступление № 12 и посмотрите отчёт об остатках. Потом отмените проведение и посмотрите снова.
-
Проведите документ обратно: база серии должна остаться проведённой.
Главное в одном абзаце
Форма документа и форма элемента справочника устроены одинаково: обе — разговор об одной записи, с объектом в основном реквизите, копией данных в форме и теми же элементами. Различия идут от смысла записи: справочник хранит то, что есть, и получает код с наименованием; документ отмечает то, что произошло, и получает номер с датой, а иерархии у него не бывает. Главное различие — проведение: свойство документа решает, разрешено ли оно при записи, а список движений говорит, по каким регистрам документ пишет. Отсюда и кнопки «Провести», «Отменить проведение», и предупреждения о дате, которых у справочника нет. Правило чтения короткое: есть «Провести» — это документ, и его данные идут дальше в учёт; нет — запись заканчивается собой. Карточку читают по вопросу «что это за вещь», форму документа — по вопросу «что это за событие»: номер и дата, шапка, строки, проведение.
Запись, список, выбор, документ — всё это формы о данных, которые в базе лежат. Но есть формы, которые показывают то, чего в базе нет: отчёт. Его цифры собираются в момент, когда их просят. Как устроена такая форма?
Контрольные вопросы
- Что общего у формы документа и формы элемента справочника?
- На какие разные вопросы отвечают справочник и документ?
- Почему у документа номер и дата, а у справочника код и наименование?
- Что делает проведение и где задано, куда идут движения?
- Что такое оперативное проведение и как оно даёт себя знать в форме?
- Какое правило позволяет отличить форму документа от формы справочника?
- В каком порядке читают форму документа?
Упражнения
По образцу. Сравните форму реализации и карточку контрагента: реквизиты, команды, что из этого следует.
Своё: придумайте документ. Для «Канцтоваров» предложите документ, которого ещё нет, и скажите в общих словах, какие движения он должен делать: что приходит, что расходуется, где это должно отразиться.
Ловушка: «записал — значит, учтено». Кладовщик записал поступление и удивляется, что остатки не изменились. Что вы объясните?
Обратный ход. В чужой конфигурации у формы есть номер и дата, но нет кнопки «Провести». Какие объяснения возможны?
На чтение. В чужой форме справочника есть табличная часть и кнопка «Провести». Что здесь не так и как проверить?
Ответы — в конце части.