Часто перед разработчиками 1С встает задача: необходимо реализовать возможность ставить отметку (булево) о получении оригинала документа. При этом ключевым требованием является возможность изменять эту отметку даже в закрытом периоде (без перепроведения самого документа). Дополнительно требуется регистрировать пользователя, который изменил эту отметку, и выводить статус в динамический список документов.
Давайте подробно разберем эту задачу, проанализируем различные подходы к архитектуре и посмотрим, как правильно реализовать такой функционал, чтобы он работал быстро и не вызывал проблем при масштабировании.
Поскольку нам необходимо изменять данные без модификации самого объекта документа (чтобы обходить запрет редактирования в закрытом периоде), очевидно, что хранить этот реквизит в самом документе нельзя. Нам потребуется отдельный РегистрСведений. Но какой выбрать: периодический или непериодический?
Рассмотрим два основных подхода, которые обсуждаются в сообществе разработчиков:
СрезПоследних, что позволяет удобно получать актуальный статус на текущий момент. Если отметку нужно выводить в список документов, периодический регистр справится с этой задачей, хотя объединение списка с таблицей среза последних может быть тяжелым для производительности базы данных при больших объемах.Вывод по архитектуре: Если вам строго не требуется выводить исторические срезы на конкретные даты в отчетах, то оптимальным решением будет создание обычного непериодического регистра сведений. Это избавит базу от лишней нагрузки по расчету итогов среза последних.
Проанализируем ситуацию с точки зрения современных конфигураций (таких как ERP, Комплексная автоматизация, Бухгалтерия предприятия 3.0). В большинстве современных решений 1С, построенных на базе БСП, изобретать собственный регистр уже нет необходимости. Выясним, какие готовые инструменты мы можем использовать.
Штатная подсистема «Учет оригиналов первичных документов»
В типовых конфигурациях встроен мощный и готовый механизм контроля оригиналов. Посмотрим на его преимущества:
Использование механизма «Дополнительные сведения»
Если штатная подсистема учета оригиналов по каким-то причинам вам не подходит, разберем альтернативный типовой путь — использование дополнительных сведений.
ДополнительныеСведения, их редактирование не меняет версию самого документа. Это полностью решает проблему закрытого периода.Мы подробно разобрали задачу и выяснили, что если вы разрабатываете конфигурацию с нуля, выбор между периодическим и непериодическим регистром зависит от требований к истории (для скорости вывода актуальных данных в списки лучше непериодический регистр). Однако, если вы работаете в современной конфигурации на управляемых формах, настоятельно рекомендуем задействовать готовые механизмы БСП — подсистему учета оригиналов или дополнительные сведения. Это сэкономит ваше время, обеспечит высокую производительность и избавит от необходимости писать дополнительный код для работы с закрытым периодом.