Как устранить дублирование ссылок на файлы в связях документов в 1С:Документооборот?

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

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

Рассмотрим структуру хранения информации о взаимосвязях в системе. Все привязки между документами и файлами фиксируются в специализированном регистре сведений СвязиДокументов. Ошибочное задвоение записей может быть вызвано нарушением целостности индексов СУБД, сбоями транзакций при взаимной привязке объектов или ошибками динамических списков платформы.

Шаг 1. Диагностика записей в регистре сведений

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

Для проверки выполним следующие действия:

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

Посмотрим на пример текста диагностического запроса:


ВЫБРАТЬ
    Связи.Документ КАК Документ,
    Связи.СвязанныйДокумент КАК СвязанныйДокумент,
    Связи.СвязанныйФайл КАК СвязанныйФайл,
    Связи.ТипСвязи КАК ТипСвязи,
    КОЛИЧЕСТВО(*) КАК КоличествоЗаписей
ИЗ
    РегистрСведений.СвязиДокументов КАК Связи
СГРУППИРОВАТЬ ПО
    Связи.Документ,
    Связи.СвязанныйДокумент,
    Связи.СвязанныйФайл,
    Связи.ТипСвязи
ИМЕЮЩИХ
    КОЛИЧЕСТВО(*) > 1

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

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

Разберем процедуру по шагам:

  1. Обязательно создадим резервную копию информационной базы через выгрузку в .dt или средствами СУБД.
  2. Запустим Конфигуратор и перейдем в главное меню: Администрирование → Тестирование и исправление...
  3. В открывшемся окне установим ключевые флаги:
    1. Реиндексация таблиц информационной базы — восстанавливает поврежденные индексы, устраняя фантомные дубли в выборках;
    2. Проверка логической целостности информационной базы — проверяет корректность связей между объектами;
    3. Проверка ссылочной целостности информационной базы — исправляет некорректные ссылки на удаленные элементы.
  4. В параметрах при наличии ссылок на несуществующие объекты выберем Очищать ссылки, а при частичной потере данных — Создавать объекты.
  5. Нажмем кнопку Выполнить и дождемся завершения служебного протокола в окне сообщений.

Шаг 3. Очистка кэша и обновление статистик

Если после исправления структуры таблиц в клиент-серверном режиме дублирование визуально сохраняется, рассмотрим влияние кэширования представлений платформы 1С:Предприятие 8.3:

  1. Очистим локальный кэш пользователя: завершим работу всех сеансов 1С и удалим содержимое каталогов временных файлов %LOCALAPPDATA%\1C\1cv8\ и %APPDATA%\1C\1cv8\ на рабочих станциях.
  2. Обновим статистику и индексы на стороне СУБД: если база работает под управлением MS SQL Server или PostgreSQL, выполним плановое обслуживание таблиц (для MS SQL Server — процедуры sp_updatestats и Rebuild Index).
  3. Перезапустим кластер серверов 1С: перезапустим службу 1C:Enterprise Server Agent для сброса серверного кэша метаданных и сеансовых данных.

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

← На главную