При обновлении нетиповых конфигураций (особенно на платформе 8.3.15 и 8.3.16) специалисты часто сталкиваются с неприятной ситуацией: в окне сравнения и объединения объекты, которые точно не подвергались доработке и находятся «на замке», внезапно попадают в фильтр «Дважды измененные свойства». Это создает лишнюю нагрузку на программиста, заставляя вручную проверять сотни объектов, которые по логике должны были обновиться автоматически.
В данной статье мы разберем причины возникновения таких «фантомных» изменений, проанализируем внутренние механизмы платформы и выработаем алгоритм действий для очистки списка обновлений от лишних объектов.
Для начала выясним, как платформа понимает, что свойство изменено «дважды». При обновлении система сравнивает три состояния объекта:
Если свойство в основной конфигурации отличается от старой конфигурации поставщика И при этом оно же изменилось в новой конфигурации поставщика, платформа помечает это как конфликт. Проблема заключается в том, что «отличие» в основной конфигурации может появиться само собой, без участия программиста.
Проанализируем ситуацию с порядком следования метаданных. В процессе разработки фирма «1С» может изменить последовательность справочников в дереве конфигурации или порядок реквизитов внутри табличной части. Для платформы это выглядит как изменение структуры объекта.
Выясним, как это проверить в окне сравнения:
Даже если состав реквизитов идентичен, изменение их физического расположения в XML-структуре файла конфигурации заставляет фильтр считать объект измененным в вашей базе.
Рассмотрим влияние версии платформы (в частности, 8.3.16). В новых версиях 1С активно развиваются возможности мобильного клиента. Платформа массово добавляет в метаданные новые служебные поля, такие как ИспользоватьВсегда для форм или параметры отображения элементов на мобильных устройствах.
Если при предыдущем обновлении платформа автоматически проставила в вашу рабочую конфигурацию значения по умолчанию для этих свойств, а в конфигурации поставщика они еще не были зафиксированы или имели другие значения, возникает расхождение хеш-сумм (CRC). Система видит разницу в «невидимых» для обычного глаза свойствах и выводит объект в список конфликтов.
Иногда корень проблемы кроется в некорректном завершении прошлых обновлений. Если процесс обновления был прерван или база данных работала нестабильно, связка между объектом и поддержкой может сохраниться, но внутренняя контрольная сумма объекта в основной конфигурации «разойдется» с эталонной из конфигурации поставщика.
В этом случае платформа считает, что вы внесли изменения, хотя визуально в конфигураторе всё выглядит стандартно. Посмотрим, как выявить такие различия: необходимо воспользоваться функцией «Отчет о сравнении объектов». В детальном отчете часто можно увидеть строки с техническими параметрами, которые и вызывают ложное срабатывание.
Разберем ситуацию с разделом Help (Справка). Фирма «1С» периодически меняет формат хранения справочной информации. Если в новом релизе формат обновился, система может пометить все объекты, содержащие справку, как измененные. То же самое касается общих картинок и макетов оформления. Поскольку контент этих объектов бинарный, любое минимальное изменение формата файла приводит к тому, что хеш-сумма перестает совпадать.
Если вы столкнулись с массовым появлением ложных «дважды измененных» объектов, рекомендуем выполнить следующие шаги:
Перед тем как принимать решение, проанализируйте, что именно изменилось. Правой кнопкой мыши кликните по объекту в окне сравнения и выберите «Отчет о сравнении». Если в отчете указано только изменение порядка или «Справочная информация», значит, фактических изменений кода нет.
Для объектов, которые вы точно не меняли, выполните следующие действия:
Если после обновления объекты продолжают «фонить» в следующих релизах, применим более радикальный метод — «перезамок»:
Конфигурация — Поддержка — Настройка поддержки.Конфигурация — Сравнить, объединить с конфигурацией из файла.cf того же самого релиза поставщика, который установлен сейчас.Этот процесс принудительно перезапишет внутренние идентификаторы и контрольные суммы объектов в вашей базе, приведя их в полное соответствие с эталоном поставщика.
При переходе между версиями (например, с 11.3 на 11.4) критически важно запускать 1С:Предприятие в обычном режиме или с ключом /UpdateCfg после каждого шага обновления. Это необходимо для того, чтобы отработали внутренние обработчики обновления данных. Эти обработчики могут изменять структуру метаданных «на лету», и если пропустить этот шаг, при следующем обновлении платформа обнаружит несоответствие структуры, которое она примет за ваше ручное изменение.
Таким образом, появление объектов в фильтре «Дважды измененные свойства» — это чаще всего следствие технического «шума» платформы или накопленных ошибок в хеш-суммах. Использование детального сравнения и своевременная очистка CRC-сумм позволяют вернуть процесс обновления в штатный режим.