Как организовать автоматическое обновление множества удаленных измененных баз 1С без использования РИБ?

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

Обновление большого количества удаленных рабочих баз (N++ точек), работающих в автономном режиме без распределенной информационной базы (РИБ), — сложная техническая задача. Ситуация усложняется, если типовая конфигурация (например, 1С:Розница) содержит существенные доработки, выполненные вашей командой. Ручное обновление каждой точки через RDP или TeamViewer нерационально и приводит к огромным временным затратам и ошибкам.

В этой статье мы подробно разберем профессиональную технологию организации процесса разработки, сборки и автоматической доставки обновлений на удаленные точки. Мы рассмотрим создание собственной конфигурации поставщика, выстраивание конвейера релизов через хранилища и автоматизацию процесса на конечных компьютерах с помощью утилит и скриптов.

Стратегия 1: Создание собственной конфигурации поставщика (Своя поставка)

Если вы регулярно дорабатываете типовую конфигурацию от 1С и вынуждены тиражировать эти изменения на множество баз, вам необходимо стать собственным поставщиком для конечных точек. Это позволит генерировать файлы обновлений формата *.cfu, которые содержат только ваши изменения, быстро передаются по нестабильным каналам связи и корректно применяются к базам на местах.

Рассмотрим по шагам, как выстроить цепочку поддержки:

  1. Выстраивание иерархии конфигураций: В итоговой рабочей конфигурации на удаленной точке может находиться несколько родительских конфигураций поставщиков. Например: 1С:БСП -> 1С:Розница -> ВашаКомпания:Розница. Снимать базу полностью с поддержки 1С категорически не рекомендуется. Вместо этого в вашей мастер-базе разработки установите для объектов 1С режим "Редактируется с сохранением поддержки".
  2. Регистрация собственного поставщика: Откройте вашу мастер-базу разработки в режиме "Конфигуратор". Перейдите в меню Конфигурация -> Поставка конфигурации -> Настройка поставки. Включите возможность поставки конфигурации, укажите наименование вашей компании в качестве поставщика, укажите название конфигурации и настройте правила обновления.
  3. Создание файлов поставки: После выполнения доработок перейдите в меню Конфигурация -> Поставка конфигурации -> Создать файлы поставки и обновления конфигурации. Система предложит создать полный файл поставки (*.cf) и файл обновления (*.cfu).
  4. Особенности обновления файлов от 1С: Когда фирма 1С выпускает очередной релиз типовой 1С:Розница, вы в своей мастер-базе разработки выполняете штатное обновление через сравнение/объединение с новым релизом от 1С. При этом все ваши доработки сохраняются. После тестирования вы выпускаете новую версию вашей поставки. Конечные базы на точках будут видеть только одного непосредственного поставщика — вас, и будут обновляться вашими файлами *.cfu.

Стратегия 2: Двухуровневая схема хранилищ для безопасной разработки

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

Хранилище разработки (Dev): В этом хранилище ежедневно работают программисты. Сюда помещаются текущие задачи, проводятся эксперименты и ведется оперативная разработка функционала.

Релизное хранилище (Production): Доступ к этому хранилищу имеет только ответственный за выпуск релизов (DevOps-инженер или ведущий разработчик). Когда пул задач протестирован и готов к выпуску, изменения переносятся в релизную базу, которая подключена к релизному хранилищу. Именно из этой базы собирается финальный файл обновления *.cfu.

Такой подход гарантирует стабильность выпускаемых обновлений и минимизирует риски остановки торговых точек из-за критических ошибок в коде.

Стратегия 3: Использование альтернативы — расширения конфигурации

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

Преимущества работы через расширения:

Стратегия 4: Автоматизация доставки и установки обновлений на точках

После того как файлы обновлений (*.cfu или *.cfe) подготовлены, необходимо доставить их на удаленные компьютеры и установить. Рассмотрим три эффективных метода автоматизации этого процесса.

