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

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

Переход с редакции 2.0 на 3.0 для конфигурации «1С:Бухгалтерия предприятия» — это не просто очередное обновление, а полноценная смена архитектурной платформы решения. Главное отличие заключается в полном отказе от обычных форм в пользу управляемого приложения. Именно этот технологический разрыв чаще всего становится причиной ошибок в базах данных, которые ранее подвергались доработкам и находились в состоянии «Объект поставщика редактируется с сохранением поддержки».

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

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

Проанализируем механику процесса обновления. В дистрибутиве «1С:Бухгалтерия предприятия 3.0» старые обычные формы и интерфейсы полностью отсутствуют — разработчики фирмы «1С» удалили их из конфигурации поставщика за ненадобностью. Однако, если ваша база 2.0 была изменена пользователем, Конфигуратор фиксирует наличие пользовательских правок в этих объектах. При попытке стандартного наката обновления система пытается сопоставить объекты основной конфигурации и новой конфигурации поставщика. Видя, что в поставке объекта нет, а в вашей базе он помечен как измененный, система блокирует его автоматическое удаление, чтобы не потерять ваши данные. В результате процесс прерывается критической ошибкой.

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

Способ 1. Настройка параметров сравнения и объединения конфигураций

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

  1. Запустите информационную базу в режиме Конфигуратор.
  2. Обязательно сделайте резервную копию (выгрузку базы .dt) перед началом любых манипуляций.
  3. Перейдите в меню Конфигурация — Поддержка — Обновить конфигурацию.
  4. Выберите файл обновления (или настройте поиск в каталогах) и дойдите до этапа открытия окна сравнения и объединения конфигураций.
  5. В верхней панели окна сравнения перейдите в меню Действия — Параметры.
  6. В открывшемся окне настроек найдите и установите флажок «Разрешить удаление объектов основной конфигурации».
  7. После установки этого флага система позволит корректно сопоставить отсутствующие в новой версии объекты и безболезненно удалить старые обычные формы.

После завершения сравнения и объединения запустите процесс обновления базы данных (клавиша F7).

Способ 2. Сброс до типовой конфигурации через загрузку файла .cf

Этот метод является наиболее надежным и рекомендуемым в среде профессиональных разработчиков 1С. Поскольку весь старый код обычных форм редакции 2.0 в редакции 3.0 все равно работать не будет (его придется переписывать под управляемые формы с нуля), наиболее разумно — полностью очистить конфигурацию от доработок перед обновлением, обновиться на «чистую» 3.0, а затем перенести доработки современными методами.

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

Рассмотрим алгоритм сброса конфигурации на поддержку по шагам:

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

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


&НаКлиенте
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    // Наш доработанный код, который отработает после типового события формы
    Сообщить("Форма успешно модифицирована через расширение!");
КонецПроцедуры

Использование расширений позволит вам в дальнейшем без проблем обновлять БП 3.0 в полностью автоматическом режиме.

Важные нюансы, о которых нельзя забывать при переходе

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

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

2. Проблема нехватки оперативной памяти. Обновление БП с 2.0 на 3.0 — ресурсоемкий процесс. На 32-битных клиентах платформы вы практически гарантированно столкнетесь с ошибкой Out of memory (недостаточно памяти). Чтобы избежать этого, выполняйте процедуру перехода исключительно на 64-разрядной версии платформы 1С:Предприятие с объемом оперативной памяти на компьютере не менее 8–16 Гб.

3. Проверка транзитных релизов. Помните, что обновиться напрямую с любого старого релиза 2.0 на актуальный релиз 3.0 невозможно. Обязательно сверяйтесь с официальной таблицей совместимости релизов фирмы «1С». Возможно, вам придется сначала обновить конфигурацию 2.0 до определенного промежуточного «моста» (например, до финального релиза ветки 2.0), и только с него запускать обновление на совместимую стартовую версию 3.0.

4. Предварительное тестирование. Перед обновлением обязательно запустите процедуру Тестирование и исправление (меню Администрирование — Тестирование и исправление...) со следующими включенными опциями:

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

← На главную