Обновление сильно доработанных конфигураций «1С:Управление торговлей» версии 11.5 часто преподносит сюрпризы технического характера. Одной из наиболее распространенных проблем является массовое появление меток об изменении в разделе Справочная информация для множества объектов метаданных, даже если программный код или структура данных в них не затрагивались. Разберем подробно, почему это происходит, как отличить реальные изменения от технических артефактов и какую стратегию обновления выбрать, чтобы минимизировать риски для «боевой» базы.
Когда мы запускаем процесс сравнения и объединения конфигураций, система анализирует объекты побайтово. Существует несколько ключевых факторов, из-за которых справочная информация (HTML-тексты встроенной справки) помечается как измененная:
width и style), добавлять или удалять кавычки. Для пользователя текст справки выглядит идентичным, но для механизма сравнения — это измененный объект.EDT, структура XML-файлов справки может отличаться от той, которую генерирует классический Конфигуратор. Различия могут крыться в служебных атрибутах или последовательности тегов в XML-представлении объекта.CRLF (Windows) или LF (Unix-style). Также на наличие различий влияет метка BOM в кодировке UTF-8. Если в одном файле она есть, а в другом нет — объекты будут признаны разными.Прежде чем принимать решение о замене справки, нам необходимо убедиться, что в объекте действительно не было уникальных пользовательских инструкций. Для этого проанализируем инструменты контроля:
Рассмотрим использование функции «Отчет о сравнении объектов». В окне сравнения и объединения выделим подозрительный объект, вызовем контекстное меню и выберем пункт формирования отчета. В настройках крайне важно установить флаг «Подробный отчет по свойствам». Если в тексте отчета мы видим только незначительные изменения в стилях оформления (например, замену width="100%" на style="width: 100%") при сохранении смысла текста — такие изменения можно смело игнорировать и замещать данными поставщика.
Для того чтобы не тратить время на просмотр сотен объектов с «техническими» изменениями справки, воспользуемся встроенными фильтрами окна сравнения:
Совет: Если в вашей компании не принято писать инструкции непосредственно внутри конфигурации (а это современный стандарт — выносить справку во внешние базы знаний), вы можете просто «забить» на эти различия и разрешить системе обновить всю справочную информацию данными из нового релиза. Это очистит историю изменений и упростит последующие обновления.
Рассмотрим наиболее безопасный алгоритм обновления доработанной УТ 11.5, который используют профессиональные разработчики 1С. Мы настоятельно рекомендуем использовать методику подготовки файла конфигурации (.cf) на копии базы.
Создадим полную копию рабочей базы. Именно на ней мы будем выполнять основную работу по сравнению и объединению. Это позволит нам:
В УТ 11.5 после объединения конфигураций наступает критически важный этап — выполнение обработчиков обновления в режиме «1С:Предприятие». Проанализируем ситуацию: в крупных базах эти процессы (реструктуризация данных, заполнение новых регистров) могут длиться десятки часов. Выполнив это на копии, мы поймем, не возникнет ли критических ошибок Runtime, которые могут «повесить» систему в самый неподходящий момент.
После того как конфигурация на копии успешно обновлена и протестирована, выгрузим её в файл (Конфигурация -> Сохранить конфигурацию в файл...). Теперь перейдем к рабочей базе.
Важный технический момент: Загружать полученный файл в рабочую базу следует через Конфигурация -> Сравнить, объединить с конфигурацией из файла..., а не через простую загрузку (LoadCF). Это необходимо для того, чтобы сохранить настройки поддержки и избежать потенциальных проблем с идентификаторами объектов, если в процессе подготовки были задействованы механизмы постановки на поддержку новых объектов поставщика.
Чтобы в будущем не сталкиваться с проблемой «замусоривания» окна сравнения лишними объектами, проанализируем возможность использования расширений конфигурации. Если вы видите, что объект был снят с поддержки только ради изменения пары строк кода или добавления реквизита, постарайтесь перенести эти изменения в расширение.
Как только вы перенесете логику в расширение, основной объект конфигурации можно (и нужно) вернуть на полную поддержку («замочек»). В этом случае справочная информация этого объекта больше никогда не будет появляться в списке различий, так как система будет обновлять её автоматически, не спрашивая вашего участия. Это кардинально ускоряет процесс перехода на новые релизы УТ.
Подведем итог нашей совместной работы по анализу обновления:
.cf в рабочую базу.