При обновлении доработанных конфигураций 1С (например, УТ 11.4) на современных версиях платформы (8.3.14 и выше) программисты часто сталкиваются с ситуацией, когда отчет о сравнении и объединении объектов выдает странные, неинформативные строки. Вместо привычного изменения кода модуля или состава реквизитов мы видим иерархические списки вроде Элементы — Форма — Положение в командной панели или массовые изменения в разделе Справка. При этом визуально форма кажется идентичной той, что была в старой версии.
В этой статье мы подробно разберем природу возникновения таких «фантомных» различий, выясним, почему отчет выдает скудную информацию, и определим алгоритм действий для специалиста.
Рассмотрим ситуацию с точки зрения архитектуры платформы. Начиная с версии 8.3.14, компания «1С» провела глубокую модернизацию механизмов хранения управляемых форм. Платформа перешла на новый способ сериализации объектов в XML-файлы конфигурации.
Разберем по шагам, что происходит в этот момент:
Положение в командной панели.Проанализируем пример из практики: если в старой версии платформы индекс кнопки в командной панели определялся автоматически (значение «0» или «Авто»), то новая платформа может жестко прописать этот индекс. Отчет зафиксирует различие, хотя кнопка осталась на том же месте.
Часто в отчетах фигурирует строка Положение в командной панели для различных команд (например, ФормаСправка, ЗачетОплаты). Выясним причину этого явления. Платформа 8.3 группирует под этим заголовком сразу несколько изменений:
Если в типовом решении от «1С» разработчики просто переместили одну кнопку в другое подменю, механизм сравнения может вывести «технический» отчет, который трудно интерпретировать без открытия самой формы в конфигураторе.
Многие разработчики замечают, что при обновлении массово «подсвечиваются» изменения в справке объектов. Это так называемые «отголоски IE». Разберем ситуацию подробнее:
Исторически справочная информация в 1С отображалась с использованием движка Internet Explorer. В последних версиях платформы осуществляется переход на WebKit. В связи с этим в типовых конфигурациях (УТ, ERP, КА) происходит переформатирование текстов справок:
X-UA-Compatible).Поскольку Справка является частью метаданных объекта (например, документа), весь объект помечается как измененный. Понять суть таких изменений через стандартный отчет практически невозможно, так как он не предназначен для визуального сравнения HTML-верстки.
Посмотрим на практические рекомендации, которые помогут сэкономить время при обновлении конфигураций, снятых с замка:
1. Оценка «визуального шума». Если вы видите массовые изменения в коллекциях Элементы или в Справке, при этом точно знаете, что сами эти формы не редактировали, — в большинстве случаев эти изменения можно смело принимать от поставщика. Платформа просто «подтягивает» объекты к новому стандарту хранения.
2. Проверка через сторонние инструменты. Если критически важно понять, что именно изменилось в форме, а стандартный отчет не помогает, используйте выгрузку файлов в XML. Рассмотрим алгоритм:
3. Постобработка после обновления. Проанализируем ситуацию: иногда после полного объединения с конфигурацией поставщика при следующем сравнении эти же объекты снова выходят как «различающиеся». Это происходит из-за того, что ваша локальная платформа при сохранении объекта в базу снова выполняет нормализацию, которая чуть-чуть отличается от той, что была в .cf файле поставки. Чтобы это устранить, иногда помогает однократное открытие и сохранение формы в конфигураторе или использование режима совместимости, соответствующего версии конфигурации поставщика.
Рассмотрим типичные строки из отчета и их реальное значение:
- ***ФормаСправка Положение в командной панели — скорее всего, изменился порядок кнопок в стандартной командной панели или способ отображения кнопки вызова справки.- ***СчитатьКартуЛояльности Положение в командной панели — кнопка могла быть перемещена из основного меню в подменю «Еще» или наоборот.- ***Элементы - ***Форма — общее уведомление о том, что структура XML-описания элементов формы претерпела изменения (могли добавиться новые системные свойства, такие как параметры отображения в различных режимах компактности интерфейса «Такси»).Важный момент: на платформе версии 8.3.15 и выше механизм сравнения стал более чувствителен к GUID внутренних элементов. Если когда-то в прошлом форма редактировалась вручную, идентификаторы элементов могут не совпадать с поставщиком, что будет порождать вечные «различия» в отчетах.
Подводя итог, можно сказать: большинство непонятных строк в отчете о сравнении в УТ 11.4 — это следствие эволюции платформы 1С. Основная задача программиста в данном случае — научиться отделять реальные изменения логики (модули, реквизиты) от технической «нормализации» XML и справочной информации.