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