Как исправить ошибку «Метод объекта не обнаружен (РолиРедактированияДанных)» при обновлении 1С:Бухгалтерии 3.0?

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

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

{ОбщийМодуль.УправлениеДоступомБП.Модуль(683)}: Метод объекта не обнаружен (РолиРедактированияДанных)

Разберем подробнее, почему возникает данный сбой в механизмах Библиотеки стандартных подсистем (БСП) и какими путями можно восстановить работоспособность информационной базы.

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

Выясним причину такого поведения платформы и конфигурации:

  1. При обновлении только структуры метаданных в конфигураторе регистр сведений ВерсииПодсистем в базе данных сохраняет номер начального релиза (например, 3.0.42).
  2. При первом запуске пользовательского сеанса БСП считывает текущую версию данных и запускает непрерывную цепочку отложенных и обязательных процедур обновления данных за все пропущенные релизы по очереди.
  3. Процедуры обновления, написанные разработчиками для старых релизов, обращаются к методам общих модулей, которые в финальном релизе конфигурации (например, 3.0.46) уже были удалены, переименованы или перенесены в другие модули подсистемы зарплаты и кадров.
  4. Так как программный код модулей уже соответствует финальному релизу, обращение к методу УчетЗарплаты.РолиРедактированияДанных() вызывает исключение «Метод объекта не обнаружен».

Способ 1. Быстрое устранение через функцию-заглушку (без отката базы)

Если обновление уже выполнено, а времени на повторную пошаговую установку релизов нет, применим быстрое решение с созданием временной заглушки в коде:

  1. Откроем информационную базу в режиме Конфигуратор.
  2. В меню Конфигурация перейдем в Поддержка → Настройка поддержки и включим возможность изменения конфигурации с сохранением поддержки (если база была на полной поддержке).
  3. Найдем общий модуль УчетЗарплаты и добавим в его конец экспортную функцию-заглушку:

Функция РолиРедактированияДанных() Экспорт
    Возврат Новый Массив;
КонецФункции
  1. Сохраним конфигурацию и применим изменения структуры базы данных (клавиша F7).
  2. Запустим режим 1С:Предприятие. Процедура обновления данных успешно пройдет проблемный участок и дойдет до 100%.
  3. После завершения всех процедур обновления вернем конфигурацию на полную типовую поддержку. Для этого в режиме конфигуратора выполним операцию Конфигурация → Поддержка → Обновить конфигурацию (или сравнение/объединение с исходным типовым файлом поставки .cf актуального релиза) и снимем признак редактирования, вернув замок.

Способ 2. Восстановление копии и пошаговое обновление с запуском предприятия

Рассмотрим правильный регламент перехода через так называемые «узловые» релизы:

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

Способ 3. Диагностика обработчиков обновления и очистка кэша

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

  1. Очистка временных файлов платформы. Удалим кэш конфигурации и пользователя в системных каталогах %LOCALAPPDATA%\1C\1Cv8 и %APPDATA%\1C\1Cv8 либо перерегистрируем базу в списке запуска 1С.
  2. Контроль через Журнал регистрации. Запустим базу из командной строки с параметром /C ЗапуститьОбновлениеИнформационнойБазы. В случае ошибки откроем Журнал регистрации и найдем событие обновления БСП, чтобы узнать точное имя упавшего обработчика.
  3. Тестирование и исправление. В меню Администрирование → Тестирование и исправление... выполним пункты:
    • Реструктуризация таблиц информационной базы;
    • Проверка логической целостности;
    • Проверка ссылочной целостности.
  4. Выгрузка и загрузка через DT. Выполним выгрузку информационной базы в файл .dt и загрузим его в новую чистую базу для исключения повреждений внутренних таблиц.
← На главную