При настройке и выполнении синхронизации данных между конфигурациями (например, между «1С:Управление торговлей» и «1С:Бухгалтерия предприятия») нередко возникает ситуация, когда вместе со справочником контрагентов или партнеров переносятся служебные данные. В результате в базе-приемнике появляются дубли предопределенных элементов, в частности справочника ВидыКонтактнойИнформации. Попытка удалить такие элементы стандартными средствами через интерфейс или пометку на удаление завершается ошибкой, так как платформа запрещает интерактивное удаление предопределенных данных. Разберем причины возникновения этой ситуации и пошаговые методы ее решения.
Почему возникает дублирование предопределенных элементов при обмене:
GUID). Если в исходной и целевой базах идентификаторы предопределенных элементов различаются, создается новый элемент с признаком предопределенности.Начиная с платформы «1С:Предприятие 8.3», связь элемента справочника с предопределенным элементом в метаданных определяется специальным строковым свойством ИмяПредопределенныхДанных. Если очистить значение этого реквизита, элемент перестает считаться предопределенным и превращается в обычный элемент информационной базы.
Рассмотрим, как снять признак предопределенности программно с помощью внешней обработки:
// Получаем объект справочника по ссылке на лишний элемент
ОбъектСправочника = СсылкаНаЭлемент.ПолучитьОбъект();
// Очищаем имя предопределенного элемента
ОбъектСправочника.ИмяПредопределенныхДанных = "";
// Записываем изменения
ОбъектСправочника.Записать();
Разберем по шагам порядок действий после выполнения программного кода:
Администрирование — Обслуживание и завершаем удаление.Для массовой обработки таких элементов можно также использовать типовую обработку Групповое изменение реквизитов. Для этого в дополнительных настройках обработки необходимо включить режим разработчика (редактирование служебных реквизитов), выбрать реквизит ИмяПредопределенныхДанных и установить для него пустое значение.
Проанализируем альтернативный и наиболее безопасный вариант. Если перенесенные элементы уже успели записаться в документы или другие справочники, простое удаление может привести к появлению «битых» ссылок (объектов Объект не найден). В этом случае рекомендуется выполнить замену ссылок с помощью механизмов Библиотеки стандартных подсистем (БСП).
Выполним следующие действия:
Администрирование — Обслуживание — Корректировка данных и откроем обработку Поиск и удаление дублей (либо внешнюю обработку Поиск и замена значений).Виды контактной информации.Чтобы избежать повторного появления дублей при последующих сеансах обмена между «1С:Управление торговлей» и «1С:Бухгалтерия предприятия», настроим правила обмена:
Виды контактной информации не по уникальному идентификатору, а по свойству ИмяПредопределенныхДанных.