Что делать, если окно сравнения/объединения конфигураций 1С стало неактивным после случайного изменения формы?

Программист 1С v8.3 (Обычные формы) Промышленность, строительство и АПК
← На главную

В процессе обновления нетиповой конфигурации 1С, особенно такой масштабной, как УПП, может возникнуть неприятная ситуация. Вы часами painstakingly расставляете флажки в окне сравнения и объединения, анализируя каждое изменение. Чтобы лучше понять контекст, вы решаете открыть форму одного из измененных документов, и тут происходит непредвиденное: случайное движение мыши, смещение элемента на форме, и вот основная конфигурация уже изменена. В тот же миг окно сравнения/объединения становится "серым" и неактивным. Все кнопки, кроме "Обновить" и "Закрыть", перестают нажиматься. Что произошло и как вернуть все назад, не теряя проделанную работу? Давайте разберем эту проблему по шагам.

Почему блокируется окно сравнения/объединения?

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

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

Важный момент: стандартного способа "откатить" последнее изменение и "разморозить" окно сравнения не существует. Продолжить с того же места, где вы остановились, к сожалению, не получится. Процесс придется начинать заново, но есть несколько способов минимизировать потери времени.

Способ 1: Полный перезапуск сравнения

Самый очевидный, но и самый трудозатратный путь — начать все с нуля. В заблокированном окне активна кнопка "Обновить". Многие боятся ее нажимать, предполагая, что она может применить какие-то нежелательные изменения. На самом деле, эта кнопка просто инициирует процесс сравнения и объединения заново.

  1. Нажмите кнопку Обновить в окне сравнения/объединения.
  2. Платформа заново сравнит три конфигурации: вашу основную, старую конфигурацию поставщика и новую.
  3. Окно снова станет активным, но все ранее установленные вами флажки и режимы объединения будут сброшены.

Этот способ подходит, если вы только начали работу и не успели сделать много настроек. Если же была проделана многочасовая работа, этот вариант может привести к унынию. Но не отчаивайтесь, есть более хитрые методы.

Способ 2: Откат случайного изменения через сравнение с конфигурацией БД

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

Разберем по шагам:

  1. Закройте неактивное окно сравнения/объединения.
  2. В Конфигураторе перейдите в меню Конфигурация → Конфигурация базы данных...
  3. В открывшемся окне нажмите кнопку "Сравнить, объединить".
  4. Платформа выполнит сравнение между вашей основной конфигурацией (в которой есть случайное изменение) и конфигурацией, сохраненной непосредственно в базе данных (которая еще "чистая").
  5. В дереве объектов найдите тот, который вы случайно изменили (например, Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента).
  6. Вы увидите различие. Установите режим объединения так, чтобы версия из конфигурации базы данных "затерла" вашу измененную версию в основной конфигурации. Обычно для этого нужно просто снять флажок с объекта, чтобы изменения не переносились. Либо выбрать режим "Взять из конфигурации БД".
  7. Выполните объединение (нажмите "Выполнить").
  8. После этого ваша основная конфигурация вернется в то состояние, в котором она была до случайного редактирования.
  9. Теперь можно заново запускать обновление: Конфигурация → Поддержка → Обновить конфигурацию.

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

Способ 3: Восстановление из резервной копии

Это самый радикальный, но и на 100% надежный способ. Если вы следовали золотому правилу и сделали резервную копию базы данных (.dt файл или бэкап SQL) перед началом обновления, вы можете просто восстановить ее и начать процесс заново.

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

Профилактика: как избежать потерь времени в будущем

Повторять многочасовую работу по расстановке флажков — занятие крайне утомительное. К счастью, в платформе есть инструмент, который является настоящим спасением в таких ситуациях.

Сохраняйте и загружайте настройки объединения!

В окне сравнения/объединения на панели инструментов есть две неприметные, но очень важные иконки:

Выработайте привычку: в процессе обновления, после анализа и настройки объединения для крупного блока объектов (например, всех справочников или документов), сохраняйте настройки в XML-файл. Назовите его понятно, например, settings_update_upp_1.3.150_step1_docs.xml.

Теперь, если произойдет сбой, блокировка окна или вам просто нужно будет прерваться, ваш алгоритм действий будет таким:

  1. Перезапустите сравнение/объединение любым из вышеописанных способов.
  2. Дождитесь окончания сравнения.
  3. Нажмите кнопку "Загрузить настройки из файла" и выберите ваш сохраненный файл.
  4. Вуаля! Все ранее установленные вами флажки, режимы объединения и правила для модулей будут восстановлены за несколько секунд.

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

← На главную