В современных конфигурациях 1С, таких как 1С:Комплексная автоматизация 2 (КА) и 1С:ERP Управление предприятием, работа журналов документов (например, журналы продаж, закупок или складских актов) строится на использовании специального технического регистра — РеестрДокументов. Этот регистр аккумулирует в себе ключевые данные из множества различных типов документов: дату, номер, сумму, валюту, контрагента и статус. Это позволяет системе мгновенно отображать списки без необходимости обращения к тяжелым таблицам самих документов.
Однако иногда возникает ситуация, когда данные в журнале «расходятся» с данными в самом документе (например, после некорректного обмена или группового изменения реквизитов). В этом случае требуется полное или частичное перезаполнение реестра. Рассмотрим подробно, как это сделать штатными и программными средствами.
Самый простой и доступный способ для пользователя или администратора — воспользоваться встроенным инструментом системы. Рассмотрим, как найти и запустить эту обработку, если она не выведена в основной интерфейс.
Проанализируем стандартный путь через интерфейс «Функции для технического специалиста» (в старых версиях — «Все функции»):
Исправление реестра документов.Разберем ситуацию, когда поиск не дает результатов. В некоторых релизах КА 2.4 или 2.5 обработка может быть скрыта из общего списка. В этом случае мы можем воспользоваться механизмом перехода по ссылке. Для этого выполним следующие действия:
e1cib/app/Обработка.ИсправлениеРеестраДокументов.После запуска обработки система предложит проанализировать состояние реестра и выполнить его заполнение. Стоит учитывать, что на больших базах этот процесс может занять значительное время, поэтому рекомендуется запускать его в периоды минимальной активности пользователей.
Если нам требуется более гибкий контроль или автоматизация процесса (например, обновление только за определенный период или по конкретному типу документа), целесообразно обратиться к программным методам. Рассмотрим структуру метаданных конфигурации. В менеджере регистра сведений РеестрДокументов заложена мощная логика для актуализации записей.
Основным методом является процедура ОтразитьДанныеДокументовВРеестре(). Выясним, как ее использовать в коде. Данная процедура принимает массив ссылок на документы или описание видов документов и выполняет пересчет записей в реестре.
Посмотрим на пример кода, который можно запустить во внешней обработке или через консоль кода для принудительного обновления данных по конкретному типу документа:
// Определим массив типов документов, которые нужно актуализировать
МассивТипов = Новый Массив;
МассивТипов.Добавить(Тип("ДокументСсылка.РеализацияТоваровУслуг"));
МассивТипов.Добавить(Тип("ДокументСсылка.ПриобретениеТоваровУслуг"));
// Вызываем штатный метод менеджера регистра
РегистрыСведений.РеестрДокументов.ОтразитьДанныеДокументовВРеестре(МассивТипов);
Рассмотрим подробнее, что происходит «под капотом». Система берет данные из документов указанных типов и сопоставляет их с текущим состоянием регистра РеестрДокументов. Если обнаруживаются расхождения или отсутствие записей, система вносит корректировки. Это значительно безопаснее, чем ручная очистка регистра, так как сохраняется целостность ссылочных связей.
Проанализируем механизмы автоматического поддержания порядка в реестре. В типовых решениях предусмотрено регламентное задание «Заполнение реестра документов». Если вы заметили, что журналы постоянно отображают неактуальную информацию, в первую очередь проверьте состояние этого задания:
Заполнение реестра документов.Если задание завершается с ошибкой, это может быть сигналом о наличии «битых» ссылок в базе или блокировках таблиц. В таком случае запуск ручной обработки «Исправление реестра документов» поможет выявить проблемные объекты. Для прямого просмотра и точечной правки записей при анализе сбоев можно использовать обработку для корректировки записей регистра сведений.
Выясним важную техническую деталь: начиная с некоторых релизов версии 2.4.7 и выше, процедура обновления реестра встроена в механизмы универсального обмена данными. Это означает, что при загрузке документов через Enterprise Data или другие механизмы обмена, система автоматически пытается обновить реестр.
Важно: На больших объемах данных это может приводить к существенным задержкам при синхронизации. Если обмен данными идет медленно, стоит проверить, не тратит ли система основное время на перепроверку всего реестра. В некоторых случаях разработчики временно отключают этот механизм в коде обмена, чтобы выполнить массовую загрузку, а затем запускают полное перестроение реестра в ночное время через вышеупомянутую обработку.
Рассмотрим ситуацию, когда администратор решает полностью очистить регистр РеестрДокументов (например, через запрос или «Удаление объектов»), надеясь, что система заполнит его автоматически. Это крайне рискованный шаг!
Поскольку все современные журналы документов в 1С:КА и ERP используют динамические списки, настроенные на этот регистр, его очистка приведет к тому, что все списки документов (продажи, закупки и т.д.) станут абсолютно пустыми. Хотя сами документы физически останутся в базе, работать с ними через стандартный интерфейс станет невозможно до полного окончания процесса восстановления реестра. Поэтому всегда используйте только штатную обработку Исправление реестра документов, которая умеет работать итерационно и не блокирует чтение данных для пользователей.
Подводя итог, отметим, что правильная работа с регистром РеестрДокументов — это залог быстрого интерфейса и актуальности данных в глазах пользователя. Используйте комбинацию регламентных заданий для повседневной работы и штатную обработку для устранения разовых сбоев.