Вариант А: Использование утилиты «Обновлятор-1С»

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

  1. Установите «Обновлятор-1С» локально на компьютер каждой торговой точки и настройте его запуск по расписанию в планировщике задач Windows (например, в 3:00 ночи).
  2. Настройте интеграцию с облачным хранилищем (Yandex.Disk, Google Drive, S3) или FTP/SFTP-сервером через встроенную утилиту Rclone в Обновляторе. Вы будете выкладывать файлы обновлений в облачную папку, а Обновлятор на точках будет автоматически проверять появление новых файлов.
  3. Настройте сценарий обновления: Обновлятор сам завершит активные сеансы пользователей (кассиров), сделает резервную копию базы данных (архив *.zip или *.dt), применит файл обновления *.cfu, запустит базу в режиме предприятия для выполнения обработчиков обновления БСП и отправит отчет о статусе выполнения на вашу почту или в Telegram-канал технической поддержки.

Вариант Б: Автоматизация через PowerShell-скрипты

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

Рассмотрим пример скрипта, который скачивает обновление с вашего FTP-сервера, делает резервную копию базы и запускает обновление конфигурации через пакетный режим конфигуратора 1С:


# Настройки путей и подключения
$FtpUrl = "ftp://yourserver.com/updates/update.cfu"
$LocalUpdatePath = "C:\1C_Updates\update.cfu"
$DbPath = "C:\1C_Bases\Retail"
$BackupPath = "C:\1C_Backups\backup_" + (Get-Date -Format "yyyyMMdd_HHmmss") + ".dt"
$OneSPath = "C:\Program Files\1cv8\8.3.22.1709\bin\1cv8.exe"

# 1. Скачивание файла обновления
Import-Module BitsTransfer
Start-BitsTransfer -Source $FtpUrl -Destination $LocalUpdatePath

# 2. Создание резервной копии базы данных
Write-Output "Создание резервной копии..."
Start-Process -FilePath $OneSPath -ArgumentList "DESIGNER /F `"$DbPath`" /DumpIB `"$BackupPath`" /Out `"C:\1C_Updates\backup_log.txt`" /N `"Admin`" /P `"Pass`"" -Wait

# 3. Применение файла обновления
Write-Output "Применение обновления конфигурации..."
Start-Process -FilePath $OneSPath -ArgumentList "DESIGNER /F `"$DbPath`" /UpdateCfg `"$LocalUpdatePath`" /Out `"C:\1C_Updates\update_log.txt`" /N `"Admin`" /P `"Pass`"" -Wait

# 4. Обновление конфигурации базы данных (F7)
Write-Output "Обновление конфигурации базы данных..."
Start-Process -FilePath $OneSPath -ArgumentList "DESIGNER /F `"$DbPath`" /UpdateDBCfg /Out `"C:\1C_Updates\dbupdate_log.txt`" /N `"Admin`" /P `"Pass`"" -Wait

Write-Output "Процесс обновления успешно завершен."

Вариант В: Использование штатного веб-сервера обновлений БСП

Если ваша конфигурация содержит Библиотеку стандартных подсистем (БСП), вы можете развернуть собственный HTTP/Web-сервер обновлений. На сервере публикуется файл манифеста v8update.xml и файлы обновлений. В настройках удаленных баз в пользовательском режиме указывается адрес вашего веб-сервера. База будет сама опрашивать сервер, скачивать файлы обновлений и предлагать пользователю выполнить установку при перезапуске программы.

Стратегия 5: Автоматическое обновление платформы 1С

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

На каждом удаленном компьютере найдите конфигурационный файл запуска 1cestart.cfg (обычно он находится в папке %AppData%\1C\1CEStart) и приведите его к следующему виду, указав путь к вашему сетевому ресурсу или FTP-серверу с дистрибутивами новых платформ:


ConfigurationTemplatesLocation=
DefaultVersion=8.3
DistributiveLocation=\\YourCentralServer\1C_Distr
AppAutoInstallLastVersion=1

При наличии параметра AppAutoInstallLastVersion=1 система 1С при запуске автоматически проверит наличие более новой версии платформы в указанном каталоге DistributiveLocation, скачает ее, установит в фоновом режиме и запустит информационную базу уже на новой платформе.

Резюме и рекомендации

Для создания надежной системы обновлений N++ удаленных баз мы рекомендуем объединить эти подходы в единую систему:

← На главную