Автоматическое обновление 1С 8.3 без беготни по компьютерам
Содержание
Полностью «само» 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С через Интернет или брать из локального каталога, куда вы их положили заранее. Для закрытых контуров без выхода в сеть подходит второй вариант.
- Проверка наличия обновлений. Программа может сама сверяться с сервером и сообщать, что вышел новый релиз. Периодичность задаётся в той же форме.
- Режим установки. Обновление можно запустить сразу или назначить на удобное время. Программа создаст копию базы , если вы включили этот пункт, завершит сеансы пользователей и применит обновление.
Важно, что программа сама обновление не принимает без вашего решения. Она скачивает и предлагает, а применение запускает человек или заданное вами расписание. Для небольшой компании так даже лучше: никто не получит новую версию посреди квартального отчёта.
Что обновляется вместе с конфигурацией
Вместе с релизом обновляются печатные формы, отчёты и правила обмена, но не данные. Классификаторы (банки, курсы валют, адресные сведения) загружаются отдельно регламентными заданиями из интернета. Проверьте в консоли регламентных заданий, что они включены, иначе после обновления справочники останутся старыми.
Расширения конфигурации и доработки: после обновления проверьте, что они не отключились. Если доработка меняла типовой модуль, при обновлении может появиться список конфликтов, и тогда придётся объединять изменения вручную.
Скрипт обновления из командной строки
Для серверных баз, нескольких баз подряд и ночных запусков нужен пакетный файл. Он делает три действия: выгружает копию, применяет обновление, записывает результат в журнал.
@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).
.cfu или неверный путь. Откройте update.log: там будет указано, какой файл Конфигуратор не нашёл. Проверьте путь и права учётной записи планировщика..cfu, но не применилась конфигурация базы данных. Проверьте, что в команде есть /UpdateDBCfg, и посмотрите журнал этого этапа.Если конфигурация сильно доработана, автоматический скрипт может остановиться на конфликте объектов. Это нормально: такие обновления лучше проводить вручную в Конфигураторе, а автоматику оставить для типовых баз.
Если обновление сорвалось на середине, не запускайте его повторно вслепую. Сначала откройте базу, посмотрите, в каком состоянии она находится, и при сомнениях восстановите её из свежей копии .dt.