При обновлении типовой конфигурации 1С:Документооборот 8 КОРП, особенно начиная с редакции 2.1.12.2, специалисты часто сталкиваются с ситуацией, когда платформа не может автоматически сопоставить объекты метаданных. Даже если конфигурация находится на поддержке и изменения в нее не вносились, в окне сравнения и объединения может появиться дерево объектов, предлагающее удалить существующие таблицы и добавить новые с такими же именами. Это критическая ситуация, так как простое принятие предложенных изменений приведет к безвозвратной потере данных в этих таблицах.
В этой статье мы подробно разберем причины возникновения такой проблемы, проанализируем механизмы работы платформы с идентификаторами и рассмотрим несколько способов восстановления корректной связи между основной конфигурацией и конфигурацией поставщика.
Прежде всего, выясним причину такого поведения системы. Для платформы «1С:Предприятие» имя объекта (например, РегистрСведений.ОчередьОбновленияПрав) является лишь «человекочитаемым» представлением. Внутри базы данных каждый объект жестко привязан к уникальному внутреннему идентификатору — UUID (или GUID).
Рассинхронизация этих идентификаторов обычно происходит в следующих случаях:
Если UUID объекта в вашей основной конфигурации не совпадает с UUID в файле обновления, платформа считает их разными объектами. Именно поэтому она предлагает удалить «старый» регистр и создать «новый».
Проанализируем самый простой, но требующий внимательности метод. Если при попытке обновления вы видите таблицу с расхождениями, где объекты помечены как «удаляемые» в основной конфигурации и «добавляемые» из конфигурации поставщика, попробуйте выполнить сопоставление вручную.
Для этого выполним следующие действия:
Если платформа позволяет это сделать (объекты имеют совместимые типы), связь будет восстановлена на время текущего объединения. Однако этот метод не всегда исправляет проблему UUID «навсегда» и может потребовать повторения при следующем обновлении.
Если ручное сопоставление не помогает или объектов слишком много, рассмотрим более радикальный, но эффективный метод «лечения» поддержки. Важно: выполняйте все действия только на копии базы данных! Для автоматизации создания резервных копий и подготовки тестовых сред удобно использовать программу для автоматического архивирования и обновления баз 1С.
Алгоритм действий следующий:
custom.cf.custom.cf, чтобы вернуть внесенные ранее доработки, если они были.Разберем ситуацию, когда пользователь пытается обновиться сразу через несколько версий, например, с 2.1.12.2 сразу на 2.1.25.5. Как отмечалось в обсуждении, такой «скачок» часто приводит к потере цепочки идентификаторов.
Рекомендуется придерживаться строгой последовательности:
Update.htm (идет в комплекте с обновлением), какие релизы являются минимально необходимыми для перехода.Иногда проблема кроется не в самих данных, а в «фантомных» записях в системных таблицах базы данных. Рассмотрим технические приемы очистки:
1. Очистка кэша конфигуратора. Платформа может кэшировать структуру конфигурации поставщика. Рекомендуется запустить конфигуратор с параметром:
/ClearConfigCache
2. Проверка таблицы Config. В клиент-серверном варианте можно проанализировать таблицу Config (или ConfigSave). В ней хранятся записи конфигурации поставщика. Если там остались следы от «битых» обновлений, это будет мешать нормальной работе. Одним из признаков является наличие нескольких записей с типом vrs_storage.
3. Использование справочника «Идентификаторы объектов метаданных». После любого сложного обновления в «1С:Документообороте» обязательно нужно убедиться, что внутренние данные программы синхронизированы с метаданными. Запустите базу с параметром:
ЗапуститьОбновлениеИнформационнойБазы
Это инициирует выполнение процедур БСП, которые пересчитают идентификаторы в справочнике Идентификаторы объектов метаданных.
Проанализируем конкретный пример из практики. В релизах линейки 2.1.24 и выше некоторые регистры (например, связанные с правами) могли быть принципиально изменены. Если вы видите, что при обновлении платформа хочет удалить старый регистр и добавить новый, проверьте его состав.
Если в новом объекте поставщика изменились типы измерений или состав ресурсов, автоматическое сопоставление может быть невозможно. в этом случае:
Таким образом, проблема «невидимых» расхождений при обновлении 1С:Документооборот чаще всего решается либо принудительным ручным сопоставлением в окне сравнения, либо процедурой полной перезагрузки конфигурации поставщика соответствующего релиза для восстановления целостности UUID.