При обновлении типовых конфигураций 1С:Предприятие (чаще всего 1С:Бухгалтерия предприятия 3.0 или БП КОРП) пользователи часто сталкиваются с системной ошибкой: «Не может быть изменен владелец у справочника». Обычно это происходит на этапе реструктуризации базы данных, когда платформа пытается применить изменения метаданных, заложенные в новом релизе. Наиболее часто проблема затрагивает справочники БанковскиеСчета, ФормыСтатистики или ПараметрыТиповойОперации.
Рассмотрим природу этой проблемы. В новых релизах разработчики 1С часто расширяют функционал справочников, меняя тип реквизита Владелец. Например, если раньше владельцем банковского счета могла быть только Организация, то в обновлении тип может стать составным (добавляются Контрагенты или ФизическиеЛица). Если в вашей информационной базе есть хотя бы один элемент, у которого владелец не указан (пустая ссылка) или является «битой ссылкой» (объект удален, а запись осталась), платформа не может сопоставить данные и блокирует процесс обновления. Проанализируем основные способы решения этой ситуации.
Это самый безопасный и рекомендуемый метод, который подходит для большинства пользователей. Мы воспользуемся встроенным механизмом для поиска элементов с незаполненным владельцем. Разберем выполнение задачи по шагам:
Банковские счета).Владелец, вид сравнения — Равно, а значение оставим пустым.Владелец и выберем корректный объект (например, вашу основную организацию).После выполнения этих действий вернемся в Конфигуратор и повторно запустим обновление (клавиша F7). В большинстве случаев проблема будет решена.
Если групповое изменение не видит элементов, возможно, проблема кроется в нарушении логической целостности базы. Рассмотрим, как правильно настроить ТиИ для исправления ссылок:
Проанализируем необходимые настройки в меню Администрирование — Тестирование и исправление:
Важно: Перед выполнением ТиИ обязательно создайте резервную копию базы данных, так как этот процесс изменяет структуру данных безвозвратно.
Иногда записи с пустым владельцем не видны в списках из-за того, что они являются предопределенными или техническими. В такой ситуации нам поможет Консоль запросов. Рассмотрим пример запроса для поиска таких элементов:
ВЫБРАТЬ
БанковскиеСчета.Ссылка КАК Ссылка,
БанковскиеСчета.Владелец КАК Владелец
ИЗ
Справочник.БанковскиеСчета КАК БанковскиеСчета
ГДЕ
(БанковскиеСчета.Владелец.Ссылка ЕСТЬ NULL
ИЛИ БанковскиеСчета.Владелец = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка))
Если запрос вернул результат, значит, у этих элементов действительно повреждена связь с владельцем. Проанализируем ситуацию: если эти счета вам не нужны, их можно пометить на удаление программно:
Выборка = Справочники.БанковскиеСчета.Выбрать();
Пока Выборка.Следующий() Цикл
Объект = Выборка.ПолучитьОбъект();
Если Объект.Владелец.Пустая() Тогда
Объект.УстановитьПометкуУдаления(Истина);
Объект.Записать();
КонецЕсли;
КонецЦикла;
Если ошибка возникает при переходе с отраслевых решений (например, «Подрядчик строительства» или «ЖКХ») на типовую БП 3.0, проблема часто локализуется в справочнике ФормыСтатистики. Рассмотрим алгоритм действий для этого случая:
Выясним причину: в отраслевых решениях формы статистики могут быть привязаны к специфическим объектам, которые отсутствуют в типовой конфигурации. Решением может стать полная очистка регламентированной отчетности перед обновлением:
РегламентированныеОтчеты.Также проанализируем возможные ошибки уникальности записей в регистрах сведений, которые могут возникнуть следом. Если система сообщает, что «Записи регистра стали неуникальными», нам придется очистить соответствующие регистры. Чаще всего это касается следующих объектов:
ЖурналНовыхСобытийКлючиДоступаКОбъектамЦеныНоменклатурыДокументовРазмерВычетовНДФЛВторичныйОчистка данных регистров обычно безопасна, особенно когда выполняется очистка записей регистров по битым документам, так как они являются вспомогательными и перезаполняются при проведении документов или работе регламентных заданий.
В исключительных случаях, когда ни один метод не помогает, а обновление нужно завершить срочно, рассмотрим метод временной модификации справочника в Конфигураторе:
БанковскиеСчета).F7). Это заставит платформу «забыть» о связях и пропустить проверку.F7..cf файл конфигурации.Этот метод заставляет платформу принудительно пересчитать индексы таблиц и часто помогает «протолкнуть» обновление, которое зависает из-за внутренних ошибок реструктуризации.
Подводя итог, можно сказать, что ошибка «Не может быть изменен владелец» всегда связана с некорректными данными внутри справочников. Мы рассмотрели методы от самых простых (групповое изменение) до глубоких технических манипуляций. Всегда начинайте с анализа данных через запросы и только потом переходите к изменению конфигурации.