К статье
Практический материал

Разработка и Конфигурация · 12 мин

Как правильно обновлять изменённую конфигурацию 1С

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

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

Ключевой инструмент процесса — механизм «Сравнение и объединение конфигураций» в конфигураторе. Он показывает, какие объекты изменил поставщик, какие — вы, и позволяет управлять правилами объединения. Результат зависит от того, насколько аккуратно вы разметите эти изменения и проверите итоговую конфигурацию до обновления рабочей базы.

Материал рассчитан на администраторов и разработчиков 1С, которые выполняют обновление доработанных конфигураций «1С:Предприятие 8.3»: Управление торговлей, Бухгалтерия предприятия, Зарплата и управление персоналом и других. Все действия описаны для конфигуратора и предполагают наличие прав на изменение конфигурации.

Подготовка: резервная копия и тестовая база

Первое и непреложное правило: обновление изменённой конфигурации никогда не выполняется сразу на рабочей базе. Перед началом сделайте полную резервную копию. Для файловой базы достаточно скопировать файл 1Cv8.1CD при отсутствии активных сеансов либо выполнить выгрузку в dt через конфигуратор («Администрирование → Выгрузить информационную базу»). Для клиент-серверной базы надёжнее средство резервного копирования СУБД — например, штатный backup в MS SQL Server или PostgreSQL.

Разверните копию базы в тестовом контуре. Именно на ней выполняется вся процедура обновления, проверяется объединение и работоспособность. Только после успешного теста и согласования с пользователями те же действия повторяются на рабочей базе — в нерабочее время, с завершёнными сеансами и блокировкой входа.

Также убедитесь, что версия платформы соответствует требованиям нового релиза конфигурации. Информация о требуемой версии платформы указывается в файле поставки и в сопроводительной документации релиза. Если платформа устарела — сначала обновите её, иначе конфигурация может не загрузиться или работать с ошибками.

Как запустить обновление конфигурации поставщика

Откройте тестовую базу в конфигураторе и перейдите в меню «Конфигурация → Поддержка → Обновить конфигурацию». Если пункт недоступен, проверьте, что конфигурация находится на поддержке и у вас есть права на её изменение. Далее выберите источник обновления.

Для обновления на один релиз обычно выбирают «Поиск доступных обновлений» с указанием каталога, куда распакован дистрибутив, либо «Выбор файла обновления» — файл с расширением .cfu из поставки. Если нужно перескочить через несколько релизов или cfu-файл отсутствует, используйте полный файл конфигурации .cf из дистрибутива нового релиза: механизм сравнения и объединения отработает так же.

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

Сравнение и объединение: как не потерять доработки

Окно сравнения и объединения показывает дерево объектов с отметками о различиях. Объекты, изменённые только поставщиком, обычно помечаются к загрузке автоматически. Объекты, изменённые и вами, и поставщиком, требуют ручного решения — платформа подсвечивает их как конфликтные.

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

Работа с модулями

В текстовом сравнении модулей видно, какие процедуры изменил поставщик, а какие добавлены вами. Правило безопасной работы: свои доработки по возможности размещайте в отдельных процедурах и функциях с понятным префиксом (например, «Преф_») — тогда при объединении они не пересекаются с типовым кодом и переносятся без конфликтов. Если ваша правка встроена внутрь типовой процедуры, придётся вручную переносить фрагменты кода в новую версию процедуры.

Формы, макеты и роли

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

Типичные ошибки
01
Нажать «Выполнить» не разбирая конфликтные объекты — доработки затираются типовым кодом
02
Объединять формы автоматически — получается форма с дублирующимися или потерянными элементами
03
Забыть про роли — новые объекты поставщика недоступны пользователям
04
Обновляться сразу на рабочей базе без теста — ошибки обнаруживаются уже в учёте

Настройка поддержки и объекты «не на замке»

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

