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

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

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

Анализ проблемы: почему нельзя просто «накатить» последний релиз

При обновлении нетиповых конфигураций, таких как Управление торговлей 11.4, мы сталкиваемся с двумя основными сложностями. Во-первых, это сохранение уникальных доработок в коде и метаданных. Во-вторых, это необходимость выполнения обработок обновления в режиме «Предприятие». Проанализируем, почему перепрыгивание через десять релизов сразу на последний может быть фатальным. Фирма 1С часто меняет структуру данных: регистры могут разделяться, реквизиты — переноситься в новые справочники, а старые объекты — помечаться префиксом Удалить.

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

Решение 1: Использование специализированного ПО (Обновлятор 1С)

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

  1. Режим автоматического объединения: Программа умеет использовать логику сравнения, при которой новые объекты поставщика добавляются, а измененные типовые объекты обрабатываются согласно заданным правилам.
  2. Скриптовый движок: С помощью языка OneScript мы можем прописать сценарий, который будет выполняться после каждого шага. Например, проверка целостности базы или выгрузка логов.
  3. Имитация действий пользователя: Программа автоматически нажимает кнопку «Я подтверждаю легальность получения обновления» и проходит через модальные окна, которые часто блокируют запуск «Предприятия» в автоматическом режиме.

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

Решение 2: Метод подготовки промежуточных CF-файлов на копии

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

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

Этот метод гарантирует, что код будет объединен корректно, так как вы проверили его заранее, а автоматизация коснется только самого процесса «накатывания» и запуска длительных процедур обработки данных.

Решение 3: Автоматизация через командную строку и Batch-скрипты

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

Пример структуры командного файла для автоматизации одного шага:


"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /F "D:\Base1C" /N "Admin" /P "Pass" /MergeCfg "D:\Update\11.4.10.cf" /UpdateDBSchema /Out "D:\log.txt"
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "D:\Base1C" /N "Admin" /P "Pass" /C ЗапуститьОбновлениеИнформационнойБазы /Visible

Важно помнить, что параметр /Visible здесь используется для того, чтобы вы могли визуально проконтролировать процесс, если что-то пойдет не так, но для полной автоматизации его можно исключить, добавив обработку завершения работы пользователя после выполнения обновлений.

Стратегия Clean Core: как упростить обновления в будущем

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

  1. Расширения конфигурации: Это основной механизм. Старайтесь переносить все новые справочники, отчеты и, главное, обработчики событий в расширения. Используйте аннотации &После или &Вместо для изменения логики типовых модулей. Если основная конфигурация остается «на замке» (типовой), автоматическое обновление проходит мгновенно.
  2. Внешние печатные формы и обработки: Все, что не требует изменения структуры метаданных, должно храниться вне основной конфигурации.

Управление длительными процессами (отложенное обновление БСП)

В современных версиях Управление торговлей 11.4 после обновления конфигурации запускается процесс «Отложенного обновления». Он может длиться часами, пересчитывая остатки или заполняя новые регистры. Чтобы ускорить этот процесс при автоматическом обновлении, проанализируем настройки БСП. Мы можем программно увеличить количество потоков для фоновых заданий обновления, что значительно сократит время простоя базы.

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

Заключение и рекомендации

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

Помните о главных правилах безопасности:

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

← На главную