Как правильно обновить 1С:ERP при возникновении ошибок ссылок на удаляемые объекты и предупреждений о потере данных

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

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

Разбираем причину ошибки «На удаляемый объект есть ссылки в объектах основной конфигурации»

Ситуация, когда при обновлении конфигурации 1С выдает сообщение о наличии ссылок на удаляемые объекты, является типичной для баз, снятых с поддержки (находящихся на редактировании). Проанализируем, почему это происходит. Фирма «1С» в новых релизах часто оптимизирует структуру метаданных. Объекты, которые признаны устаревшими, сначала получают префикс Удалить, а спустя несколько релизов полностью вырезаются из конфигурации поставщика.

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

  1. Поиск места использования. Прежде всего, нам необходимо выяснить, какой именно ваш «самописный» объект держит ссылку. Для этого в Конфигураторе воспользуемся глобальным поиском (сочетание клавиш Ctrl+Shift+F). В поле поиска введем имя объекта, на который жалуется система.
  2. Анализ необходимости. Если ссылка найдена в коде, который помечен разработчиком как «устарел», нам нужно переписать этот участок кода под новые механизмы 1С:ERP. Например, если объект удаляется, значит, взамен него предложен другой регистр или справочник.
  3. Проверка подписок на события. Очень часто «невидимые» ссылки прячутся в объектах типа ПодпискиНаСобытия. Если ваша подписка привязана к типовому документу, который в новом релизе был удален или заменен, вам нужно либо перенастроить подписку на новый объект, либо удалить ее, если логика больше не требуется.

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

Проблема автоматического объединения: почему кнопка «Пометить все для обновления» опасна

Рассмотрим ситуацию, когда при объединении конфигураций программист нажимает кнопку «Пометить все для обновления». На первый взгляд это кажется удобным, но для доработанной базы это действие может стать фатальным. Разберем риски:

  1. Затирание кастомизации. Установка всех галочек означает, что вы принудительно заменяете все свои доработки (измененные формы, модули, макеты) кодом из нового типового релиза. Весь ваш труд по адаптации системы под нужды бизнеса будет потерян.
  2. Потеря данных в измерениях. Если система выдает предупреждение о «потере данных в измерениях или реквизитах», это означает, что структура хранения в базе данных меняется. Принудительное объединение без анализа может привести к тому, что исторические данные в регистрах просто обнулятся, так как 1С не сможет сопоставить старые поля с новыми.

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

Методика проверки базы после завершения обновления

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

Выполнение отложенных обработчиков обновления

В современных версиях 1С:ERP основной объем данных реструктуризируется в пользовательском режиме. Перейдем в раздел НСИ и администрирование — Обслуживание — Обновление программы — Результаты обновления. Пока статус всех процедур не примет значение «Выполнено», работа пользователей в базе категорически запрещена. В этот момент система может переносить данные из старых регистров в новые, пересчитывать остатки или обновлять права доступа.

Синтаксический контроль и проверка конфигурации

Обязательно запустим в Конфигураторе встроенную проверку: Конфигурация — Проверка конфигурации. Установим галочки «Проверка логической целостности» и «Поиск некорректных ссылок». Это поможет выявить ситуации, когда код ссылается на методы или объекты, которые были удалены, но не были замечены на этапе объединения.

Пример типичной ошибки в коде, которую нужно искать:


// Ошибка: обращение к удаленному объекту
Попытка
    Результат = ОбщегоНазначения.УдалитьМетодКоторыйБольшеНеСуществует();
Исключение
    ЗаписьЖурналаРегистрации("Ошибка обновления", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
КонецПопытки;

Такие фрагменты необходимо заменять на вызовы актуальных методов из новых библиотек общего назначения (БСП).

Журнал регистрации и пользовательское тестирование

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

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

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

← На главную