Обновление 1С без ручной работы: интернет-поддержка, скрипты и расписание
Содержание
Автоматически обновить 1С можно тремя способами. Первый — встроенный помощник типовой конфигурации: Администрирование → Интернет-поддержка и сервисы → Обновление версии программы. Второй — ночной bat-скрипт, который запускает 1cv8.exe в пакетном режиме и применяет файл .cfu. Третий — для платформы: общий каталог дистрибутивов, из которого рабочие места подтягивают нужную версию сами.
Ручное обновление каждой базы по очереди отнимает вечер, а пропущенный релиз потом тянет за собой цепочку промежуточных версий. Настроить автоматику достаточно один раз — для файловой и для клиент-серверной базы порядок немного отличается.
Подготовка базы к автоматическому обновлению
Автообновление работает гладко только при нескольких условиях. Проверьте их один раз — потом процесс не потребует вашего участия.
- 🔑 Договор ИТС и учётная запись портала. Без активной подписки сервер обновлений не отдаст дистрибутив. Логин и пароль портала вводятся в разделе интернет-поддержки.
- 🧩 Конфигурация на поддержке. Посмотреть статус можно в Конфигураторе:
Конфигурация → Поддержка → Настройка поддержки. Если поддержка снята или конфигурация сильно изменена, автоматическое обновление через помощник невозможно — нужно ручное сравнение и объединение конфигураций. - 👤 Пользователь с полными правами. Обновление выполняется от имени администратора информационной базы. Отдельная служебная учётная запись (например,
UpdateRobot) удобнее: её пароль не меняется при уходе сотрудника. - 💾 Место под резервную копию. Выгрузка
.dtбухгалтерской базы среднего размера занимает 1–5 ГБ. Держите на диске запас хотя бы на две копии. - 🖥 Доступ к интернету у компьютера или сервера, где запускается обновление (порт 443 к серверам 1С).
Доработки лучше выносить в расширения. Они переживают обновление основной конфигурации, и база остаётся «на поддержке без изменений» — ровно то состояние, при котором автоматика работает без вмешательства.
Перед первым запуском автоматического обновления сделайте полную резервную копию вручную и проверьте, что она разворачивается. Дальше копию будет делать скрипт или помощник.
Автоматическая проверка и установка обновлений через интернет-поддержку
Типовые конфигурации на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА, ERP) умеют сами находить и скачивать обновления. Путь одинаковый для всех:
Администрирование → Интернет-поддержка и сервисы → Обновление версии программы
Подключение интернет-поддержки
- В разделе
Администрирование → Интернет-поддержка и сервисынажмите ссылку подключения интернет-поддержки. - Введите логин и пароль от портала 1С:ИТС.
- После подключения в разделе появятся сведения о пользователе и доступные сервисы.
Настройка проверки по расписанию
- Откройте блок
Обновление версии программы. - В настройке автоматической проверки выберите вариант: при запуске программы или по расписанию.
- Для варианта «по расписанию» задайте периодичность. Раз в неделю, в ночь на понедельник, — разумный ритм для бухгалтерской базы.
- Включите загрузку исправлений (патчей). Мелкие исправления ошибок ставятся без обновления релиза и без монопольного доступа.
Программа будет сама проверять сервер 1С и показывать администратору уведомление о новом релизе. Скачивание тоже происходит в фоне.
Установка в удобное время
Когда обновление скачано, помощник предлагает выбрать момент установки:
| Вариант | Когда подходит | Что учесть |
|---|---|---|
| Сейчас | Файловая база, все уже вышли | Остальные пользователи будут отключены |
| При завершении работы | Файловая база, обновляете в конце дня | Нужно, чтобы администратор последним закрыл программу |
| Запланировать на время | Клиент-серверная база | Компьютер, с которого запланировано, должен быть включён |
Помощник сам создаёт резервную копию (в файловом варианте), устанавливает блокировку сеансов, применяет промежуточные релизы по цепочке и запускает обработчики обновления данных.
Установка релиза завершает сеансы всех пользователей. Предупредите сотрудников или ставьте обновление на ночь. Несохранённые документы будут потеряны.
Для клиент-серверной базы помощник спросит параметры администратора кластера, если кластер защищён паролем. Их лучше узнать у администратора сервера заранее.
Пакетное обновление 1С из командной строки по расписанию
Если баз много или нужна предсказуемость, обновление удобнее запускать скриптом из Планировщика заданий Windows. Платформа поддерживает пакетный режим Конфигуратора: окно не открывается, результат пишется в лог.
Ключи командной строки, которые понадобятся
| Ключ | Что делает |
|---|---|
DESIGNER | Запуск в режиме Конфигуратора |
ENTERPRISE | Запуск в режиме пользователя |
/F"путь" | Файловая база |
/S"сервер\база" | Клиент-серверная база |
/N"имя" /P"пароль" | Пользователь базы |
/UC"код" | Код разрешения входа при установленной блокировке |
/DumpIB "файл.dt" | Выгрузка базы в файл |
/UpdateCfg "файл.cfu" | Обновление конфигурации, стоящей на поддержке |
/UpdateDBCfg | Обновление конфигурации базы данных |
/Out "лог.txt" | Запись результата в файл |
/DisableStartupDialogs | Подавление стартовых диалогов |
Файл .cfu берётся из распакованного дистрибутива обновления. По умолчанию шаблоны устанавливаются в %APPDATA%\1C\1cv8\tmplts\1c\ — внутри каталог конфигурации и подкаталог с номером релиза.
Пример скрипта для клиент-серверной базы
Скрипт блокирует вход, ждёт отключения пользователей, делает выгрузку, обновляет конфигурацию и снимает блокировку. Параметры ЗавершитьРаботуПользователей и РазрешитьРаботуПользователей понимают все конфигурации на БСП.
@echo off
chcp 1251 > nul
set V8="C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe"
set BASE=/S"srv1c\buh"
set USR=/N"UpdateRobot" /P"Пароль"
set UC=/UC"Night01"
set CFU="D:\upd\1Cv8.cfu"
set LOG="D:\upd\log\update.txt"
rem 1. Блокировка входа и завершение сеансов
%V8% ENTERPRISE %BASE% %USR% %UC% /C"ЗавершитьРаботуПользователей" /DisableStartupDialogs
timeout /t 600 /nobreak > nul
rem 2. Резервная выгрузка
%V8% DESIGNER %BASE% %USR% %UC% /DumpIB "D:\backup\buh.dt" /Out %LOG% -NoTruncate
rem 3. Обновление конфигурации и структуры базы
%V8% DESIGNER %BASE% %USR% %UC% /UpdateCfg %CFU% /UpdateDBCfg /Out %LOG% -NoTruncate
rem 4. Снятие блокировки
%V8% ENTERPRISE %BASE% %USR% %UC% /C"РазрешитьРаботуПользователей" /DisableStartupDialogs
Для файловой базы замените /S"srv1c\buh" на /F"D:\Bases\Buh". Вместо 8.3.xx.xxxx подставьте установленную версию платформы.
Шаг 1 отключит всех пользователей примерно через 10 минут после старта скрипта. Запускайте задание ночью или в выходной.
Как поставить скрипт в Планировщик заданий
Одна команда создаёт задание на каждое воскресенье в 02:00:
schtasks /create /tn "Update1C_Buh" /tr "D:\upd\update_buh.bat" /sc weekly /d SUN /st 02:00 /ru DOMAIN\svc1c /rp *
Запускайте задание от доменной учётной записи с доступом к каталогу дистрибутива, каталогу копий и самой базе. У учётной записи SYSTEM часто нет прав на сетевые папки, и скрипт молча падает.
Важные ограничения пакетного режима
- 🔢
/UpdateCfgприменяет один.cfu. Если между текущим и новым релизом есть обязательные промежуточные, скрипт нужно запускать по цепочке, по одному файлу на каждый релиз. Порядок указан в описании обновления: «обновление возможно с версий…». - 🔄 Обработчики обновления данных выполняются при первом входе в режиме пользователя. После ночного скрипта утром первым зайдите под администратором и дождитесь окончания обновления данных.
- 📄 Проверяйте лог после каждого запуска. Строка об успешном обновлении конфигурации базы данных — признак, что шаг прошёл.
Хранилище конфигурации при групповой доработке
Если база доработана и над ней работают несколько программистов, обновлять её помощником нельзя: изменения разработчиков живут в хранилище конфигурации, и рабочая база должна получать их оттуда.
Как устроена схема
- Хранилище создаётся в Конфигураторе:
Конфигурация → Хранилище конфигурации → Создать хранилище. Для команды удобнее сервер хранилища (crserver, по умолчанию порт 1542) — адрес видаtcp://srv1c:1542/buh. - Разработчики подключаются через
Конфигурация → Хранилище конфигурации → Подключиться к хранилищу, захватывают объекты, меняют и помещают их обратно. - Новый релиз поставщика обновляет один ответственный в базе разработки, подключённой к хранилищу. Для этого корень конфигурации захватывается в хранилище, обновление выполняется через
Конфигурация → Поддержка → Обновить конфигурацию, результат помещается в хранилище.
Автоматическая доставка в рабочую базу
Рабочая база подключается к хранилищу только на чтение, и ночной скрипт забирает последнюю версию:
%V8% DESIGNER /S"srv1c\buh" /N"UpdateRobot" /P"Пароль" ^
/ConfigurationRepositoryF "tcp://srv1c:1542/buh" ^
/ConfigurationRepositoryN "robot" /ConfigurationRepositoryP "Пароль" ^
/ConfigurationRepositoryUpdateCfg -force /UpdateDBCfg /Out "D:\upd\log\repo.txt"
Ключ /ConfigurationRepositoryUpdateCfg получает конфигурацию из хранилища, /UpdateDBCfg применяет её к структуре базы. Блокировку сеансов и выгрузку .dt добавьте так же, как в предыдущем скрипте.
Заведите в хранилище отдельного пользователя только для робота. Тогда по истории хранилища сразу видно, какая версия ушла в рабочую базу автоматически.
Как обновить платформу 1С на сервере и рабочих местах
Новые релизы конфигураций требуют платформу не ниже определённой версии. Минимальный номер написан в описании обновления. Обновлять платформу вручную на 30 компьютерах долго, поэтому её тоже автоматизируют.
Сервер 1С:Предприятия
Сервер обновляют вручную в окно обслуживания — автоматизировать здесь стоит только подготовку.
- Установите новую версию сервера рядом со старой: каталоги версий в
C:\Program Files\1cv8\не мешают друг другу. - Остановите службу агента сервера старой версии, переключите службу на новую версию (установщик предлагает сделать это сам) и запустите её.
- Проверьте в консоли кластера, что базы на месте и сеансы открываются.
Остановка службы агента сервера обрывает сеансы всех пользователей всех баз кластера. Делайте это ночью, после предупреждения.
Рабочие места: общий каталог дистрибутивов
Клиент 1С умеет сам ставить нужную версию, если знает, где лежит дистрибутив. Настройка через файл 1CEStart.cfg:
- Распакуйте дистрибутив клиента в общую папку, например
\\srv1c\distr\8.3.xx.xxxx. - На рабочих местах (или в общем файле настроек
C:\ProgramData\1C\1CEStart\1CEStart.cfg) добавьте строку:
DistributiveLocation=\\srv1c\distr
- При подключении к серверу новой версии клиент найдёт подходящий дистрибутив и установит его.
Для установки нужны права администратора на компьютере. Если у пользователей их нет, разворачивайте MSI-пакет 1CEnterprise 8.msi групповой политикой с файлом преобразования adminstallrelogon.mst — он как раз рассчитан на установку без прав администратора у пользователя.
Ключ /AppAutoCheckVersion в строке запуска (или флажок в свойствах базы в списке) подбирает установленную версию платформы под конкретную базу. Это спасает, когда разные базы работают на разных версиях.
Внешние утилиты для массового обновления баз
Когда баз десятки, самописные скрипты разрастаются. На этот случай есть готовые инструменты.
| Инструмент | Что умеет | Кому подходит |
|---|---|---|
| Встроенный помощник БСП | Проверка, загрузка, установка, патчи | 1–5 типовых баз |
| bat-скрипт + Планировщик | Полный контроль, логи, ночной запуск | Админу, который готов поддерживать скрипт |
| «Обновлятор-1С» | Пакетное обновление списка баз, резервные копии, отчёты на почту | Обслуживающим организациям, 10+ баз |
| vanessa-runner (OneScript) | Командная обёртка над пакетным режимом, интеграция в CI | Командам разработки с хранилищем или Git |
Сканеры обновлений в таких утилитах смотрят текущий релиз каждой базы, сравнивают с доступными и строят цепочку промежуточных релизов. По сути они делают то же, что и скрипт выше, только для всех баз сразу и с отчётом.
Внешней утилите вы отдаёте пароли администраторов баз и портала ИТС. Ставьте её на сервер с ограниченным доступом и под отдельной учётной записью.
Почему автоматическое обновление не прошло
Причину сбоя почти всегда видно в логе /Out или в сообщении помощника. Выберите свой симптом:
Если ошибка непонятна, разверните сделанную скриптом выгрузку .dt в тестовую базу и повторите обновление там вручную. Конфигуратор покажет сообщение полностью, без обрезки лога.