Автоматическое обновление 1С 8.3 без беготни по компьютерам

· 9 мин

Содержание

Полностью «само» 1С не обновляется, но почти всё можно переложить на автоматику: платформа ставится на компьютеры групповой политикой или скриптом, конфигурация скачивается из Интернет-поддержки, а обновление базы запускается ночью по расписанию. Ниже по порядку: что подготовить, как раскатать платформу, как обновлять конфигурацию и что делать, когда ночное обновление упало.

Сначала разделите две вещи. Платформа (программа 1cv8) ставится на каждый компьютер и сервер. Конфигурация (Бухгалтерия, ЗУП, УТ) обновляется один раз в самой базе, и все пользователи сразу получают новую версию. Это разные процедуры, и автоматизируются они по-разному.

Какой способ выбрать под вашу сеть

Выбор зависит от того, сколько у вас компьютеров и баз.

Какая у вас ситуация?

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

Что подготовить до первого автоматического запуска

Автоматика без подготовки ломается молча: ночью обновление упало, утром бухгалтеры открывают старую или, хуже, полуобновлённую базу.

Проверьте по порядку:

  • 🔑 Договор ИТС и Интернет-поддержка. Без действующего сопровождения скачать обновления нельзя. Логин и пароль пользователя портала должны быть введены в базе.
  • 👤 Учётная запись для обновления. Нужен пользователь базы с правом администратора. Не используйте личную учётку главного бухгалтера: при смене пароля скрипт перестанет работать.
  • 💾 Место на диске. Для файловой базы держите свободным объём, равный размеру базы с запасом. Для резервной копии и для временных файлов обновления нужно места не меньше, чем занимает сама база.
  • 📋 Требования релиза. В описании каждого релиза указана минимальная версия платформы и версия, с которой можно обновляться. Если вы отстали на несколько релизов, придётся ставить промежуточные: перескочить через них нельзя.
  • 🧪 Тестовая копия. Хотя бы раз проведите весь сценарий на копии базы и посмотрите, что получилось.

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

Порядок всегда один: сначала платформа (если релиз её требует), потом конфигурация, потом проверка.

Раскатка новой платформы на рабочие места

Ходить с флешкой по кабинетам не нужно. Есть три рабочих пути.

Групповая политика и MSI

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

Плюс: полностью без участия людей. Минус: нужен Active Directory и аккуратная работа с политиками, а смена версии требует нового пакета.

Тихая установка скриптом

Если домена нет, положите дистрибутив в общую сетевую папку и запускайте установку скриптом при входе пользователя или удалённо:

setup.exe /S

Ключ /S включает тихий режим без окон. Набор устанавливаемых компонентов задаётся дополнительными параметрами, их список есть в документации к установке платформы. Для обычного рабочего места достаточно толстого или тонкого клиента : сервер и расширения веб-сервера там не нужны.

Ставьте новую платформу рядом со старой, не поверх. Старая версия остаётся в C:\Program Files\1cv8\ в отдельной папке с номером, и вы можете вернуться к ней, если новая не подойдёт под конфигурацию.

Как компьютер узнаёт, какой версией запускать базу

В списке баз стартового окна у каждой базы есть настройка версии 1С:Предприятия. Если указать только 8.3, запуск идёт с самой новой установленной платформы ветки 8.3. Если указать точный номер, база будет стартовать только с ним, и после установки новой платформы ничего не изменится.

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

Теперь серверная часть. Если у вас клиент-серверный вариант, версия платформы на сервере и на клиентах должна совпадать по первым трём группам цифр. Например, клиент 8.3.24 не подключится к серверу 8.3.25. Обновляйте сервер и клиентов в одно окно, пока никто не работает .

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

Для типовых конфигураций на библиотеке стандартных подсистем (Бухгалтерия, ЗУП, Управление торговлей и их аналоги) обновление встроено в сам интерфейс. Раздел называется похоже во всех типовых программах: откройте Администрирование и найдите там блок про Интернет-поддержку и сервисы, а в нём пункт про обновление программы.

Там настраиваются три вещи:

  1. Источник обновления. Можно получать файлы прямо с сервера 1С через Интернет или брать из локального каталога, куда вы их положили заранее. Для закрытых контуров без выхода в сеть подходит второй вариант.
  2. Проверка наличия обновлений. Программа может сама сверяться с сервером и сообщать, что вышел новый релиз. Периодичность задаётся в той же форме.
  3. Режим установки. Обновление можно запустить сразу или назначить на удобное время. Программа создаст копию базы , если вы включили этот пункт, завершит сеансы пользователей и применит обновление.

Важно, что программа сама обновление не принимает без вашего решения. Она скачивает и предлагает, а применение запускает человек или заданное вами расписание. Для небольшой компании так даже лучше: никто не получит новую версию посреди квартального отчёта.

Что обновляется вместе с конфигурацией

