Как правильно обновить несколько одинаковых нетиповых баз 1С:Бухгалтерия 3.0 через файл конфигурации?

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

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

Анализ исходной ситуации и постановка задачи

Представим сценарий: у нас есть три базы 1С:Бухгалтерия предприятия 3.0. Все они сняты с полной поддержки, и в них внесены одинаковые изменения. Проанализируем, можно ли подготовить обновление один раз и «накатить» его на все остальные базы. Выясним, какие риски при этом возникают и как их минимизировать.

Важное условие: базы должны быть действительно идентичными по происхождению. Это означает, что они либо созданы копированием одной и той же базы, либо в них ранее конфигурация загружалась из одного и того же файла .cf. Если базы создавались независимо, даже при одинаковом наборе метаданных их внутренние идентификаторы (UUID) будут различаться, что приведет к катастрофическим последствиям при прямой загрузке конфигурации.

Пошаговый алгоритм обновления нетиповой конфигурации

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

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

Выбор метода тиражирования: Загрузка конфигурации vs Сравнение и объединение

Проанализируем технические нюансы двух основных способов применения подготовленного файла .cf к рабочим базам.

Вариант 1: Загрузка конфигурации (Load CF)

Метод Конфигурация — Загрузить конфигурацию из файла... является самым быстрым, но и самым опасным. Проанализируем последствия:

Вывод: Используйте загрузку .cf только в том случае, если вы на 100% уверены, что базы — клоны. Если есть сомнения, лучше выбрать второй вариант.

Вариант 2: Сравнение и объединение (Merge)

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

Проблема внутренних идентификаторов и предопределенных данных

Выясним причину возникновения «северного пушистого зверька» (потери данных) при неправильном обновлении. В 1С каждый объект метаданных (например, Справочник.Контрагенты) имеет скрытый уникальный идентификатор. Платформа сопоставляет таблицы в SQL именно по этим UUID.

Проанализируем ситуацию с предопределенными элементами. Если в эталонной базе вы добавили предопределенный элемент вручную, а затем загрузили .cf в другую базу, где такой элемент уже был создан (но с другим внутренним кодом), система может создать дубль. Чтобы этого избежать, всегда придерживайтесь правила: все изменения структуры и предопределенных данных вносятся только в одной базе, которая затем становится источником .cf для остальных.

Автоматизация и обработчики обновления в режиме «Предприятие»

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

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

Если вы обновляете много баз (например, 10 или 20), проанализируем возможность автоматизации. Платформа 1С позволяет запускать процесс обновления из командной строки. Пример команды для загрузки конфигурации:


"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /F "ПутьКБазе" /LoadCfg "C:\Updates\NashaKonfa.cf" /UpdateDBCfg

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

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

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

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

← На главную