Про ошибки с предопределенными элементами в базах не писал только ленивый. Здесь на сайте есть несколько отличных обработок, которые позволяют исправить любую подобную ошибку. И когда в базе испорчены один/два таких элемента - это не представляет проблемы. Пока к вам не попадает база, в которой таких ошибок штук 50.
Итак, как использовать данную обработку:
- Берем проблемную базу, делаем резервную копию и откладываем в сторону
- Создаем пустую/берем другую корректную/берем демо базу - такую же как проблемная (той же версии, ну или хотя бы близкой к проблемной)
- при наличии корректной резервной копии - рекомендуется взять такую резервную копию и обновить до версии проблемной базы
- при отсутствии резервных копий - рекомендуется выгрузить из проблемной базы конфигурацию поставщика и создать новую базу по выгруженному .cf файлу
- Запускаем в этой базе обработку, нажимаем "Выгрузить данные предопределенных" и сохраняем получившийся .xml файл
- Возвращаемся к отложенной ранее проблемной базе, запускаем в ней обработку
- Нажимаем "Поиск проблемных элементов" и дожидаемся заполнения списка всеми проблемными элементами базы
- Нажимаем "Восстановить элементы по файлу" и выбираем выгруженный ранее .xml файл
- Ждем
- Изучаем результат исправления
Принципы работы:
- Обработка работает только со справочниками, планами видов характеристик и планами счетов. Возможна работа с планами видов расчетов - но не доделана, напишите если кому понадобится.
- Поиск проблемных элементов - в метаданных для всех справочников/ПВХ/планов счетов ищутся предопределенные элементы. Если в ИБ отсутствует элемент, соответствующий предопределенному - такой элемент метаданных попадает в список проблемных
- Из "корректной" базы выгружается вся имеющаяся информация о предопределенных элементах, вместе с их кодами, реквизитами, иерархией и т.п.
- При восстановлении, для каждого проблемного элемента в базе ищется соответствующий элемент в файле. Новый элемент создается и заполняется всеми данными аналогичного предопределенного элемента из корректной базы.
- Перед созданием нового элемента выполняется поиск в проблемной базе "отвязанного" предопределенного элемента. Поиск выполняется по коду+наименованию для справочников и ПВХ и по коду для планов счетов. Если подходящий элемент находится - он используется , вместо создания нового.
- Заполнение кода у создаваемых элементов - код заполняется копированием из файла только если в базе отсутствует элемент с тем же кодом. При наличии такого элемента справочника/ПВХ у нового предопределенного элемента будет новый код.
Проблемы, которые обработка решить не может:
- Если предопределенный элемент содержит ссылку на не предопределенные элементы базы, то при создании такого предопределенного элемента с большой вероятностью получим ссылку на неопределенный объект. Но такие элементы в базах встречаются не часто (как пример БУ 3.0 справочник "ВидыРегистровУчета" - содержит ссылку на отчет, из справочника идентификаторов объектов метаданных). Поэтому рекомендуется в качестве образца для восстановления использовать резервную копию той же базы - с большой вероятностью элемент будет создан корректно. В противном случае потребуется ручное исправление.
- В базах встречаются несуществующие предопределенные элементы, и это не является ошибкой. Т.е. отдельные предопределенные элементы не создаются до момента выполнения каких-то действий в базе (например, до включения определенных опций настройки).
- Рекомендуется перед выгрузкой данных предопределенных элементов из корректной базы включить в ней те же настройки, что и в проблемной базе - это позволит скопировать элементы, не испортив текущие настройки базы
Обработка тестировалась:
- Бухгалтерия предприятия, редакция 3.0 (3.0.75.37) - 1С:Предприятие 8.3 (8.3.15.1565)