Как обновить конфигурацию 1С, если в ней установлены расширения с новыми объектами и логикой

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет IT и автоматизация бизнеса
← На главную

Обновление типовой конфигурации 1С, такой как Управление торговлей 11, ERP или Бухгалтерия предприятия 3.0, само по себе является стандартной процедурой. Однако наличие расширений, особенно тех, которые добавляют собственные объекты метаданных (документы, справочники, регистры) или подменяют логику проведения через аннотацию &Вместо, накладывает определенные риски. В данной статье мы подробно разберем, как избежать потери данных и обеспечить стабильную работу системы после перехода на новый релиз.

Анализ структуры расширения перед обновлением

Прежде чем приступать к техническим действиям, проанализируем содержимое наших расширений. Важно разделить доработки на два типа:

  1. Изменение логики: использование аннотаций &Перед, &После или &Вместо для существующих процедур (например, в модуле объекта Документ.РеализацияТоваровУслуг).
  2. Добавление данных: создание в расширении новых объектов (документов, регистров сведений или накопления), которые хранят информацию в базе данных.

Важный момент: если ваше расширение содержит новые объекты данных, его ни в коем случае нельзя удалять или просто «деактивировать» без понимания последствий. Хотя платформа 1С старается сохранять таблицы расширений, некорректные манипуляции с уникальным идентификатором расширения могут привести к потере доступа к созданным документам и записям регистров.

Шаг 1: Подготовка и работа с копией

Рассмотрим золотое правило любого специалиста 1С: никогда не проводить обновление сразу на рабочей базе, если конфигурация имеет расширения с данными. Проанализируем стандартный алгоритм подготовки:

  1. Создадим полную копию информационной базы на тестовом сервере или в файловом варианте.
  2. Убедимся, что на копии присутствуют все расширения и они активны (отмечены «галкой» в списке расширений).
  3. Проверим текущий режим совместимости основной конфигурации и расширений.

Шаг 2: Процесс обновления основной конфигурации

Обновление основной конфигурации выполняется по типовой схеме. Разберем шаги:

  1. Запустим конфигуратор, откроем конфигурацию и выполним Поддержка -> Обновить конфигурацию.
  2. Выберем файл обновления (.cfu или .cf) и пройдем все этапы сопоставления объектов.
  3. После завершения сравнения и объединения нажмем F7 (Обновить конфигурацию базы данных).

На этом этапе платформа может выдать предупреждение о том, что расширения не могут быть применены. Это происходит, если в новом релизе изменились типы данных, имена процедур или режим совместимости, которые заимствованы в расширении.

Шаг 3: Проверка применимости расширений

Теперь выясним причину конфликтов, если они возникли. Перейдем в меню Конфигурация -> Расширения конфигурации. В открывшемся списке мы можем увидеть, что некоторые расширения подсвечены красным цветом или имеют статус «Не применяется».

Воспользуемся встроенным инструментом: выделим расширение и нажмем Проверить возможность применения. Платформа сформирует отчет, в котором укажет конкретные объекты или методы, вызвавшие проблему. Например:

Ошибка: метод "ОбработкаПроведения" объекта "Документ.РеализацияТоваровУслуг" имеет другой набор параметров в основной конфигурации.

Такая ситуация критична для аннотации &Вместо. Если 1С добавила в процедуру проведения новый параметр (например, ДополнительныеСвойства), ваша расширенная процедура со старым набором параметров просто не сработает, и документ перестанет проводиться.

Шаг 4: Адаптация кода в расширении

Проанализируем ситуацию с изменением сигнатур методов. Если мы обнаружили несоответствие, нам необходимо вручную скорректировать заголовки процедур в расширении. Рассмотрим пример кода:

Было в расширении:


&Вместо("ОбработкаПроведения")
Процедура Расш1_ОбработкаПроведения(Отказ, РежимПроведения)
    // Наша доработка
    ПродолжитьВызов(Отказ, РежимПроведения);
КонецПроцедуры

Стало в новом релизе (нужно исправить):


&Вместо("ОбработкаПроведения")
Процедура Расш1_ОбработкаПроведения(Отказ, РежимПроведения, ДополнительныйПараметрНовый)
    // Наша доработка
    ПродолжитьВызов(Отказ, РежимПроведения, ДополнительныйПараметрНовый);
КонецПроцедуры

Именно поэтому использование &Перед и &После считается более безопасным при обновлениях — они менее чувствительны к изменению внутренней логики типовых процедур, если только не меняется состав их параметров.

Шаг 5: Особенности Тестирования и Исправления (ТиИ)

Рассмотрим важный нюанс, упомянутый в обсуждении. При использовании расширений с данными выполнение ТиИ может преподнести сюрпризы. В старых версиях платформы (до 8.3.15) ТиИ игнорировало данные расширений, что могло привести к очистке ссылок в основной базе.

В современных версиях платформы при запуске Администрирование -> Тестирование и исправление обязательно убедитесь, что расширение подключено. Платформа теперь умеет проверять логическую целостность объектов расширения вместе с основной конфигурацией. Однако, если база имеет объем более 60 Гб и 100 активных пользователей, выполнять ТиИ следует только в регламентное окно, предварительно проверив результат на копии.

Рекомендации по долгосрочной поддержке

Для того чтобы каждое обновление не превращалось в «экстрим», придерживайтесь следующих правил:

Таким образом, обновление конфигурации с расширением не требует его обязательной деактивации. Напротив, для сохранения данных расширение должно оставаться в базе. Основная сложность заключается в ручной адаптации заимствованных процедур под изменившийся код типового решения. Следуя приведенному алгоритму, вы сможете успешно обновить УТ-11 или любую другую сложную систему без потери наработанного функционала.

← На главную