Как исправить задвоение строк в журнале документов УТ 11 после обновления

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При работе в современных конфигурациях на платформе 1С:Предприятие 8.3, таких как «Управление торговлей 11», «Комплексная автоматизация 2» или «ERP Управление предприятием», пользователи часто сталкиваются с неприятной визуальной ошибкой: один и тот же документ (например, «Приобретение товаров и услуг» или «Заказ клиента») отображается в списке (журнале) несколькими одинаковыми строками. При этом, если зайти в движения документа, никаких дублей нет — суммы, количество и остатки по регистрам накопления верны. Проблема носит исключительно визуальный характер на уровне динамического списка, но она сильно затрудняет работу пользователей.

В этой статье мы подробно разберем, почему возникает такая ситуация и как привести списки документов в порядок, используя стандартные и административные инструменты.

Выясним причину: почему динамический список «двоит» записи

Для начала проанализируем архитектуру системы. В конфигурациях на базе УТ 11 для ускорения отображения больших списков документов используется специальный вспомогательный механизм — Реестр документов. Вместо того чтобы каждый раз обращаться к тяжелым таблицам самих документов, динамический список читает данные из подготовленного регистра сведений РеестрДокументов.

Рассмотрим основные причины появления дублей:

  1. Дубли в справочнике ключей: Каждая запись в реестре привязана к определенному ключу из справочника КлючиРеестраДокументов. Если при обновлении или в результате технического сбоя в этом справочнике создались две идентичные записи для одной организации и типа документа, система выведет строку дважды.
  2. Дополнительные сведения: Если к документу привязано несколько дополнительных реквизитов (характеристик), и в настройках динамического списка не стоит условие уникальности, запрос может выдать «декартово произведение» — по одной строке на каждое заполненное свойство.
  3. Ошибки фонового заполнения: Наполнение реестра происходит в фоновом режиме регламентными заданиями. Прерывание обновления или аварийная остановка сервера 1С могут привести к тому, что старые записи не были удалены, а новые — добавились поверх.

Способ 1. Сброс настроек формы и списка

Прежде чем приступать к манипуляциям с данными, рассмотрим самый простой вариант. Иногда проблема кроется не в базе данных, а в некорректно сохраненных пользовательских настройках, которые «закешировались» и конфликтуют с новым кодом после обновления.

Выполним следующие шаги:

  1. Откроем проблемный журнал документов.
  2. Перейдем в меню «Ещё» — «Установить стандартные настройки».
  3. Если это не помогло, перейдем в «Ещё» — «Изменить форму», в открывшемся окне нажмем «Ещё» — «Установить стандартные настройки».

Если после этого документ все равно отображается двумя или более строками, значит, проблема в данных реестра.

Способ 2. Очистка и удаление дублей в справочнике «Ключи реестра документов»

Как показывает практика, это самый действенный метод. В системе существует справочник КлючиРеестраДокументов, который хранит уникальные комбинации параметров для отображения в списках. Если там появились дубликаты, динамический список неизбежно будет показывать лишние строки.

Разберем алгоритм исправления:

  1. Воспользуемся стандартной обработкой «Поиск и удаление дублей» (находится в разделе «Администрирование — Обслуживание — Корректировка данных»).
  2. В поле «Искать в:» выберем справочник Ключи реестра документов.
  3. В критериях поиска укажем сравнение по всем доступным полям (Организация, Тип документа, Дата и т.д.).
  4. Нажмем «Найти дубли».
  5. Если система нашла повторяющиеся ключи, выберем правильный (обычно самый ранний или тот, на который больше ссылок) и нажмем «Удалить дубли».

Важный момент: При объединении ключей система автоматически перепривяжет записи в регистре сведений РеестрДокументов к одному правильному ключу, и лишние строки исчезнут сами собой.

Способ 3. Перестроение реестра документов через фоновые задания

Если ручное удаление ключей кажется слишком трудоемким или дублей слишком много, проанализируем состояние процесса обновления. В 1С есть встроенные процедуры, которые отвечают за актуальность реестра.

Рассмотрим, как запустить обновление принудительно:

  1. Зайдем в раздел «Администрирование» — «Обслуживание» — «Результаты обновления программы».
  2. Проверим ссылку «Информационные панели» или «Все процедуры обновления». Если там есть незавершенные задачи, связанные с регистром документов, их необходимо дождаться или запустить вручную.
  3. Также можно воспользоваться регламентным заданием ЗаполнениеРеестраДокументов. Попробуйте отключить его и включить заново, либо выполнить немедленно через консоль регламентных заданий.

Способ 4. Исправление через программный код (для разработчиков)

В ситуациях, когда типовые инструменты не справляются, можно прибегнуть к вызову процедур из общего модуля. Рассмотрим пример кода, который можно запустить во внешней обработке для принудительного обновления записей реестра по конкретной ссылке или типу документа.

Проанализируем логику работы с общим модулем РеестрДокументов:


// Пример программного обновления реестра для конкретного документа
ДокументСсылка = ...; // Получаем ссылку на проблемный документ
МассивСсылок = Новый Массив;
МассивСсылок.Добавить(ДокументСсылка);

// Вызываем процедуру обновления из типового модуля
РеестрДокументов.ОбновитьДанныеОбъектов(МассивСсылок);

Этот метод заставляет систему пересчитать ключ для конкретного объекта и обновить запись в регистре РеестрДокументов, удаляя при этом «осиротевшие» или некорректные связи.

Способ 5. Тестирование и исправление информационной базы

Если проблема массовая и затрагивает все журналы, возможно, произошло нарушение ссылочной целостности или повреждение таблиц базы данных. В этом случае выполним стандартную процедуру «Тестирование и исправление» в конфигураторе.

Обязательно выберем следующие пункты:

Внимание: Перед выполнением данной операции необходимо обязательно создать резервную копию базы данных!

Резюме и рекомендации

Подводя итог, можно сказать, что «двоение» строк в УТ 11 — это в 90% случаев проблема рассинхронизации справочника КлючиРеестраДокументов и регистра РеестрДокументов.

Для быстрого решения рекомендуем придерживаться следующего плана:

  1. Проверить справочник Ключи реестра документов на наличие дублей.
  2. Воспользоваться обработкой Поиск и удаление дублей для их слияния.
  3. Если не помогло — полностью очистить регистр РеестрДокументов (через групповое изменение реквизитов или программно) и запустить регламентное задание по его заполнению.
  4. В крайнем случае — очистить серверный и локальный кэш, так как динамические списки очень чувствительны к кэшированию метаданных.

Следуя этим шагам, вы сможете вернуть журналам документов корректный вид и обеспечить комфортную работу пользователей в системе.

← На главную