Справочники и Данные · 9 мин
Как поменять ссылку объекта в 1С
Как поменять ссылку объекта в 1С: замена значения реквизита, изменение GUID через обработку, поиск и замена дублей, риски и проверка результата.
Под «ссылкой объекта» в 1С обычно понимают две разные вещи. Первая — значение реквизита ссылочного типа: например, в документе «Реализация товаров» указан контрагент, и его нужно заменить на другого. Вторая — внутренний уникальный идентификатор (GUID) самого объекта, по которому на него ссылаются другие записи базы. Задачи меняют ссылку в обоих случаях, но инструменты и риски принципиально разные.
Замена значения реквизита — штатная операция, которую выполняют через форму объекта, групповое изменение реквизитов или обработку «Поиск и замена дублей». Изменение GUID — нештатная операция: платформа не предоставляет для неё пользовательского интерфейса, и выполняют её только через код или специализированные обработки, понимая последствия для обменов и интеграций.
Прежде чем что-либо менять, определите, какая именно задача стоит: подставить другой объект в поле документа или справочника, устранить дубли элементов или принудительно присвоить объекту конкретный идентификатор. От этого зависит безопасный сценарий.
Определяем, какую ссылку нужно поменять
Ссылочный реквизит — это поле объекта, которое хранит указание на другой объект: контрагента в заказе, номенклатуру в строке документа, договор в акте. Поменять такую ссылку означает записать в поле другой элемент справочника или другой документ. Это рядовая операция, доступная пользователю с соответствующими правами.
Уникальный идентификатор (GUID) — это внутренний ключ объекта, который платформа присваивает при создании и который используется в обменах, внешних ссылках вида e1cib/data/Справочник.Контрагенты?ref=... и интеграциях. Его смена фактически означает «пересоздание» объекта с новой идентичностью, и все существующие ссылки на старый GUID станут битыми, если их не переназначить.
Замена ссылки в реквизите через форму объекта
Самый простой случай — один объект, одно поле. Откройте документ или элемент справочника, установите курсор в нужное поле, нажмите кнопку выбора и укажите новый элемент. После этого запишите объект кнопкой «Записать» или «Провести», если это документ.
Учитывайте контроль ссылочной целостности: если объект проведён, при записи платформа перепроведёт его, и движения по регистрам пересчитаются. Для документов прошлых периодов это может изменить регламентированную отчётность, поэтому проверьте, не закрыт ли период датой запрета изменения данных.
Если поле недоступно для редактирования, проверьте права: у пользователя может не быть права «Изменение» на объект либо поле заблокировано функциональной опцией или настройкой формы. В типовых конфигурациях часть реквизитов редактируется только через специальные команды формы.
Массовая замена через групповое изменение реквизитов
Когда ссылку нужно поменять сразу в десятках или сотнях объектов, используйте типовую обработку «Групповое изменение реквизитов». В конфигурациях на БСП она находится в разделе «Администрирование» → «Обслуживание» → «Корректировка данных» (в некоторых версиях — «Поддержка и обслуживание»).
- 1Откройте «Администрирование» → «Обслуживание» → «Групповое изменение реквизитов»
- 2Выберите тип объектов: документы, справочники или конкретный вид
- 3Настройте отбор: укажите условие, например «Контрагент = старое значение»
- 4В списке реквизитов отметьте нужное поле и задайте новое значение
- 5Нажмите «Изменить реквизиты» и дождитесь завершения
- 6Проверьте несколько объектов из выборки вручную
Обработка показывает количество объектов, попадающих под отбор, до выполнения изменения — сверьте это число с ожиданием. Если отбор настроен слишком широко, отмените операцию и уточните условия: массовая запись без точного отбора — самая частая причина порчи данных.
Для документов обработка по умолчанию может пропускать проведённые объекты или записывать их без проведения — зависит от настроек выполнения. Если движения должны обновиться, включите режим проведения или перепроведите документы после замены через обработку «Проведение документов».
Устранение дублей через поиск и замену ссылок
Типовая задача — в справочнике завели две карточки одного контрагента, и ссылки разошлись по обоим. Правильный инструмент — «Поиск и удаление дублей» в разделе «Администрирование» → «Обслуживание». Обработка находит похожие элементы, а затем заменяет все ссылки на дубль ссылками на выбранный «основной» элемент во всей базе, включая документы, регистры и другие справочники.
После замены ссылок дубль помечается на удаление или удаляется (в зависимости от режима). Все места использования платформа перебирает автоматически, поэтому битых ссылок не остаётся — это ключевое преимущество перед ручной перебивкой документов.
Изменение GUID объекта программно
Штатного способа поменять GUID существующего объекта нет. Обходной приём — создать новый объект, присвоить ему нужный идентификатор через метод УстановитьСсылкуНового(), перенести все данные и заменить ссылки со старого объекта на новый по всей базе. Старый объект после этого помечают на удаление.
Такая операция нужна в узких сценариях: синхронизация идентификаторов между двумя базами, восстановление объекта, удалённого вместе с его GUID, исправление последствий некорректной выгрузки. Выполнять её стоит только разработчику или опытному администратору в копии базы.
НовыйЭлемент = Справочники.Контрагенты.СоздатьЭлемент();
НовыйЭлемент.УстановитьСсылкуНового(НужнаяСсылка);
НовыйЭлемент.Наименование = СтарыйЭлемент.Наименование;
НовыйЭлемент.Записать();Для поиска всех мест использования старой ссылки применяйте метод НайтиПоСсылкам() — он возвращает таблицу объектов, где встречается ссылка. Замену выполняйте в транзакции, чтобы при ошибке откатить частичные изменения.
Проверка результата и типичные ошибки
После замены ссылки откройте несколько затронутых объектов и убедитесь, что в поле стоит новое значение, документы проводятся без ошибок, а отчёты по связанным данным (например, взаиморасчёты по контрагенту) показывают ожидаемые цифры. Для замены дублей дополнительно проверьте, что старый элемент помечен на удаление и не используется.
Признак проблемы — появление в отчётах и формах строк вида «<Объект не найден> (…)». Это означает битую ссылку: объект удалили, а ссылки на него остались. Исправляется восстановлением объекта с прежним GUID или повторной заменой ссылок на существующий элемент.
Как проверить результат
Стоит новый элемент, объект записывается без ошибок
Старое значение или сообщение о нарушении прав
Суммы и остатки соответствуют новому объекту
Данные раздвоены между старым и новым элементом
Строк «Объект не найден» нет
В формах и отчётах видны битые ссылки
Частые вопросы
Можно ли поменять ссылку в закрытом периоде?
Технически — только если пользователю разрешено изменение данных до даты запрета. Практически это меняет движения прошлых периодов и может исказить сданную отчётность, поэтому корректнее вносить исправления документами текущего периода.
Чем замена дублей лучше ручного удаления лишнего элемента?
Обработка автоматически переназначает все ссылки во всех объектах базы, включая регистры сведений и неочевидные места использования. При ручном удалении ссылки остаются и превращаются в «Объект не найден».
Как узнать GUID существующего объекта?
Программно — через Ссылка.УникальныйИдентификатор(). Также идентификатор виден в навигационной ссылке объекта после параметра ref= в закодированном виде, но удобнее получить его запросом или через консоль кода.
Почему после замены ссылки в документе отчёт не изменился?
Документ записали без проведения, поэтому движения по регистрам остались старыми. Перепроведите документ вручную или групповой обработкой проведения.
Безопасно ли менять GUID объекта, участвующего в обмене с сайтом?
Нет, без подготовки — небезопасно. Сайт идентифицирует объект по GUID, и после смены идентификатора при следующем обмене появятся дубли. Если смена неизбежна, синхронно обновите идентификатор на стороне сайта или выполните полную первичную выгрузку заново.
Что важно запомнить
Замену значения ссылочного реквизита выполняйте штатными средствами: форма объекта, групповое изменение реквизитов, поиск и удаление дублей. Смену GUID делайте только программно, на копии базы и с учётом обменов. Перед любой массовой операцией создавайте резервную копию и проверяйте результат на выборке объектов.