Что делать, если при обновлении 1С возникает ошибка «Не может быть изменен владелец у справочника»?

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

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

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

Способ 1. Использование штатной обработки «Групповое изменение реквизитов»

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

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

После выполнения этих действий вернемся в Конфигуратор и повторно запустим обновление (клавиша F7). В большинстве случаев проблема будет решена.

Способ 2. Тестирование и исправление информационной базы (ТиИ)

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

Проанализируем необходимые настройки в меню Администрирование — Тестирование и исправление:

Важно: Перед выполнением ТиИ обязательно создайте резервную копию базы данных, так как этот процесс изменяет структуру данных безвозвратно.

Способ 3. Поиск записей через консоль запросов

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


ВЫБРАТЬ
    БанковскиеСчета.Ссылка КАК Ссылка,
    БанковскиеСчета.Владелец КАК Владелец
ИЗ
    Справочник.БанковскиеСчета КАК БанковскиеСчета
ГДЕ
    (БанковскиеСчета.Владелец.Ссылка ЕСТЬ NULL
        ИЛИ БанковскиеСчета.Владелец = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка))

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


Выборка = Справочники.БанковскиеСчета.Выбрать();
Пока Выборка.Следующий() Цикл
    Объект = Выборка.ПолучитьОбъект();
    Если Объект.Владелец.Пустая() Тогда
        Объект.УстановитьПометкуУдаления(Истина);
        Объект.Записать();
    КонецЕсли;
КонецЦикла;

Способ 4. Специфика справочника «Формы статистики» и регламентированных отчетов

Если ошибка возникает при переходе с отраслевых решений (например, «Подрядчик строительства» или «ЖКХ») на типовую БП 3.0, проблема часто локализуется в справочнике ФормыСтатистики. Рассмотрим алгоритм действий для этого случая:

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

  1. В режиме «1С:Предприятие» найдем справочник РегламентированныеОтчеты.
  2. Пометим на удаление и удалим все элементы (включая формы статистики).
  3. После обновления платформы эти справочники автоматически перезаполнятся из классификаторов нового релиза.

Также проанализируем возможные ошибки уникальности записей в регистрах сведений, которые могут возникнуть следом. Если система сообщает, что «Записи регистра стали неуникальными», нам придется очистить соответствующие регистры. Чаще всего это касается следующих объектов:

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

Способ 5. Радикальный метод через временное изменение метаданных

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

  1. Снимем конфигурацию с поддержки (или включим возможность изменения).
  2. Найдем проблемный справочник (например, БанковскиеСчета).
  3. В свойствах справочника перейдем на вкладку Владельцы и временно удалим всех назначенных владельцев.
  4. Применим изменения в базе данных (клавиша F7). Это заставит платформу «забыть» о связях и пропустить проверку.
  5. После успешного применения изменений вернем владельцев обратно, выбрав их из списка (уже с учетом новых типов из релиза).
  6. Снова нажмем F7.
  7. Вернем базу на поддержку, загрузив типовой .cf файл конфигурации.

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

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

← На главную