Обновление измененных (нетиповых) конфигураций 1С — это всегда ответственный процесс, требующий повышенного внимания. Довольно часто разработчики сталкиваются с ситуацией, когда при обновлении «1С:Бухгалтерия предприятия» (БП) возникают ошибки логической целостности и появляются неразрешимые ссылки на различные объекты: удаленные подсистемы, элементы стиля, общие картинки или формы.
Такая проблема возникает из-за того, что фирма «1С» в новых релизах оптимизирует код и удаляет устаревшие объекты. Если в вашей доработанной конфигурации остались ссылки на эти элементы, простое снятие галочек в окне сравнения-объединения не решит проблему. Платформа обнаружит нарушение структуры метаданных и заблокирует сохранение конфигурации (кнопка F7 будет недоступна или вернет ошибку). В этой статье мы подробно разберем, как локализовать и устранить эти ошибки, а также рассмотрим передовые методики безопасного обновления.
Прежде чем приступать к удалению или изменению объектов, нам необходимо точно выяснить, какие элементы нашей информационной базы ссылаются на несуществующие объекты поставщика. Для этого мы воспользуемся встроенным механизмом проверки платформы.
Выполним следующие действия в режиме «Конфигуратор»:
В результате платформа сформирует подробный отчет в окне «Служебные сообщения». Мы увидим точные пути к проблемным местам. Например, запись вида Документ.ПланЗакупок.Форма.ФормаДокумента.Форма: Неразрешимые ссылки на картинки (1) указывает на то, что конкретная форма документа ссылается на графический объект, удаленный поставщиком.
При переходе на новые релизы БП 3.0 разработчики часто убирают устаревшие логотипы сервисов, старые иконки действий или меняют палитру оформления. Чтобы восстановить целостность, выполним детальную очистку:
Исправление через редактор форм: Если отчет проверки указывает на конкретную форму, откроем ее в конфигураторе. Проанализируем свойства элементов управления (кнопок, декораций, групп). Особое внимание уделим свойствам «Картинка», «Цвет рамки», «Шрифт», «Цвет фона» или «Картинка кнопки». Если там отображается пустая ссылка или устаревшее имя объекта, сбросим это свойство в значение «Авто» или выберем новый актуальный аналог из библиотеки поставщика.
Поиск «невидимых» GUID в XML-файлах: Иногда визуально в свойствах формы битую ссылку обнаружить не удается. В таком случае мы можем прибегнуть к текстовому анализу метаданных. Выгрузим конфигурацию в файлы, после чего откроем полученную папку в любом продвинутом текстовом редакторе (например, VS Code). Запустим глобальный поиск по имени удаленного объекта или его уникальному идентификатору (GUID). Найденный фрагмент в XML-описании формы будет выглядеть примерно так:
<PictureDepiction>
<Name>ОбщаяКартинка.БухфонСтарый</Name>
<Ref GUID="8fa51cb3-698f-4da3-9f8d-4cb5038b3684"/>
</PictureDepiction>
Аккуратно удалим некорректный узел или заменим его на стандартное значение, сохраним файл и загрузим конфигурацию обратно из файлов в базу данных.
При масштабных обновлениях «1С:Бухгалтерии» разработчики часто реорганизуют структуру подсистем. Если наши доработки привязаны к удаляемым подсистемам поставщика, возникнет конфликт.
Для исправления этой ситуации проанализируем свойства наших измененных или добавленных подсистем. Откроем окно свойств подсистемы и перейдем по кнопке «Состав». В открывшемся списке снимем флажки с тех объектов, которые больше не поставляются разработчиком решения.
Отдельно отметим известную проблему БП 3.0, связанную с интеграционными подсистемами (например, ЭлектронноеВзаимодействие). Ссылка на удаляемый объект (допустим, ИнтеграцияСЯндексКассой) может находиться в разделе «Справочная информация» самой подсистемы. Чтобы решить эту проблему, нам потребуется открыть окно редактирования справочной информации этой подсистемы, полностью очистить оттуда текст или HTML-код и сохранить изменения.
Если в вашей конфигурации сделано очень много доработок и вы опасаетесь случайно стереть важный функционал, применим проверенную методику двойного сравнения-объединения. Этот способ позволяет полностью очистить базу от «мусорных» связей и при этом гарантированно сохранить ваши изменения.
Разберем этот алгоритм по шагам:
work.cf.F7). На этом шаге платформа принудительно очистит базу от всех устаревших «хвостов» предыдущих версий.work.cf (меню «Конфигурация» — «Сравнить, объединить с конфигурацией из файла...»).Наиболее современным и методологически верным решением проблемы постоянных конфликтов при обновлении является вынос всех кастомных доработок в расширения конфигурации. Это позволяет вернуть основную конфигурацию к полностью типовому виду, что значительно упростит процесс последующих обновлений.
При переносе объектов в расширение важно помнить, что неразрешимые ссылки могут возникнуть уже внутри самого расширения, если заимствованные объекты были удалены или переименованы поставщиком в основной конфигурации. В таком случае нам потребуется:
Таким образом, сочетание своевременной проверки логической целостности, очистки устаревших свойств оформления и постепенного перехода на механизм расширений позволит вам сделать процесс обновления нетиповой конфигурации «1С:Бухгалтерия» быстрым, предсказуемым и безопасным.