Перед объединением полезно получить отчёт о сравнении с предыдущей конфигурацией поставщика («Конфигурация → Сравнить конфигурации»), чтобы понять масштаб собственных доработок. Если доработки масштабные и выполнены без документирования, выделите время на инвентаризацию: список изменённых объектов существенно упростит разбор конфликтов.

Чем меньше объектов изменено «в лоб», тем дешевле обновления. По возможности выносите доработки в расширения конфигурации, внешние обработки и подключаемые механизмы БСП — тогда типовое обновление проходит почти как для конфигурации «на замке», а расширение требует лишь проверки совместимости.
ПЗ
Практическое замечание

Обновление конфигурации базы данных и обработчики

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

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

Порядок действий
  1. 1
    Сделайте резервную копию и разверните тестовую базу
  2. 2
    Проверьте соответствие версии платформы требованиям релиза
  3. 3
    Запустите «Поддержка → Обновить конфигурацию» и выберите файл .cfu или .cf
  4. 4
    В окне сравнения и объединения разберите все конфликтные объекты
  5. 5
    Сохраните конфигурацию и выполните обновление конфигурации базы данных (F7)
  6. 6
    Запустите проверку конфигурации и тестирование ключевых сценариев
  7. 7
    Дождитесь завершения отложенных обработчиков обновления
  8. 8
    Повторите процедуру на рабочей базе в нерабочее время

Проверка результата после обновления

После объединения выполните «Конфигурация → Проверка конфигурации» с включённой проверкой логической целостности и ссылок. Ошибки компиляции модулей, битые ссылки на удалённые объекты и проблемы прав будут показаны в окне сообщений — устраните их до запуска пользователей.

Затем пройдите контрольные сценарии в пользовательском режиме: откройте основные документы, проведите тестовый документ каждого ключевого вида, сформируйте регламентные отчёты и проверьте работу доработанных механизмов. Особое внимание — тем местам, где были конфликты при объединении.

Контрольные точки

Как проверить результат

Проверка конфигурации в конфигураторе
Норма

Нет ошибок компиляции модулей и ссылочной целостности

Тревожный признак

Ошибки в модулях, ссылки на несуществующие объекты

Работа доработанных механизмов
Норма

Собственные процедуры и формы работают как до обновления

Тревожный признак

Доработки исчезли или выдают ошибки

Отложенные обработчики обновления
Норма

Все обработчики завершены без ошибок

Тревожный признак

Обработчики зависли или завершились с ошибками

Права пользователей
Норма

Пользователи открывают нужные документы и отчёты

Тревожный признак

Ошибки «Нарушение прав доступа» на новых объектах

Типичные проблемы и их решение

Если после обновления база не запускается в пользовательском режиме с ошибкой в модуле — вернитесь в конфигуратор, найдите ошибку через проверку конфигурации и исправьте код. Чаще всего причина в том, что доработка ссылается на переименованный или удалённый поставщиком объект.

Если обработчики обновления завершились с ошибками, изучите текст ошибки в журнале регистрации и в разделе результатов обновления. Часто помогает повторный запуск отложенного обновления после устранения причины. Если ситуация неразрешима — восстановите базу из резервной копии и повторите процедуру с учётом найденной проблемы. Именно для этого и нужна копия.

Маршрут решения

Как выбрать действие

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

Частые вопросы по обновлению изменённой конфигурации

Можно ли обновить изменённую конфигурацию автоматически через интернет-обновление?

Автоматическое обновление из пользовательского режима ориентировано на типовые конфигурации без доработок. Для изменённой конфигурации корректный путь — ручное обновление через конфигуратор с разбором сравнения и объединения. Автоматический режим может либо отказаться обновлять изменённую конфигурацию, либо затереть доработки.

Что произойдёт с доработками, если выбрать «Взять из конфигурации поставщика»?

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

Чем расширение конфигурации лучше прямых доработок?

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

Сколько времени занимает обновление доработанной конфигурации?

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

Что делать, если после объединения конфигурация не сохраняется из-за ошибок?

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

Нужно ли обновлять платформу перед обновлением конфигурации?

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

Итог

Что важно запомнить

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