Обновление доработанной (нетиповой) конфигурации 1С — это всегда ответственный процесс, который требует не только внимательности при сравнении объектов, но и значительных временных затрат. Особенно остро проблема встает, когда база сильно отстала от актуальных релизов, а организация работает в режиме 24/7, не позволяя программисту тратить рабочие часы на монотонную ручную работу. Разберем, как можно автоматизировать этот процесс, минимизировать риски потери данных и избежать бессонных ночей у монитора.
При обновлении нетиповых конфигураций, таких как Управление торговлей 11.4, мы сталкиваемся с двумя основными сложностями. Во-первых, это сохранение уникальных доработок в коде и метаданных. Во-вторых, это необходимость выполнения обработок обновления в режиме «Предприятие». Проанализируем, почему перепрыгивание через десять релизов сразу на последний может быть фатальным. Фирма 1С часто меняет структуру данных: регистры могут разделяться, реквизиты — переноситься в новые справочники, а старые объекты — помечаться префиксом Удалить.
Если мы просто загрузим финальный cf файл, минуя промежуточные релизы, встроенные механизмы БСП (Библиотеки стандартных подсистем) могут не найти необходимые промежуточные данные для корректного переноса. В результате мы получим «битую» базу с пустыми реквизитами. Поэтому автоматизация должна имитировать последовательный процесс: обновление конфигурации — запуск предприятия — выполнение обработок — переход к следующему релизу.
Рассмотрим наиболее популярный инструмент для решения данной задачи — «Обновлятор 1С». Это внешняя утилита, которая позволяет полностью автоматизировать цепочку действий. Посмотрим, какие возможности она предоставляет для нетиповых конфигураций:
OneScript мы можем прописать сценарий, который будет выполняться после каждого шага. Например, проверка целостности базы или выгрузка логов.Для настройки автоматического обновления нетиповой базы в «Обновляторе» нам необходимо предварительно настроить файл ответов для конфигуратора, чтобы при возникновении конфликтов программа знала, какой приоритет выбрать (обычно — приоритет объектов основной конфигурации для доработанных модулей).
Если мы не хотим доверять автоматике процесс сравнения и объединения непосредственно на рабочей базе, применим методику «подготовленных эталонных конфигураций». Разберем этот процесс по шагам:
.cf)..cf файлы в рабочую базу и запускать «Предприятие» с параметрами для автоматического выполнения обработок обновления.Этот метод гарантирует, что код будет объединен корректно, так как вы проверили его заранее, а автоматизация коснется только самого процесса «накатывания» и запуска длительных процедур обработки данных.
Для системных администраторов и программистов, предпочитающих полный контроль, рассмотрим использование параметров командной строки конфигуратора 1С. Мы можем составить скрипт, который будет выполнять обновление без участия человека. Проанализируем основные параметры:
/MergeCfg — объединение текущей конфигурации с файлом обновления./UpdateDBSchema — обновление структуры базы данных на уровне СУБД./C ЗапуститьОбновлениеИнформационнойБазы — этот ключ при запуске в режиме «Предприятие» дает команду БСП начать выполнение отложенных процедур обновления автоматически.Пример структуры командного файла для автоматизации одного шага:
"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. Основная идея заключается в максимальном выносе доработок из основной конфигурации. Выясним, какие инструменты для этого существуют:
&После или &Вместо для изменения логики типовых модулей. Если основная конфигурация остается «на замке» (типовой), автоматическое обновление проходит мгновенно.В современных версиях Управление торговлей 11.4 после обновления конфигурации запускается процесс «Отложенного обновления». Он может длиться часами, пересчитывая остатки или заполняя новые регистры. Чтобы ускорить этот процесс при автоматическом обновлении, проанализируем настройки БСП. Мы можем программно увеличить количество потоков для фоновых заданий обновления, что значительно сократит время простоя базы.
Для этого в режиме «Предприятие» перейдем в раздел Обслуживание — Результаты обновления. Там можно увидеть список всех процедур и их статус. При автоматизации через скрипты важно дождаться завершения всех критических процедур (статус «Выполнено»), прежде чем переходить к загрузке следующего cf файла.
Мы разобрали несколько подходов к автоматическому обновлению нетиповых конфигураций. Подведем итоги: если база доработана незначительно, оптимальным выбором будет Обновлятор 1С. Если доработки критически важны и сложны — используйте метод подготовленных эталонных CF-файлов на копии.
Помните о главных правилах безопасности:
readme.txt.Совмещая автоматизацию с предварительным тестированием, вы сможете поддерживать систему в актуальном состоянии без ущерба для рабочего процесса организации.