Как правильно обновить измененную типовую конфигурацию 1С и избежать ошибок обновления данных?

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

Обновление доработанной (измененной) типовой конфигурации 1С — одна из самых частых и ответственных задач разработчика и администратора. Некорректный перенос доработок или неправильный выбор способа обновления может привести к потере пользовательских изменений, сбоям в алгоритмах Библиотеки стандартных подсистем (БСП) и неполному заполнению служебных регистров сведений.

Рассмотрим по шагам, как правильно выполнять обновление измененной базы, почему при переносе файла .cf из файловой копии в клиент-серверный (SQL) вариант могут возникать ошибки заполнения данных и какие правила следует соблюдать для сохранения стабильности базы.

Основные причины сбоев при обновлении данных на SQL-сервере

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

  1. Блокировка регламентных заданий на сервере 1С. В файловой базе отложенные обработчики обновления БСП запускаются прямо в сеансе пользователя. В клиент-серверном режиме они выполняются через фоновые задания. Если на сервере 1С включена блокировка регламентных заданий, процедура обновления просто не начнет задерживаемые обработки данных.
  2. Использование простой загрузки конфигурации из файла. Операция Загрузить конфигурацию из файла полностью переписывает структуру метаданных, но не обновляет конфигурацию поставщика корректно. Из-за этого сбиваются записи в служебном регистре ВерсииПодсистем, и БСП считает, что данные актуализировать не требуется.
  3. Пропуск промежуточных релизов. Если обновление выполняется сразу через несколько версий путем полной замены конфигурации, пропускаются монопольные обработчики данных, зашитые в промежуточные обновления.
  4. Несоответствие внутренних идентификаторов (GUID). Если объекты создавались вручную в тестовой базе, а затем объединялись по именам, платформа назначает им разные ссылки, что нарушает работу встроенных механизмов БСП.

Правильный порядок обновления измененной базы через трехстороннее сравнение

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

  1. Создаем резервную копию. Перед проведением каких-либо манипуляций в обязательном порядке делаем полную выгрузку информационной базы (файл .dt) или бэкап средствами SQL-сервера.
  2. Подготавливаем файл обновления. Запускаем обновление рабочей конфигурации стандартным файлом обновления (.cfu) или полным дистрибутивом (.cf) через меню Конфигурация — Поддержка — Обновить конфигурацию.
  3. Настраиваем правила объединения. При сравнении конфигураций платформой выбираем приоритет конфигурации поставщика для типовых объектов, но снимаем флаги с тех объектов и модулей, где внесены уникальные пользовательские доработки.
  4. Накатываем доработки из тестовой базы. Используем механизм Конфигурация — Сравнить, объединить с конфигурацией из файла, выбрав файл с подготовленными изменениями из тестовой базы, чтобы вернуть снятые доработки.
  5. Сохраняем и запускаем обновление данных. Обновляем структуру БД (нажимаем F7), затем запускаем режим «1С:Предприятие» под пользователем с полными правами для выполнения обработчиков БСП.

Альтернативный вариант: Использование собственного файла поставки

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

  1. В базе разработчика создается собственная конфигурация поставщика через меню Конфигурация — Поставка конфигурации — Создать комплект поставки.
  2. Рабочая база ставится на поддержку этой созданной поставки.
  3. Все последующие обновления рабочей базы выполняются штатным образом через стандартную процедуру обновления поставщика с помощью файла .cfu или .cf собственного дистрибутива.

Диагностика и принудительный запуск обновления данных

Если после обновления структуры метаданных некоторые регистры или справочники остались незаполненными, проанализируем состояние процедур обновления внутри программы:

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

1cv8.exe ENTERPRISE /IBName "РабочаяБаза" /C СтартОбновленияИнформационнойБазы

Для предотвращения подобного рода проблем в будущем наиболее эффективным подходом является вынос всех пользовательских доработок из состава основной конфигурации в расширения (.cfe). В этом случае основная конфигурация остается на нередактируемой поддержке и обновляется штатным файлом .cfu без риска потери кода и сбоев в работе БСП.

← На главную