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

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

Обновление нетиповой конфигурации 1С — это задача, которая часто вызывает множество вопросов и опасений у пользователей и даже опытных специалистов. Если ваша конфигурация была доработана под специфические нужды вашего бизнеса, простое нажатие кнопки "Обновить" может привести к потере ценных изменений или некорректной работе системы. В этом руководстве мы вместе разберем, как подойти к этому процессу максимально безопасно и эффективно, сохраняя при этом все необходимые доработки.

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

Подготовка к обновлению: Фундамент успешного процесса

Прежде чем приступить к каким-либо действиям по обновлению, крайне важно провести тщательную подготовку. Этот этап является залогом успеха и позволяет избежать множества проблем в будущем.

  1. Создаем полную резервную копию информационной базы. Это самый ключевой и обязательный шаг. Никогда не начинайте обновление без актуальной резервной копии. В случае возникновения любых непредвиденных ситуаций, вы всегда сможете вернуться к исходному состоянию.
  2. Проводим тщательный анализ доработок. Мы выясним, какие именно изменения были внесены в типовую конфигурацию, как они влияют на бизнес-процессы и, самое главное, какие из них действительно используются. Часто до 90% старых доработок оказываются ненужными или устаревшими. Это позволит нам сосредоточиться только на актуальных изменениях.
  3. Документируем все изменения. Если у вас еще нет подробной документации по вашим доработкам, самое время ее создать. Описание всех нетиповых функций, алгоритмов и объектов поможет нам не только при текущем обновлении, но и при дальнейшем сопровождении системы.
  4. Подготавливаем необходимые файлы. Для процесса обновления нам понадобятся следующие файлы конфигураций:
    • Ваша текущая измененная (рабочая) конфигурация.
    • Типовая конфигурация версии, на которой вы находитесь (старая типовая).
    • Типовая конфигурация новой версии, на которую вы планируете обновиться, или файлы обновления .cfu для перехода на нее.
  5. Проверяем поддержку конфигурации. Убедимся, что ваша конфигурация стоит на поддержке. Если она была снята с поддержки, сначала необходимо поставить ее на поддержку старой типовой конфигурации.

Методологии обновления нетиповой конфигурации

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

1. Обновление через конфигуратор: Стандартный подход с нюансами

Обычно обновление информационной базы 1С выполняется через меню "Конфигурация > Поддержка > Обновить конфигурацию…". Этот метод предпочтителен, так как он корректно обрабатывает все внутренние механизмы обновления 1С. Однако для нетиповых конфигураций здесь есть важные особенности.

Последовательность обновления:

Фирма "1С" традиционно рекомендует выполнять обновление конфигурации последовательно, "прыгая" через несколько релизов только с помощью файлов .cfu, предназначенных для этого. Однако, в некоторых случаях, мы можем обновиться одним прыжком на полную конфигурацию поставщика (файл .cf) конечного целевого релиза. Этот подход может быть значительно быстрее, но имеет свои ограничения:

  1. Обязательное обновление между LTS-версиями. Вне зависимости от метода, мы должны обязательно проходить через так называемые LTS-версии (Long Term Support). Это критические точки, на которых происходит существенные изменения в структуре данных и функционале, и их нельзя пропускать. Мы всегда должны проверять список таких версий для вашей конфигурации на портале 1С:ИТС.
  2. Выбор стабильной сборки. В каждой версии рекомендуется брать последнюю сборку, так как она максимально стабильна и содержит исправления предыдущих ошибок.

Пример последовательности LTS-версий для УТ 11 (в качестве иллюстрации):

  1. С версии 11.4.*.* -> 11.4.12.* (рекомендуемая сборка 11.4.12.109)
  2. 11.4.12.109 -> 11.4.14.* (рекомендуемая сборка 11.4.14.181)
  3. 11.4.14.181 -> 11.5.8.* (рекомендуемая сборка 11.5.8.443)
  4. 11.5.8.443 -> 11.5.12.* (рекомендуемая крайняя сборка 11.5.12.270)
  5. 11.5.12.270 -> 11.5.17.* (рекомендуемая крайняя сборка 11.5.17.219)
  6. 11.5.17.219 -> 11.5.22.* (рекомендуется брать последнюю опубликованную на текущий момент)

Помните, что использование "Сравнить, объединить с конфигурацией из файла…" напрямую для обновления основной конфигурации не рекомендуется, так как это может нарушить механизм поддержки и создать проблемы при последующих обновлениях.

2. Трехстороннее сравнение и объединение: Для сильно доработанных конфигураций

Этот метод является основным для конфигураций с большим количеством нетиповых доработок. Он позволяет нам сравнить вашу текущую рабочую конфигурацию с двумя типовыми версиями – старой (до обновления) и новой (после обновления) – и аккуратно перенести только те изменения, которые необходимы.

Инструменты для трехстороннего сравнения:

Для выполнения трехстороннего сравнения мы можем использовать внешние программы, такие как Perforce P4Merge. Эти инструменты предоставляют удобный графический интерфейс для анализа различий и их слияния. Хотя они часто упоминаются в контексте 1С:Enterprise Development Tools (EDT), они прекрасно работают и с обычным конфигуратором.

