В практике обслуживания баз данных 1С нередко встречается ситуация, когда в свойствах основной конфигурации указан актуальный релиз (например, 2.0.66.33), а в окне настройки поддержки конфигурация поставщика застряла на значительно более старой версии (например, 2.0.40.9). При попытке сравнить текущую базу с типовым файлом поставки cf того же релиза открывается огромное дерево различий, хотя со слов заказчика изменения вносились минимальные. Разберем причины возникновения такой проблемы, выясним, как найти реальные доработки и как корректно вернуть базу на правильную поддержку без потери данных.
Проанализируем механику работы механизма поддержки в платформе 1С:Предприятие 8. В информационной базе хранятся три состояния метаданных: основная конфигурация (с которой работают пользователи), конфигурация базы данных (структура таблиц в СУБД) и конфигурация поставщика (эталонная типовая версия от разработчика конфигурации).
Рассинхронизация версий возникает в следующих случаях:
cf. В этом случае основная конфигурация получила новые объекты и номер релиза, но конфигурация поставщика осталась старой.Когда конфигурация поставщика сильно отстает от текущей версии, прямое сравнение основной конфигурации с конфигурацией поставщика показывает тысячи различий, связанных с развитием типового решения вендором. Чтобы отфильтровать типовой код от правок пользователя, применим следующий порядок действий:
cf в точности той версии, которая указана в свойствах текущей конфигурации (в нашем примере — 2.0.66.33).cf.Посмотрим на пример локализации изменений. Зачастую в отчете о сравнении среди добавленных типовых объектов находится всего один скорректированный модуль. Например, в общем модуле ОбщийМодуль.ПрефиксацияОбъектовКлиентСервер может быть добавлена кастомная строка управления префиксами:
// Пример пользовательской доработки в типовом модуле
УдалитьПрефиксИнформационнойБазы = Истина;
Зафиксируем все найденные индивидуальные доработки во внешнем файле или шпаргалке, чтобы не потерять их при перестроении конфигурации поставщика.
Разберем по шагам правильный алгоритм приведения структуры поддержки к эталонному состоянию.
cf версии 2.0.66.33. На вопрос системы о постановке на поддержку ответим утвердительно.ПрефиксацияОбъектовКлиентСервер), устанавливаем правило «Редактируется с сохранением поддержки», для остальных — «Не редактируется».Рассмотрим важную техническую деталь: если обновление выполнялось «скачком» через несколько десятков релизов, в режиме «1С:Предприятие» могли не выполниться процедуры реструктуризации данных и заполнения новых служебных регистров сведений (например, регистра ВерсииПодсистем библиотеки стандартных подсистем).
Чтобы инициировать корректное выполнение процедур обновления данных:
/C ЗапуститьОбновлениеИнформационнойБазыЧтобы упростить последующие обновления, проанализируем возможность выноса доработок за пределы типового кода. Если изменения касаются генерации номеров, префиксов или заполнения реквизитов, предпочтительно использовать подписки на события (например, событие ПриУстановкеНовогоНомера или ПередЗаписью) либо механизмы расширений конфигурации и дополнительных отчетов и обработок. Это позволяет оставить основную конфигурацию на полной поддержке без редактирования типовых модулей.