Почему при обновлении справочная информация отображается как «дважды измененная» и как это исправить?

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

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

Выясним причины возникновения «ложных» изменений

Проанализируем ситуацию: почему платформа считает объект измененным, если программист его не трогал? Основная причина кроется в технической реализации хранения данных. Справочная информация в 1С хранится в формате HTML. Для работы с этим форматом платформа использует системные библиотеки Windows, а именно движок Internet Explorer (библиотека mshtml.dll).

Когда разработчик фирмы «1С» сохраняет объект в конфигурации поставщика, его система записывает в заголовок HTML-файла мета-тег с версией своего генератора. Рассмотрим пример типичной строки, которая вызывает конфликт:

<meta name="GENERATOR" content="MSHTML 11.00.9600.17924">

Если на вашем компьютере установлена другая версия Internet Explorer или установлены иные обновления безопасности Windows, то при любом (даже случайном) открытии и сохранении объекта ваша система перезапишет этот тег своей версией. С точки зрения платформы 1С, бинарный код файла изменился, и она помечает объект как «измененный пользователем».

Помимо версии браузера, на возникновение «дважды измененных» влияют следующие факторы:

  1. Версия платформы 1С: Разные версии технологической платформы могут использовать разные алгоритмы сериализации XML-структур. При переходе на новую версию платформы объекты могут быть пересохранены с измененными служебными атрибутами.
  2. Настройки DPI (разрешение экрана): Для форм отчетов и обработок критичным оказывается разрешение экрана. Если форма была сохранена при 96 DPI, а вы открыли ее на мониторе с 120 DPI, платформа может попытаться пересчитать координаты элементов, что зафиксируется как модификация объекта.
  3. Неявное сохранение: Достаточно просто открыть форму или справку в дизайнере и нажать «ОК» вместо «Отмена», чтобы платформа обновила метку времени и пересохранила структуру объекта.

Рассмотрим методы борьбы с «мусорными» изменениями

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

Шаг 1: Использование фильтров в окне сравнения

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

Шаг 2: Массовое приведение к конфигурации поставщика

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

  1. В окне сравнения и объединения найдем ветку «Справочная информация».
  2. Снимем флажки со всех объектов этого раздела.
  3. Для «дважды измененных» объектов установим режим «Взять из конфигурации поставщика» (или «Взять из файла»).

После выполнения объединения с такими настройками, метаданные вашей базы полностью совпадут с данными поставщика. При следующем обновлении эти объекты больше не будут помечаться как измененные, пока не изменится версия вашей библиотеки mshtml.dll.

Шаг 3: Детальное сравнение содержимого

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


- <meta name="GENERATOR" content="MSHTML 11.00.9600.17924">
+ <meta name="GENERATOR" content="MSHTML 11.00.10570.1001">

Если отличия ограничиваются только тегом GENERATOR или форматированием пустых строк, такие изменения можно смело игнорировать и заменять данными поставщика.

Работа с формами отчетов

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

Профилактика проблемы

Чтобы в будущем сократить время на обновление, придерживайтесь следующих правил:

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

← На главную