Обновление большого количества удаленных рабочих баз (N++ точек), работающих в автономном режиме без распределенной информационной базы (РИБ), — сложная техническая задача. Ситуация усложняется, если типовая конфигурация (например, 1С:Розница) содержит существенные доработки, выполненные вашей командой. Ручное обновление каждой точки через RDP или TeamViewer нерационально и приводит к огромным временным затратам и ошибкам.
В этой статье мы подробно разберем профессиональную технологию организации процесса разработки, сборки и автоматической доставки обновлений на удаленные точки. Мы рассмотрим создание собственной конфигурации поставщика, выстраивание конвейера релизов через хранилища и автоматизацию процесса на конечных компьютерах с помощью утилит и скриптов.
Если вы регулярно дорабатываете типовую конфигурацию от 1С и вынуждены тиражировать эти изменения на множество баз, вам необходимо стать собственным поставщиком для конечных точек. Это позволит генерировать файлы обновлений формата *.cfu, которые содержат только ваши изменения, быстро передаются по нестабильным каналам связи и корректно применяются к базам на местах.
Рассмотрим по шагам, как выстроить цепочку поддержки:
1С:БСП -> 1С:Розница -> ВашаКомпания:Розница. Снимать базу полностью с поддержки 1С категорически не рекомендуется. Вместо этого в вашей мастер-базе разработки установите для объектов 1С режим "Редактируется с сохранением поддержки".*.cf) и файл обновления (*.cfu).1С:Розница, вы в своей мастер-базе разработки выполняете штатное обновление через сравнение/объединение с новым релизом от 1С. При этом все ваши доработки сохраняются. После тестирования вы выпускаете новую версию вашей поставки. Конечные базы на точках будут видеть только одного непосредственного поставщика — вас, и будут обновляться вашими файлами *.cfu.При работе команды программистов критически важно исключить ситуацию, когда недоделанный или не протестированный код попадает в рабочие базы на удаленных точках. Для этого применяется схема с двумя хранилищами конфигурации:
Хранилище разработки (Dev): В этом хранилище ежедневно работают программисты. Сюда помещаются текущие задачи, проводятся эксперименты и ведется оперативная разработка функционала.
Релизное хранилище (Production): Доступ к этому хранилищу имеет только ответственный за выпуск релизов (DevOps-инженер или ведущий разработчик). Когда пул задач протестирован и готов к выпуску, изменения переносятся в релизную базу, которая подключена к релизному хранилищу. Именно из этой базы собирается финальный файл обновления *.cfu.
Такой подход гарантирует стабильность выпускаемых обновлений и минимизирует риски остановки торговых точек из-за критических ошибок в коде.
Если объем ваших доработок относительно невелик, отличной альтернативой собственной поставке является перенос всех изменений в расширения конфигурации. В этом случае базовая конфигурация на удаленных точках остается полностью типовой и обновляется стандартными файлами от 1С.
Преимущества работы через расширения:
*.cfe).После того как файлы обновлений (*.cfu или *.cfe) подготовлены, необходимо доставить их на удаленные компьютеры и установить. Рассмотрим три эффективных метода автоматизации этого процесса.
Программа «Обновлятор-1С» — один из лучших инструментов для администрирования распределенной сети баз. Вопреки заблуждениям, его можно использовать и для изолированных удаленных точек без прямого доступа по RDP:
*.zip или *.dt), применит файл обновления *.cfu, запустит базу в режиме предприятия для выполнения обработчиков обновления БСП и отправит отчет о статусе выполнения на вашу почту или в Telegram-канал технической поддержки.Если вы предпочитаете бесплатные решения без использования стороннего софта, можно написать скрипт на 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 и файлы обновлений. В настройках удаленных баз в пользовательском режиме указывается адрес вашего веб-сервера. База будет сама опрашивать сервер, скачивать файлы обновлений и предлагать пользователю выполнить установку при перезапуске программы.
Важно помнить, что новые релизы конфигураций часто требуют обновления версии технологической платформы 1С:Предприятие. Чтобы не делать это вручную на каждой точке, настройте механизм автоустановки:
На каждом удаленном компьютере найдите конфигурационный файл запуска 1cestart.cfg (обычно он находится в папке %AppData%\1C\1CEStart) и приведите его к следующему виду, указав путь к вашему сетевому ресурсу или FTP-серверу с дистрибутивами новых платформ:
ConfigurationTemplatesLocation=
DefaultVersion=8.3
DistributiveLocation=\\YourCentralServer\1C_Distr
AppAutoInstallLastVersion=1
При наличии параметра AppAutoInstallLastVersion=1 система 1С при запуске автоматически проверит наличие более новой версии платформы в указанном каталоге DistributiveLocation, скачает ее, установит в фоновом режиме и запустит информационную базу уже на новой платформе.
Для создания надежной системы обновлений N++ удаленных баз мы рекомендуем объединить эти подходы в единую систему: