При переходе с устаревших редакций программных продуктов 1С (например, Бухгалтерия предприятия 2.0) на современные версии (Бухгалтерия предприятия 3.0), специалисты часто сталкиваются с крайне неприятной ситуацией. В процессе обновления конфигурации, когда система должна автоматически удалить старые объекты и заменить их новыми, сотни форм помечаются как «измененные пользователем», хотя фактически программист их никогда не открывал и не редактировал. Это блокирует автоматическое обновление и заставляет вручную проставлять тысячи галочек в окне сравнения и объединения. Разберем детально, почему это происходит и как решить проблему системно.
Проблема кроется в глубоких различиях механизмов сериализации (сохранения в файл) метаданных между платформой 1С:Предприятие 8.2 и 8.3. Основным «виновником» в данном случае выступает свойство ПрозрачныйФон (или просто «Прозрачность») у кнопок и других элементов управления на обычных формах.
Выясним техническую подоплеку: в старых версиях платформы значение этого свойства по умолчанию (Ложь) могло вообще не записываться в XML-структуру формы. При открытии такой формы в среде 1С 8.3, платформа выполняет «тихую конвертацию». Она видит отсутствие тега и, согласно новой логике, принудительно прописывает его или интерпретирует значение иначе. В результате, с точки зрения механизма сравнения конфигураций, ваша текущая форма отличается от формы в поставке (CF-файле), так как в одной из них свойство явно задано, а в другой — нет. Для системы это выглядит как ручное вмешательство пользователя, что и снимает флажок автоматического удаления или обновления объекта.
Рассмотрим наиболее быстрый и эффективный способ «лечения» конфигурации, если она находится на поддержке с возможностью изменения. Этот метод позволяет сбросить все накопленные ошибки в метаданных форм.
.cf файлов необратимы.Конфигурация — Сохранить конфигурацию в файл.... Это нужно для того, чтобы сохранить ваши реальные доработки (новые справочники, документы или измененный код в модулях)..cf файл именно той версии, которая установлена сейчас (в примере это 2.0.66.23). Его можно взять из комплекта поставки или выгрузить из абсолютно пустой типовой базы той же версии через Конфигурация — Устройство конфигурации — Выгрузить конфигурацию поставщика в файл.Конфигурация — Загрузить конфигурацию из файла... и укажем чистый типовой .cf. Внимание: этот шаг временно удалит ваши изменения, но он полностью перезапишет структуру XML всех форм, приведя их к эталонному виду.Конфигурация — Сравнить, объединить с конфигурацией из файла, выбрав тот файл, который мы выгрузили в пункте 2. При объединении аккуратно перенесем только реально измененные объекты, не трогая формы, которые вызывают сомнения.Посмотрим на ситуацию с точки зрения правильной последовательности обновления. Часто ошибки «Прозрачного фона» возникают, когда база обновлялась «прыжками» или некорректно снималась с поддержки. Разберем алгоритм восстановления цепочки обновлений:
// Пример логики подготовки базы:
1. Загружаем конфигурацию поставщика (CF) текущей версии.
2. Устанавливаем режим "Полная поддержка" (замок на всех объектах).
3. Проверяем, что в окне "Сравнение/Объединение" с типовым CF нет расхождений.
4. Выполняем обновление на промежуточный (переходный) релиз, рекомендованный 1С.
Проанализируем шаги подробнее. Если база находится в режиме «Редактируется с сохранением поддержки», попробуйте временно вернуть её на полную поддержку (если ваши изменения позволяют это сделать, например, они вынесены в расширения или минимальны). Обновление БП 2.0 на БП 3.0 лучше всего проходит, когда конфигурация максимально близка к типовой. Поскольку в версии 3.0 используются только УправляемыеФормы, старые ОбычныеФормы из версии 2.0 будут просто удалены. Если система видит их как «измененные», она пытается их сохранить, что приводит к конфликтам со ссылочной целостностью новых объектов.
Если ручных изменений в базе много и метод с полной загрузкой .cf кажется слишком рискованным, попробуем изменить поведение самого механизма сравнения в 1С:Предприятии. Рассмотрим настройки окна сравнения:
Сравнение, объединение, нажмем кнопку Параметры.Разрешить проверку графических объектов или изменить режим сопоставления по умолчанию.Ложь и Истина для прозрачности работали более мягко, и только после выполнения объединения переход на актуальную версию 8.3.20+ .Выясним, почему формы «застревают» каскадом. В 1С объекты метаданных сильно связаны. Если отчет имеет пять форм, и одна из них помечена как измененная из-за свойства ПрозрачныйФон, система может не дать удалить весь отчет целиком. Это потянет за собой ошибки в интерфейсах (панелях навигации), которые ссылаются на этот отчет.
Рассмотрим практический совет: если вы видите, что форма «изменена», но при сравнении выводится только различие в цветах или прозрачности кнопок, смело используйте режим Взять из конфигурации поставщика. Поскольку вы переходите на БП 3.0, эти формы вам больше не понадобятся — в новой редакции весь интерфейс строится заново на управляемых формах, а старый код обычных форм не будет работать.
Подведем итог: наиболее надежный способ решить проблему — это привести конфигурацию к «заводскому» состоянию через Загрузить конфигурацию из файла, используя чистый .cf текущего релиза, и только после этого приступать к обновлению на редакцию 3.0. Это гарантирует, что никакие «фантомные» настройки прозрачности не помешают корректному удалению устаревших объектов.