Как обновить нетиповую конфигурацию 1С:УПП 1.3 и сохранить все доработки

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

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

Метод 1. Выявление доработок через сравнение с типовой конфигурацией

Прежде чем приступать к обновлению, проанализируем текущее состояние нашей базы. Рассмотрим ситуацию, когда у нас есть доработанная конфигурация версии 1.3.106.1, которую нужно обновить до 1.3.111.1. Первый шаг — понять, что именно было изменено программистами ранее.

  1. Возьмем чистую типовую конфигурацию (файл .cf) того же релиза, на котором сейчас находится наша рабочая база (в данном примере — 1.3.106.1).
  2. В конфигураторе нашей доработанной базы выполним команду Конфигурация — Сравнить, объединить с конфигурацией из файла, выбрав типовой файл .cf.
  3. В открывшемся окне сравнения мы увидим все отличия. Объекты, помеченные значками, отличными от стандартных, — это и есть наши доработки.

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

Метод 2. Использование внешних утилит сравнения (KDiff3)

Стандартный механизм сравнения в 1С не всегда удобен при анализе больших программных модулей. Для повышения эффективности работы воспользуемся внешней утилитой KDiff3. Она позволяет выполнять так называемое «трехстороннее сравнение» (Three-way merge), что значительно ускоряет процесс слияния кода.

Для настройки выполним следующие действия:

  1. Установим KDiff3 на рабочий компьютер.
  2. В конфигураторе 1С перейдем в меню Сервис — Параметры — Сравнение/объединение.
  3. Укажем путь к исполняемому файлу внешней программы для сравнения текстов.

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

Метод 3. Обновление через настройку поддержки

Наиболее правильный путь обновления нетиповой конфигурации — использование механизма поддержки. Разберем этот процесс подробнее:

  1. Зайдем в меню Конфигурация — Поддержка — Обновить конфигурацию.
  2. Выберем файл обновления (.cfu) или полный дистрибутив нового релиза (.cf).
  3. После анализа изменений откроется окно «Основная конфигурация — Конфигурация поставщика».

Здесь кроется самый важный момент. Нам нужно обратить внимание на объекты с пометкой «Дважды изменен». Это те объекты, которые были доработаны вами и одновременно изменились в новом релизе от 1С. Выясним причину каждого изменения. Если 1С добавила новую функциональность в процедуру ПередЗаписью, а у вас там стоит проверка заполнения, нам необходимо совместить оба фрагмента кода.

Пример совмещения кода в модуле объекта:


// Было в типовой 106.1:
Процедура ПередЗаписью(Отказ)
    // Типовой код
КонецПроцедуры

// Стало в вашей 106.1:
Процедура ПередЗаписью(Отказ)
    // Типовой код
    Если Не ЗначениеЗаполнено(Ответственный) Тогда
        Отказ = Истина;
    КонецЕсли;
КонецПроцедуры

// В релизе 111.1 от 1С добавилось:
Процедура ПередЗаписью(Отказ)
    // Типовой код
    РаботаСДоговорами.ПроверитьДоговор(ЭтотОбъект); // Новое от 1С
КонецПроцедуры

В результате объединения мы должны получить структуру, сохраняющую обе логики:


Процедура ПередЗаписью(Отказ)
    // Типовой код
    РаботаСДоговорами.ПроверитьДоговор(ЭтотОбъект); // Сохраняем новое от 1С
    // Наши доработки
    Если Не ЗначениеЗаполнено(Ответственный) Тогда
        Отказ = Истина;
    КонецЕсли;
КонецПроцедуры

Особенности работы с формами в УПП

Поскольку УПП 1.3 использует обычные формы, автоматическое объединение визуальных элементов часто работает некорректно. Рассмотрим рекомендации по сохранению элементов форм:

  1. Если форма была сильно переработана визуально (изменены привязки, добавлены десятки кнопок), при сравнении лучше оставить «Вариант из файла» (вашу версию), но затем вручную перенести в неё новые реквизиты или кнопки, которые появились в типовом релизе.
  2. Используйте режим «Сравнить по свойствам». В окне объединения кликните правой кнопкой мыши по форме и выберите этот пункт. Это поможет увидеть, какие именно свойства (размер, шрифт, видимость) изменились.
  3. Если доработка формы заключалась только в добавлении одной кнопки, проще принять типовую форму и после обновления снова добавить эту кнопку вручную.

Рекомендации по снижению потерь при обновлении

Для того чтобы процесс прошел максимально гладко, применим дополнительные инструменты и методики:

  1. Сценарное тестирование. Проверим ключевые цепочки бизнес-процессов (например, от Заказа покупателя до Реализации и Закрытия месяца) на копии базы до и после обновления. Если движения по регистрам совпадают — обновление прошло успешно.
  2. Вынос кода в подписки на события. Проанализируем наши доработки. Если мы вносили изменения в модули объектов (документов, справочников), попробуем перенести эту логику в ПодпискиНаСобытия. Это позволит в будущем обновлять модули объектов как полностью типовые, не опасаясь за сохранность своего кода.
  3. Использование расширений. Несмотря на то что УПП — старая конфигурация, при использовании платформы 8.3 мы можем задействовать механизм расширений для добавления новых реквизитов или перехвата процедур (через &Вместо, &После). Это самый современный и безопасный способ кастомизации.
  4. Тестирование и исправление. После завершения объединения обязательно выполним Проверку конфигурации (меню Конфигурация — Проверка конфигурации) с установленной галочкой «Логическая целостность». Это позволит выявить обращения к удаленным методам или реквизитам.

Подведем итог. Процесс обновления нетиповой УПП требует терпения. Посмотрим на него как на последовательность: Аудит — Сравнение — Слияние — Тестирование. Никогда не пренебрегайте созданием резервных копий на каждом этапе, особенно перед нажатием кнопки «Выполнить» в окне объединения конфигураций.

← На главную