При обновлении нетиповых или находящихся на частичной поддержке конфигураций 1С:Управление производственным предприятием (УПП) с релиза 1.3.86.3 на релиз 1.3.87.2 разработчики часто сталкиваются с ошибкой контроля ссылочной целостности: «Обнаружены ссылки на следующие объекты, помеченные на удаление: Регистры накопления НДСпоОСиНМА». Конфигуратор блокирует сохранение конфигурации базы данных, сообщая о наличии многочисленных зависимостей в метаданных.
Разберем подробнее, почему возникает данная ситуация, где именно остаются связи с удаляемым объектом и как правильно устранить эту коллизию без рутинной ручной правки каждого документа.
В рамках рефакторинга подсистемы учета налога на добавленную стоимость фирма «1С» полностью исключила регистр накопления НДСпоОСиНМА из типовой конфигурации. В эталонной конфигурации поставщика были одновременно удалены сам регистр и все движения по нему во всех типовых документах-регистраторах.
Однако, если ваша информационная база снята с полной поддержки (находится в режиме редактирования с сохранением поддержки), механизм сравнения и объединения конфигураций сохраняет пользовательские свойства доработанных объектов. В результате возникают следующие коллизии:
Документ.РеализацияТоваровУслуг), в которых ранее были включены доработки, сохраняют флаг движения по удаляемому регистру.Платформа «1С:Предприятие» не может физически удалить объект метаданных из структуры базы данных до тех пор, пока на него указывает хотя бы один другой объект конфигурации. Разберем по шагам, как быстро и корректно решить эту задачу.
Самый быстрый способ разорвать взаимные ссылки между регистром и документами до обновления — выполнить очистку непосредственно в исходной конфигурации. Подавляющее большинство ссылок формируется именно механизмом взаимной регистрации движений.
Выполним следующие действия:
.cf (или вернемся к конфигурации до применения обновления).Регистры накопления и откроем окно редактирования объекта НДСпоОСиНМА.F7.После того как документы перестанут быть регистраторами для регистра НДСпоОСиНМА, последующее обновление на релиз 1.3.87.2 пройдет без блокировки по регистраторам, так как взаимные ссылки метаданных будут разорваны.
Если мы уже находимся в процессе объединения с файлом поставщика, исправить ситуацию можно непосредственно в окне «Сравнение, объединение с конфигурацией». Проанализируем, как перенести типовые настройки движений:
РеализацияТоваровУслуг, ПоступлениеТоваровУслуг и другие регистраторы НДС).НДСпоОСиНМА в соответствии с типовым релизом.НДСпоОСиНМА разрешено удаление (или он замещается по правилам поставщика).Если после очистки регистраторов конфигуратор все равно выдает сообщение о наличии ссылок, причиной являются нетиповые объекты или элементы прав доступа. Чтобы не перебирать дерево вручную, воспользуемся встроенным инструментом платформы:
РегистрыНакопления.НДСпоОСиНМА.Чтение или Изменение) на этот регистр, откроем эти роли и снимем галочки прав с регистра НДСпоОСиНМА.Важно помнить: при физическом удалении регистра из метаданных и последующем сохранении изменений (F7) СУБД безвозвратно удаляет физическую таблицу регистра и таблицы итогов. Если компании требуются исторические движения регистра за прошлые налоговые периоды для проведения налоговых проверок или сверок, регистр удалять нельзя.
В такой ситуации применим безопасный сценарий архивации:
НДСпоОСиНМА_Архив или УдалитьНДСпоОСиНМА.1.3.87.2. Поскольку имя объекта изменилось, платформа не сопоставит переименованный регистр с удаленным типовым регистром поставщика, и таблица в базе данных со всеми историческими записями останется нетронутой.Также при возникновении комплексных коллизий метаданных рекомендуется выполнять обновление поэтапно: сначала выполнить переход с 1.3.86.3 на промежуточный релиз 1.3.87.1, разрешить все конфликты метаданных, применить конфигурацию базы данных и только после этого накатывать финальный релиз 1.3.87.2.