Как обновить измененную 1С:ЗУП, если при сравнении появляются дублирующиеся или несовпадающие объекты?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом Бухгалтерский учет IT и автоматизация бизнеса
← К списку

При обновлении измененной (нетиповой) конфигурации 1С:ЗУП вы можете столкнуться с ситуацией, когда в окне сравнения и объединения система показывает, что какой-то объект, например, регламентированный отчет, в старой конфигурации удаляется, а в новой — добавляется, хотя по логике он должен был просто обновиться. Давайте вместе разберемся, почему так происходит и как правильно решить эту проблему, не потеряв данные.

Проанализируем ситуацию. Основная причина такого поведения кроется в том, что ваша конфигурация, скорее всего, снята с поддержки или в ней включена возможность изменения. Каждому объекту в 1С (отчету, справочнику, документу) присвоен внутренний уникальный идентификатор. Когда вы вносите изменения или, например, некорректно копируете объекты, эти идентификаторы могут измениться. В результате при обновлении система не может сопоставить старый объект с новым по его внутреннему "паспорту" и считает их двумя совершенно разными объектами. Она видит, что в вашей базе есть объект с именем "ОтчетРСВ" (условно), а в обновлении приходит другой объект с таким же именем, но другим идентификатором. Итог: система предлагает удалить ваш старый объект и добавить новый.

Выясним, как действовать в этой ситуации. Рассмотрим несколько подходов к решению.

Решение 1: Ручное сопоставление объектов в конфигураторе (рекомендуемый способ)

Это самый корректный и безопасный метод, который позволяет "объяснить" системе, что два объекта на самом деле являются одним и тем же. Он гарантирует, что все связи и настройки будут перенесены правильно.

Разберем по шагам, как это сделать:

  1. Запустите процесс обновления конфигурации и дойдите до окна сравнения и объединения.
  2. В дереве объектов найдите ваш проблемный объект. Вы увидите, что в вашей текущей конфигурации он помечен на удаление, а в конфигурации поставщика — как новый.
  3. Нажмите правой кнопкой мыши на новом объекте (тот, который находится в правой части окна, в конфигурации из файла обновления).
  4. В появившемся контекстном меню выберите пункт "Установить соответствие объектов...".
  5. Откроется небольшое окно, в котором вам нужно будет указать, какому объекту из вашей текущей конфигурации (левая часть окна) соответствует этот новый объект. Выберите из списка ваш "старый" отчет.

После этих действий система поймет, что это две версии одного и того же объекта. Она правильно сопоставит их и предложит объединить изменения, а не удалять и добавлять. Этот способ сохраняет целостность конфигурации и является профессиональным подходом к обновлению доработанных баз.

Решение 2: Удаление старого объекта перед обновлением

Этот метод более "грубый", но в некоторых случаях, особенно с регламентированными отчетами, он может сработать. Суть в том, чтобы вручную удалить старый объект из вашей конфигурации, а затем накатить обновление, которое добавит его новую версию.

Почему это может быть безопасно именно для отчетов? Как правило, сам объект отчета в конфигураторе (его макет, модуль) не хранит введенные вами данные. Данные по сданным отчетам, например РСВ, хранятся в отдельных объектах системы — документах типа РегламентированныйОтчет. В этих документах есть только текстовое указание на вид отчета (например, строка "РасчетПоСтраховымВзносам"), а не прямая ссылка на объект в конфигурации. Поэтому, удалив старый отчет и позволив системе добавить новый, вы не должны потерять сохраненные данные. Система найдет новый отчет по его строковому имени.

Как применить этот метод:

  1. Перед началом обновления откройте конфигуратор.
  2. Найдите в дереве конфигурации проблемный регламентированный отчет.
  3. Удалите его.
  4. Сохраните и обновите конфигурацию базы данных (F7).
  5. Теперь запускайте стандартный процесс обновления. Система просто добавит новый отчет на пустое место, и конфликта не возникнет.

Важно: используйте этот метод с осторожностью и только если вы уверены, что на удаляемый объект нет прямых ссылок из других важных объектов вашей конфигурации. Для сложных, сильно переработанных объектов он не подходит.

Важная рекомендация: Возвращаем объекты на поддержку

Чтобы в будущем избежать подобных сложностей, рассмотрим хорошую практику сопровождения измененных конфигураций. Если вы изменяли какой-то объект, он должен оставаться на поддержке с возможностью изменения. Но если есть объекты, которые вы не трогали, или доработки в них больше не актуальны, их лучше вернуть на полную поддержку поставщика.

Это называется "поставить объект на замок". Когда объект находится на полной поддержке, система обновляет его полностью автоматически, без лишних вопросов. Это значительно упрощает и ускоряет процесс обновления.

Что нужно сделать после успешного обновления:

  1. Откройте конфигуратор: Конфигурация -> Поддержка -> Настройка поддержки.
  2. Найдите объекты, которые вы не дорабатывали, но которые по какой-то причине были сняты с поддержки.
  3. Для каждого такого объекта установите правило поддержки "Объект поставщика редактируется с сохранением поддержки".
  4. Затем через сравнение с конфигурацией поставщика можно принудительно вернуть типовую версию объекта, если это необходимо.

Ключевой момент: не ставьте на полную поддержку всю конфигурацию, иначе вы потеряете все свои доработки. Работайте точечно, только с теми объектами, которые должны быть полностью типовыми.

← К списку