Документ хранит сведения о событии
В документе могут находиться дата, склад, строки материалов и количество. Запись сохраняет эти сведения, но сама по себе ещё не объясняет, какие учётные последствия должны возникнуть. В типичном решении документ до проведения может выполнять роль черновика. Проведение связано с регистрацией события в учёте и выполнением предусмотренного разработчиком алгоритма. Этот алгоритм может проверять условия и формировать движения. Однако нельзя утверждать, что любой документ обязательно изменяет складской остаток. Бывают документы другого назначения, а некоторые вообще не предусматривают проведение. Поэтому первый вопрос при разборе поведения состоит в назначении конкретного объекта. Если документ описывает встречу, ожидать от него изменения количества товара было бы ошибкой. Если он должен отражать поступление, нужно проверить, где и как реализован этот результат.
Регистр отвечает на другой вопрос
Регистр накопления хранит числовые данные в выбранных разрезах. В учебном складском примере измерениями могут быть материал и склад, а ресурсом количество. Тогда можно различать одинаковый материал на двух складах, не смешивая его в один общий остаток. Движение прихода увеличивает учитываемое количество, движение расхода уменьшает его. Для регистра остатков из таких записей получают остаток на определённый момент. Регистр оборотов решает другую задачу: накапливает изменения за период, не храня остаток в том же смысле. Допустим, на основном складе первоначально ничего не было. Поступление восьми условных коробок и выдача трёх дают остаток пять. Но этот вывод верен только при одинаковом материале, складе и согласованном времени учёта. Если выдача относится к другому складу, арифметическое вычитание из первого остатка будет неверным. Связь движений с документом-регистратором помогает проследить происхождение чисел и проверить, какое событие повлияло на результат.
Проверяйте всю цепочку
Если ожидаемый остаток не появился, двигайтесь последовательно. Сначала убедитесь, что документ содержит нужные данные и имеет ожидаемое состояние. Затем проверьте сформированные движения: регистр, измерения, количество и период. После этого рассмотрите условия отчёта, включая дату и отборы. Не следует сразу исправлять число вручную в регистре. Такая правка способна скрыть ошибку алгоритма или разорвать понятную связь с исходным событием. Исследование и изменение выполняют в учебной копии с вымышленными данными. Отдельная проверка нужна для повторного проведения. В простой модели без изменений исходных данных повторная обработка не должна превращать одно поступление в два. Также полезно проверить отмену проведения и изменение количества. Конкретное поведение определяется конфигурацией, поэтому ожидаемые результаты записывают заранее. Даже правильный итоговый остаток не всегда доказывает отсутствие ошибок: два неверных движения могут случайно компенсировать друг друга. Просмотр цепочки событий помогает заметить такую ситуацию.
Попробуйте на практике
Составьте бумажную модель движения материалов, не открывая производственную информационную базу.
- Задайте один материал и два склада. Отдельно обозначьте, какие сведения хранит документ и какие нужны для записи регистра.
- Запишите поступление восьми коробок на первый склад и выдачу трёх с того же склада. Рассчитайте ожидаемый остаток.
- Измените в учебной выдаче склад на второй. Объясните, почему нельзя уменьшить остаток первого склада тем же действием.
- Опишите ожидаемую проверку после повторного проведения неизменённого поступления: какие записи и остатки необходимо сравнить.
Как проверить результат. Для первого сценария получено пять коробок. Во втором склады не смешаны, а повторное действие не принято за новое самостоятельное поступление.
Частые вопросы
Документ и регистр дублируют одну информацию?
У них разные задачи. Документ описывает событие, а регистр организует данные для учёта и расчётов. Связь между ними должна быть понятной и проверяемой.
Почему правильные движения могут не отображаться в отчёте?
Нужно проверить период, отборы и источник данных отчёта. Он может использовать другой регистр или показывать состояние на момент, к которому движение ещё не относится.
Самостоятельный разбор темы. Содержание конкретной обучающей программы здесь не представлено.