При обновлении нетиповых конфигураций 1С специалисты часто сталкиваются с раздражающей ситуацией: в окне сравнения и объединения появляется огромное количество объектов со статусом «Дважды измененные». Особенно часто это касается раздела «Справочная информация» и экранных форм. При этом визуальный анализ показывает, что реальных изменений в тексте справки или структуре формы не вносилось. Такая ситуация сильно усложняет процесс обновления, так как за «мусорными» изменениями легко пропустить действительно важные доработки кода. Давайте разберем причины этого поведения платформы и выясним, как эффективно бороться с этим явлением.
Проанализируем ситуацию: почему платформа считает объект измененным, если программист его не трогал? Основная причина кроется в технической реализации хранения данных. Справочная информация в 1С хранится в формате HTML. Для работы с этим форматом платформа использует системные библиотеки Windows, а именно движок Internet Explorer (библиотека mshtml.dll).
Когда разработчик фирмы «1С» сохраняет объект в конфигурации поставщика, его система записывает в заголовок HTML-файла мета-тег с версией своего генератора. Рассмотрим пример типичной строки, которая вызывает конфликт:
<meta name="GENERATOR" content="MSHTML 11.00.9600.17924">
Если на вашем компьютере установлена другая версия Internet Explorer или установлены иные обновления безопасности Windows, то при любом (даже случайном) открытии и сохранении объекта ваша система перезапишет этот тег своей версией. С точки зрения платформы 1С, бинарный код файла изменился, и она помечает объект как «измененный пользователем».
Помимо версии браузера, на возникновение «дважды измененных» влияют следующие факторы:
Разберем по шагам, как минимизировать количество объектов в списке сравнения и не тратить время на ручную проверку каждой справки.
Первым делом проанализируем настройки окна сравнения и объединения. Чтобы отсечь часть объектов, которые платформа может объединить самостоятельно, воспользуемся встроенными фильтрами. Установим режим «Показывать только те, которые невозможно объединить автоматически». Это позволит сосредоточиться на объектах, где есть реальные конфликты в коде или структуре.
Если вы точно знаете, что справочная информация в вашей базе не редактировалась (вы используете типовую документацию), самым эффективным способом будет сброс состояния этих объектов. Посмотрим на алгоритм действий:
После выполнения объединения с такими настройками, метаданные вашей базы полностью совпадут с данными поставщика. При следующем обновлении эти объекты больше не будут помечаться как измененные, пока не изменится версия вашей библиотеки mshtml.dll.
Если возникают сомнения, действительно ли справка была изменена, проанализируем ситуацию через встроенный механизм сравнения файлов. Нажмем правой кнопкой мыши на объекте и выберем «Сравнить файлы». В открывшемся окне мы увидим текстовое различие. Чаще всего там будет видна разница только в одной строке:
- <meta name="GENERATOR" content="MSHTML 11.00.9600.17924">
+ <meta name="GENERATOR" content="MSHTML 11.00.10570.1001">
Если отличия ограничиваются только тегом GENERATOR или форматированием пустых строк, такие изменения можно смело игнорировать и заменять данными поставщика.
Ситуация с формами аналогична. Если вы видите массовые изменения в формах отчетов, которые вы не дорабатывали, это следствие работы платформы с графическими ресурсами. Выясним, как с этим работать: в режиме сравнения форм обратите внимание на свойства Ширина, Высота и Автомасштаб. Если изменения касаются только этих параметров на доли пикселя, рекомендуется установить для таких форм режим «Взять из конфигурации поставщика».
Чтобы в будущем сократить время на обновление, придерживайтесь следующих правил:
mshtml.dll), чтобы не провоцировать постоянные перезаписи мета-тегов при захвате объектов в хранилище.Таким образом, проблема «дважды измененных» справок — это не баг платформы в чистом виде, а особенность взаимодействия 1С с системными компонентами Windows. Понимая эту механику, мы можем существенно ускорить процесс обновления, отсеивая технический шум от реальных доработок системы.