Вместе с релизом обновляются печатные формы, отчёты и правила обмена, но не данные. Классификаторы (банки, курсы валют, адресные сведения) загружаются отдельно регламентными заданиями из интернета. Проверьте в консоли регламентных заданий, что они включены, иначе после обновления справочники останутся старыми.

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

Скрипт обновления из командной строки

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

@echo off
set V8="C:\Program Files\1cv8\8.3.25.1394\bin\1cv8.exe"
set BASE=srv1c\buh
set USER=Обновление
set PWD=пароль
set CFU=D:\upd\1cv8.cfu
set BK=D:\backup\buh_%DATE%.dt

start /wait "" %V8% DESIGNER /S %BASE% /N %USER% /P %PWD% /DisableStartupDialogs /DumpIB "%BK%" /Out "D:\upd\dump.log"

start /wait "" %V8% DESIGNER /S %BASE% /N %USER% /P %PWD% /DisableStartupDialogs /UpdateCfg "%CFU%" /UpdateDBCfg /Out "D:\upd\update.log" -NoTruncate

Замените номер платформы, адрес сервера и имя базы на свои. Для файловой базы вместо /S используйте параметр /F с путём к каталогу базы.

Разберём ключи:

КлючЧто делает
DESIGNERЗапускает Конфигуратор в пакетном режиме
/DisableStartupDialogsПодавляет окна и вопросы при старте
/DumpIBВыгружает информационную базу в файл .dt
/UpdateCfgЗагружает файл обновления .cfu в конфигурацию
/UpdateDBCfgПрименяет изменения к конфигурации базы данных
/OutПишет результат работы в текстовый файл

Две ловушки, на которые натыкаются все.

Первая: без start /wait пакетный файл не дожидается завершения Конфигуратора и сразу запускает следующую команду. Выгрузка и обновление пойдут одновременно, и результат будет непредсказуемым.

Вторая: файл 1cv8.cfu лежит в каталоге шаблонов после установки дистрибутива обновления. Его нужно найти и положить по пути, указанному в скрипте. Если файла нет, скрипт молча ничего не сделает, а в журнале появится ошибка.

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

Если нужен код разрешения на запуск при заблокированной базе, в команду добавляют параметр /UC с этим кодом. Обновление структуры базы требует монопольного доступа, поэтому перед запуском завершите сеансы пользователей: блокировкой начала сеансов в консоли кластера или заранее объявленным окном обслуживания.

Запуск по расписанию и обновление нескольких баз

Положите пакетный файл на сервер и создайте задачу в планировщике заданий Windows.

Что указать при настройке:

  • Время. Ночь или выходной, когда в базе никого нет. Не ставьте на 00:00: в это время часто стартуют другие задания.
  • Учётная запись. Отдельная служебная, с правом на каталоги резервных копий и обновлений.
  • Режим. «Выполнять вне зависимости от входа пользователя».
  • Рабочая папка. Укажите её явно, иначе относительные пути в скрипте не сработают.

Для нескольких баз повторите блок с резервной копией и обновлением для каждой. Не гоняйте их параллельно на слабом сервере: две выгрузки подряд не быстрее, зато диск не захлёбывается.

И последний шаг: сделайте так, чтобы вам приходил результат. В скрипте проверяйте, что в журнале update.log нет текста ошибки, и отправляйте письмо или сообщение в мессенджер администратору. Автоматика без уведомления быстро превращается в ситуацию, когда база не обновлялась три месяца, а никто не замечает.

Диагностика: почему обновление не прошло

Начинайте с журнала, который вы указали в /Out. В нём остаётся текст ошибки Конфигуратора. Для установки платформы включайте подробный журнал установщика (msiexec с ключом журнала /l*v).

Диагностика: выберите симптом

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

Если обновление сорвалось на середине, не запускайте его повторно вслепую. Сначала откройте базу, посмотрите, в каком состоянии она находится, и при сомнениях восстановите её из свежей копии .dt.

Частые вопросы

Можно ли включить полностью автоматическое обновление, чтобы 1С сама всё ставила?
Программа проверяет и скачивает релизы, но применять их должен человек или запланированное вами задание. Полностью бесконтрольного режима для конфигураций нет, и это разумно.
Нужно ли обновлять платформу при каждом обновлении конфигурации?
Нет. Платформа нужна новее только тогда, когда этого требует описание релиза. Минимальная версия указана там же.
Что будет, если обновить конфигурацию, а платформу на компьютере забыть?
Если платформа ниже требуемой, база откроется с предупреждением или не откроется совсем. Поэтому порядок такой: сначала платформа, потом конфигурация.
Можно ли отдать обновление на откуп обслуживающей организации?
Можно, но потребуйте, чтобы перед каждым обновлением делалась копия и чтобы вам приходил отчёт о результате.
Как вернуть всё назад, если новая версия не понравилась?
Откат конфигурации в рабочей базе не делается кнопкой. Восстанавливайте базу из копии, сделанной перед обновлением, и затем разбирайтесь с причиной.