Разработка и Конфигурация · 12 мин
Как правильно обновлять изменённую конфигурацию 1С
Как обновить изменённую (доработанную) конфигурацию 1С без потери данных: сравнение и объединение, настройки поддержки, типичные ошибки и проверка результата.
Обновление изменённой конфигурации 1С — задача, с которой сталкивается почти каждая организация, доработавшая типовое решение под свои процессы. В отличие от обновления типовой конфигурации «на замке», здесь недостаточно нажать «Далее»: платформа должна объединить ваши доработки с изменениями поставщика, и на этом этапе легко потерять собственный код или получить неработоспособную базу.
Ключевой инструмент процесса — механизм «Сравнение и объединение конфигураций» в конфигураторе. Он показывает, какие объекты изменил поставщик, какие — вы, и позволяет управлять правилами объединения. Результат зависит от того, насколько аккуратно вы разметите эти изменения и проверите итоговую конфигурацию до обновления рабочей базы.
Материал рассчитан на администраторов и разработчиков 1С, которые выполняют обновление доработанных конфигураций «1С:Предприятие 8.3»: Управление торговлей, Бухгалтерия предприятия, Зарплата и управление персоналом и других. Все действия описаны для конфигуратора и предполагают наличие прав на изменение конфигурации.
Подготовка: резервная копия и тестовая база
Первое и непреложное правило: обновление изменённой конфигурации никогда не выполняется сразу на рабочей базе. Перед началом сделайте полную резервную копию. Для файловой базы достаточно скопировать файл 1Cv8.1CD при отсутствии активных сеансов либо выполнить выгрузку в dt через конфигуратор («Администрирование → Выгрузить информационную базу»). Для клиент-серверной базы надёжнее средство резервного копирования СУБД — например, штатный backup в MS SQL Server или PostgreSQL.
Разверните копию базы в тестовом контуре. Именно на ней выполняется вся процедура обновления, проверяется объединение и работоспособность. Только после успешного теста и согласования с пользователями те же действия повторяются на рабочей базе — в нерабочее время, с завершёнными сеансами и блокировкой входа.
Также убедитесь, что версия платформы соответствует требованиям нового релиза конфигурации. Информация о требуемой версии платформы указывается в файле поставки и в сопроводительной документации релиза. Если платформа устарела — сначала обновите её, иначе конфигурация может не загрузиться или работать с ошибками.
Как запустить обновление конфигурации поставщика
Откройте тестовую базу в конфигураторе и перейдите в меню «Конфигурация → Поддержка → Обновить конфигурацию». Если пункт недоступен, проверьте, что конфигурация находится на поддержке и у вас есть права на её изменение. Далее выберите источник обновления.
Для обновления на один релиз обычно выбирают «Поиск доступных обновлений» с указанием каталога, куда распакован дистрибутив, либо «Выбор файла обновления» — файл с расширением .cfu из поставки. Если нужно перескочить через несколько релизов или cfu-файл отсутствует, используйте полный файл конфигурации .cf из дистрибутива нового релиза: механизм сравнения и объединения отработает так же.
После выбора файла платформа загрузит конфигурацию поставщика и, если обнаружит, что текущая конфигурация изменена относительно предыдущей версии поставщика, автоматически предложит выполнить сравнение и объединение. Соглашайтесь — именно в этом окне решается судьба ваших доработок.
Сравнение и объединение: как не потерять доработки
Окно сравнения и объединения показывает дерево объектов с отметками о различиях. Объекты, изменённые только поставщиком, обычно помечаются к загрузке автоматически. Объекты, изменённые и вами, и поставщиком, требуют ручного решения — платформа подсвечивает их как конфликтные.
Для каждого конфликтного объекта доступны режимы объединения: «Взять из новой конфигурации поставщика», «Оставить текущий» и «Объединить с приоритетом». Третий вариант — основной рабочий инструмент: он переносит изменения поставщика, сохраняя ваши. Для модулей объединение выполняется построчно, и платформа показывает текстовое сравнение процедур и функций.
Работа с модулями
В текстовом сравнении модулей видно, какие процедуры изменил поставщик, а какие добавлены вами. Правило безопасной работы: свои доработки по возможности размещайте в отдельных процедурах и функциях с понятным префиксом (например, «Преф_») — тогда при объединении они не пересекаются с типовым кодом и переносятся без конфликтов. Если ваша правка встроена внутрь типовой процедуры, придётся вручную переносить фрагменты кода в новую версию процедуры.
Формы, макеты и роли
Формы объединяются сложнее всего: если поставщик переработал форму, а вы добавляли на неё элементы, объединение может дать непредсказуемый результат. Часто надёжнее взять форму поставщика и заново добавить свои элементы. Роли и права проверяйте отдельно: новые объекты поставщика могут не попасть в ваши доработанные роли, и пользователи получат ошибки доступа.
Настройка поддержки и объекты «не на замке»
Если конфигурация находится на поддержке с возможностью изменения, часть объектов может быть снята с поддержки полностью — такие объекты при обновлении не сравниваются с поставщиком и не обновляются. Это одновременно и защита, и ловушка: объект, снятый с поддержки, перестаёт получать исправления поставщика, и накопленные отличия со временем затрудняют обновление.
Перед объединением полезно получить отчёт о сравнении с предыдущей конфигурацией поставщика («Конфигурация → Сравнить конфигурации»), чтобы понять масштаб собственных доработок. Если доработки масштабные и выполнены без документирования, выделите время на инвентаризацию: список изменённых объектов существенно упростит разбор конфликтов.
Чем меньше объектов изменено «в лоб», тем дешевле обновления. По возможности выносите доработки в расширения конфигурации, внешние обработки и подключаемые механизмы БСП — тогда типовое обновление проходит почти как для конфигурации «на замке», а расширение требует лишь проверки совместимости.
Обновление конфигурации базы данных и обработчики
После объединения и сохранения конфигурации выполните «Обновить конфигурацию базы данных» (клавиша F7). Платформа покажет список реструктуризации — изменения в структуре таблиц. Внимательно просмотрите его: удаление реквизитов или измерений означает потерю данных в этих полях. Если в списке есть удаление объектов, убедитесь, что это не ваши доработки.
На больших базах реструктуризация и отложенные обработчики обновления могут выполняться долго. Многие типовые конфигурации выполняют часть обновления данных в отложенном режиме — фоновыми заданиями уже после запуска базы. До завершения отложенных обработчиков часть функциональности может быть недоступна, а пользователям лучше не работать с изменёнными данными. Ход выполнения обработчиков виден в разделе обновления версии программы в пользовательском режиме.
- 1Сделайте резервную копию и разверните тестовую базу
- 2Проверьте соответствие версии платформы требованиям релиза
- 3Запустите «Поддержка → Обновить конфигурацию» и выберите файл .cfu или .cf
- 4В окне сравнения и объединения разберите все конфликтные объекты
- 5Сохраните конфигурацию и выполните обновление конфигурации базы данных (F7)
- 6Запустите проверку конфигурации и тестирование ключевых сценариев
- 7Дождитесь завершения отложенных обработчиков обновления
- 8Повторите процедуру на рабочей базе в нерабочее время
Проверка результата после обновления
После объединения выполните «Конфигурация → Проверка конфигурации» с включённой проверкой логической целостности и ссылок. Ошибки компиляции модулей, битые ссылки на удалённые объекты и проблемы прав будут показаны в окне сообщений — устраните их до запуска пользователей.
Затем пройдите контрольные сценарии в пользовательском режиме: откройте основные документы, проведите тестовый документ каждого ключевого вида, сформируйте регламентные отчёты и проверьте работу доработанных механизмов. Особое внимание — тем местам, где были конфликты при объединении.
Как проверить результат
Нет ошибок компиляции модулей и ссылочной целостности
Ошибки в модулях, ссылки на несуществующие объекты
Собственные процедуры и формы работают как до обновления
Доработки исчезли или выдают ошибки
Все обработчики завершены без ошибок
Обработчики зависли или завершились с ошибками
Пользователи открывают нужные документы и отчёты
Ошибки «Нарушение прав доступа» на новых объектах
Типичные проблемы и их решение
Если после обновления база не запускается в пользовательском режиме с ошибкой в модуле — вернитесь в конфигуратор, найдите ошибку через проверку конфигурации и исправьте код. Чаще всего причина в том, что доработка ссылается на переименованный или удалённый поставщиком объект.
Если обработчики обновления завершились с ошибками, изучите текст ошибки в журнале регистрации и в разделе результатов обновления. Часто помогает повторный запуск отложенного обновления после устранения причины. Если ситуация неразрешима — восстановите базу из резервной копии и повторите процедуру с учётом найденной проблемы. Именно для этого и нужна копия.
Как выбрать действие
Частые вопросы по обновлению изменённой конфигурации
Можно ли обновить изменённую конфигурацию автоматически через интернет-обновление?
Автоматическое обновление из пользовательского режима ориентировано на типовые конфигурации без доработок. Для изменённой конфигурации корректный путь — ручное обновление через конфигуратор с разбором сравнения и объединения. Автоматический режим может либо отказаться обновлять изменённую конфигурацию, либо затереть доработки.
Что произойдёт с доработками, если выбрать «Взять из конфигурации поставщика»?
Объект будет полностью заменён версией поставщика, и ваши изменения в нём пропадут. Этот режим уместен только для объектов, которые вы точно не изменяли, либо когда решено отказаться от доработки в пользу типового механизма.
Чем расширение конфигурации лучше прямых доработок?
Расширение накладывается поверх типовой конфигурации и не меняет её саму, поэтому обновление проходит почти как для типовой. После обновления достаточно проверить совместимость расширения с новым релизом. Ограничение: не любую доработку можно реализовать расширением — например, изменение структуры данных имеет ограничения.
Сколько времени занимает обновление доработанной конфигурации?
Зависит от объёма доработок и размера базы. При небольшом числе конфликтов само объединение занимает от получаса до нескольких часов, но реструктуризация и отложенные обработчики на крупных базах могут идти значительно дольше. Закладывайте время на тестирование — обычно это самая длительная часть.
Что делать, если после объединения конфигурация не сохраняется из-за ошибок?
Откройте окно сообщений и разберите каждую ошибку: чаще всего это ссылки на объекты, которые не были загружены при объединении, или конфликты в модулях. Установите для недостающих объектов правильный режим объединения и повторите. Не пытайтесь сохранять конфигурацию с ошибками «как есть» — база может стать неработоспособной.
Нужно ли обновлять платформу перед обновлением конфигурации?
Да, если новый релиз конфигурации требует более свежую версию платформы. Требования указаны в сопроводительной документации к релизу. Сначала обновите платформу на всех серверах и клиентах, проверьте запуск текущей конфигурации, и только затем обновляйте саму конфигурацию.
Что важно запомнить
Обновление изменённой конфигурации — это всегда резервная копия, тестовая база, аккуратное сравнение и объединение с ручным разбором конфликтов, проверка конфигурации и контроль отложенных обработчиков. Чем больше доработок вынесено в расширения, тем проще каждое следующее обновление.