Разберем процесс по шагам для различных объектов:

  1. Модули.

    Все "дважды измененные" (то есть измененные как вами, так и поставщиком) модули мы сравниваем через встроенный в конфигуратор инструмент сравнения (часто называемый "шестеренкой" или "сравнить/объединить").

    • Если ваш корпоративный код четко регламентирован комментариями, названием функций и переменных, то процесс будет проще, хотя и трудоемкий.
    • Будьте готовы к тому, что ваш код может использовать типовую функцию, которую 1С удалила или переименовала. В таких случаях нам придется адаптировать ваш код под новые реалии.
    • Хуже, если 1С меняет некие концепции работы – тогда потребуется более глубокое вмешательство, возможно, с помощью опытного программиста.
  2. Формы.

    Все "дважды измененные" формы мы выписываем в отдельный список (например, в Excel) для последующего тестирования. Затем мы сравниваем их и принимаем решение по каждому изменению. Если форм и визуальных изменений в них много, это может быть очень трудоемко.

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

  3. Макеты.

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

  4. Характеристики.

    Не забываем про "Характеристики" справочников, документов и планов видов характеристик (ПВХ). Иногда после обновления они могут сбиваться или некорректно переноситься, что требует дополнительной проверки и, возможно, ручной корректировки.

3. Перенос доработок в расширения: Современный и рекомендованный подход

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

Разберем процесс создания и использования расширения:

  1. Создаем новое расширение конфигурации. В конфигураторе мы создаем новое расширение, задаем ему имя и указываем, что оно активно и предназначено для адаптации.
  2. Переносим необходимые объекты. Из вашей текущей измененной конфигурации мы переносим в расширение только те объекты (модули, формы, реквизиты, отчеты и т.д.), которые содержат ваши доработки.
  3. Используем аннотации для кода. При переносе кода в расширение мы активно используем специальные аннотации, которые позволяют встраивать ваш код в типовые процедуры и функции без их изменения:
    • &Перед — Ваш код выполнится до типового кода в той же процедуре/функции.
    • &После — Ваш код выполнится после типового кода.
    • &Вместо — Ваш код полностью заменяет типовой код (использовать с особой осторожностью, так как это может привести к несовместимости при типовых изменениях).
    • &ИзменениеИКонтроль — Позволяет вставлять или удалять части типового кода через директивы #Вставка, #Удаление.

    Мы стремимся использовать &Перед и &После для облегчения сопровождения, так как они наименее инвазивны.

    Пример использования аннотации &После:

    
    &После("ПриЗаписи")
    Процедура ПриЗаписиРасширениеПосле(Отказ)
        // Здесь мы добавляем свой код, который выполнится после типовой процедуры ПриЗаписи
        МойДополнительныйКод();
    КонецПроцедуры
    
  4. Перенос данных. Если в расширение добавляются новые объекты, реквизиты или изменяется структура хранения данных, нам может потребоваться специальная обработка для переноса существующих данных из старых структур в новые.

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

Системы контроля версий

Для эффективной работы с нетиповыми конфигурациями и их обновлениями, мы настоятельно рекомендуем использовать системы контроля версий.

Тестирование и устранение ошибок

После завершения процесса обновления, обязательно проводим всестороннее тестирование.

  1. Тестирование на копии. Всегда устанавливаем обновленную конфигурацию на копию рабочей базы и тщательно тестируем весь функционал. Мы проверяем корректность обновления данных, работу всех доработок, основных бизнес-процессов и отчетов.
  2. Распространенные ошибки:
    • Отсутствие резервной копии: Самая распространенная и серьезная ошибка, которую мы уже обсудили.
    • Потеря доработок: Возникает, если нетиповую конфигурацию обновляют как типовую без предварительного анализа и переноса изменений.
    • Непоследовательное обновление: Может привести к потере данных или ошибке "формата потока".
    • Ошибка SDBL: Одна из сложностей при обновлении доработанных конфигураций, часто связанная с некорректными изменениями в структуре базы данных.
    • "Предопределенный элемент отсутствует в данных": Означает, что предопределенный элемент описан в конфигурации, но по какой-то причине отсутствует в информационной базе. Требует ручной корректировки или восстановления.
    • "Ошибка формата потока": Часто является следствием непоследовательного обновления или повреждения кэша. Для исправления может потребоваться очистка кэша или тестирование и исправление базы данных (chdbfl.exe).
  3. Мониторинг. Внедряем простые механизмы сбора ошибок (журналы, оповещения) и оперативно исправляем критические баги, выявленные после обновления.

Когда лучше пригласить программиста 1С?

Мы выяснили, что обновление нетиповой конфигурации — это сложный и ответственный процесс. Если у вас нет достаточного опыта, времени или если доработки вашей конфигурации очень глубоки и затрагивают концептуальные изменения, лучше пригласить опытного программиста 1С. Специалист сможет провести аудит доработок, выбрать оптимальную стратегию обновления и гарантировать корректный перенос всех изменений, минимизируя риски для вашей информационной базы.

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

← К списку