Как исправить ошибку "На удаляемый объект есть ссылки" при переходе с 1С:Бухгалтерия 2.0 на 3.0?

Программист 1С v8.3 (Обычные формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

Переход с редакции 1С:Бухгалтерия 2.0 на 3.0 — это серьезный и масштабный процесс, который затрагивает практически всю архитектуру базы данных — для этой задачи есть обработка переноса данных БП 2.0 в 3.0. Довольно часто при попытке накатить специальный дистрибутив для перехода (например, релиз 3.0.109.61 на базу 2.0.67.25) программисты сталкиваются с огромным списком ошибок в Конфигураторе.

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

На удаляемый объект Константа.КонтекстАвторизации есть ссылки в объектах основной конфигурации: Подсистема.ЭлектронноеВзаимодействие...
На удаляемый объект ОбщаяФорма.НастройкаКриптографии есть ссылки...
На удаляемый объект Справочник.СоглашенияОбИспользованииЭД... есть ссылки...

Проанализируем, почему это происходит и как правильно, безопасно и эффективно перевести базу на редакцию 3.0.

Причина возникновения ошибок

Состав описываемых ошибок указывает на то, что проблемы возникают с новыми и вспомогательными данными (подсистемы электронного документооборота, криптографии, сертификаты и т.д.) — для их исправления подойдёт диагностика регистров и исправление битых ссылок. Поскольку база ранее находилась в режиме "Разрешены изменения с сохранением поддержки", внутренние идентификаторы некоторых объектов или их связи могли зафиксироваться платформой как пользовательские доработки.

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

Основное решение: возврат конфигурации "под замок"

Рассмотрим самый надежный метод решения этой проблемы для баз с незначительными доработками. Основная идея заключается в том, чтобы перед обновлением полностью вернуть конфигурацию 2.0 к типовому состоянию (сделать её полностью идентичной конфигурации поставщика).

  1. Создание резервной копии. Обязательно сделаем бэкап текущей базы перед началом любых манипуляций. Это критически важный шаг.
  2. Выгрузка текущей конфигурации. Если в базе есть нужные доработки (те самые "косметические" изменения), выгрузим текущую конфигурацию в файл .cf. Позже мы используем его для возврата наших изменений.
  3. Возврат на поддержку. Откроем Конфигуратор рабочей базы версии 2.0. Наша задача — восстановить полностью текущую конфигурацию на конфигурацию поставщика. Накатим на базу полностью типовую конфигурацию от поставщика загрузкой из типового файла .cf (того же релиза 2.0.67.25, который установлен сейчас).
  4. Обновление конфигурации БД. Применим изменения (клавиша F7). Теперь наша конфигурация снова полностью типовая и находится "под замком".
  5. Выполнение перехода на 3.0. Только после того, как база стала полностью типовой, запустим процесс обновления, используя специальный дистрибутив для перехода на редакцию 3.0. Обновление должно пройти гладко, без появления ошибок об удаляемых объектах.
  6. Возврат доработок. После успешного обновления и первого запуска в режиме Предприятия, вернемся в Конфигуратор, снова включим возможность изменений (снимем "с замка") и перенесем наши доработки, адаптировав их под управляемые формы редакции 3.0.

Альтернативное решение: точечное отключение объектов в окне сравнения

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

В момент проведения обновления, когда открывается окно сравнения и объединения конфигураций, 1С предлагает список объектов, которые будут изменены, добавлены или удалены. Нам необходимо вручную снять галочки с тех объектов, на которые ругается система в предупреждениях "На удаляемый объект есть ссылки..." — это удобнее через обработка анализа дерева ссылок и очистки базы.

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

Важные нюансы и подготовка к переходу на 3.0

Переход на 3.0 — это масштабная реструктуризация. Рассмотрим дополнительные шаги, которые обеспечат стабильное и успешное обновление.

  1. Использование специального дистрибутива. Для перехода нельзя использовать обычные файлы обновлений 1cv8.cfu для текущих релизов. На портале 1С необходимо скачивать именно специальный "Дистрибутив обновления для перехода с редакции 2.0". Если при выборе файла обновления система выдает нелогичные ошибки с требованием несуществующих релизов, скорее всего, скачанный файл поврежден или есть проблема с кэшем платформы (в этом случае кэш необходимо очистить).
  2. Требования к аппаратным ресурсам. Обновление на 3.0 требует значительного объема оперативной памяти. Зачастую зависания Конфигуратора или сбои с нехваткой памяти происходят именно на этапе реструктуризации. Для объемных баз выполняйте этот процесс на максимально мощном компьютере или выделенном сервере.
  3. Отключение фоновых заданий. Перед тем как начать процесс накатывания обновления 3.0 в исходной базе 2.0, настоятельно рекомендуется отключить выполнение всех регламентных и фоновых заданий. В клиент-серверном варианте базы это делается через консоль кластера серверов (в свойствах информационной базы установите флажок Блокировка регламентных заданий включена). В файловой базе воспользуйтесь встроенной обработкой или консолью заданий. Для этого есть инструмент для автоматического управления сеансами и заданиями. Это предотвратит случайные блокировки таблиц системой во время реструктуризации.
  4. Изменения в правах пользователей. Механизм управления пользователями и ролями в редакции 3.0 кардинально отличается от 2.0. Будьте готовы к тому, что даже если обновление в Конфигураторе завершится успешно, при первом запуске в режиме "1С:Предприятие" система может не пустить старых пользователей. Обычно 1С предлагает заново создать пользователя с профилем "Администратор". Остальным сотрудникам права (профили групп доступа) придется переназначать заново в соответствии с логикой БСП, используемой в 3-й редакции.

Методология перехода для сильно доработанных баз

Если в вашей базе 1С:Бухгалтерия 2.0 изменения не ограничиваются косметическими правками, а содержат сложную бизнес-логику, переписанные документы и регистры, проанализируем профессиональный алгоритм перехода:

  1. Создаем две копии рабочей базы.
  2. В первой копии сравниваем текущую базу с типовой конфигурацией поставщика. Тщательно документируем все нетиповые изменения кода, реквизитов и структур данных.
  3. Во второй копии выполняем жесткий возврат к типовой конфигурации (как описано в Основном решении выше) и проводим накат типового обновления для перехода на 3.0.
  4. Затем программист берет задокументированные изменения из первой базы и вручную переносит их в обновленную вторую базу, переписывая код под управляемое приложение, тонкий клиент и актуальные стандарты разработки 1С.

Следуя этим рекомендациям и правильно подготовив базу перед обновлением, вы сможете избежать ошибок удаления объектов со ссылками и обеспечите надежный переход на современную редакцию 1С:Бухгалтерии 3.0.

← На главную