Почему в 1С при обновлении не отображаются дважды измененные объекты?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Разберем логику работы фильтра «Дважды измененные»

Для начала проанализируем, что именно 1С считает «дважды измененным» объектом. Многие ошибочно полагают, что это просто сравнение текущей базы и файла обновления. На самом деле, система использует так называемый «треугольник сравнения», сопоставляя три состояния конфигурации:

  1. Старая конфигурация поставщика: версия типового решения, которая была установлена в базу до текущего сеанса обновления.
  2. Новая конфигурация поставщика: данные, которые мы загружаем из файла .cf или .cfu.
  3. Основная конфигурация: наша рабочая база с учетом всех внесенных в нее изменений.

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

Шаг 1: Проверка настроек поддержки

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

Рассмотрим порядок действий для проверки:

Шаг 2: Очистка кэша конфигуратора

Если настройки верны, но объекты не отображаются, велика вероятность «неведомой хрени», как выразился автор темы. Часто это связано с некорректным кэшированием метаданных. Разберем, как правильно почистить кэш «по всем фронтам».

Недостаточно просто удалить базу из списка и добавить ее заново. Нужно вручную проверить папки, где 1С хранит временные файлы:

  1. %USERPROFILE%\AppData\Roaming\1C\1Cv82\
  2. %USERPROFILE%\AppData\Local\1C\1Cv82\

Внутри этих директорий находятся папки с именами в виде GUID. Удаление этих данных заставит конфигуратор заново пересчитать контрольные суммы объектов при сравнении. После очистки попробуем запустить процесс обновления снова.

Шаг 3: Перезагрузка конфигурации поставщика

Иногда база данных хранит поврежденную или неактуальную «старую конфигурацию поставщика». Рассмотрим метод «лечения» через повторную загрузку типового .cf. Если мы точно знаем, какую версию типовой конфигурации мы дорабатывали, мы можем выполнить операцию Загрузить конфигурацию из файла, выбрав аналогичную типовую версию. Для извлечения нужных файлов из архивов обновлений может потребоваться распаковщик конфигураций. Это обновит внутренние таблицы Config и ConfigCascading, восстановив целостность «треугольника» сравнения.

Шаг 4: Анализ человеческого фактора

Проанализируем ситуацию, которая произошла у автора вопроса. Бывает так, что мы ожидаем увидеть изменения там, где их нет. Например:

В этом случае в тестовой базе объект будет «дважды измененным» (изменили мы + изменил вендор), а в рабочей — нет (изменил только вендор). Поэтому, если вы не видите объект в списке, первым делом стоит вручную сравнить Основную конфигурацию с Конфигурацией поставщика, чтобы убедиться, что ваши правки вообще присутствуют в этой конкретной базе.

Шаг 5: Проверка технических фильтров в окне сравнения

Посмотрим на настройки самого окна сравнения. Иногда причина банальна — установлены лишние фильтры. Проверим следующие моменты:

Дополнительные рекомендации

Если проблема сохраняется, выполним «Тестирование и исправление» с установленной галочкой «Проверка логической целостности конфигурации». Это поможет, если в структуре хранения UUID объектов произошел сбой. Кроме того, после завершения процесса крайне важно провести комплексный анализ конфигураций на наличие ошибок, чтобы убедиться в корректности вызовов экспортных процедур и функций.

Также стоит учитывать версию платформы. При переходе на существенно более новые версии (например, с 8.3.15 на 8.3.22) механизмы сравнения могут работать иначе из-за изменений в форматах хранения метаданных. В таких случаях помогает полная выгрузка конфигурации в файлы и их последующая загрузка обратно. Не забудьте также выполнить проверку работоспособности внешних отчетов и обработок, так как изменения в типовых объектах могут нарушить их работу.

Подводя итог, можно сказать: если 1С не показывает «дважды измененные», значит, нарушена связь в цепочке «Старый поставщик — Новый поставщик — Основная конфигурация». Пройдя по шагам от очистки кэша до проверки настроек поддержки, вы обязательно найдете причину и сможете продолжить обновление без потери данных.

← На главную