Как программно скачивать обновления для 1С:ЗУП 3.1.14 и других веток

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

При автоматизации процесса обновления конфигураций 1С специалисты часто сталкиваются с проблемой: стандартные скрипты, ориентированные на файл UpdInfo.txt, скачивают только самый свежий релиз (например, 3.1.18 или выше). Однако для таких конфигураций, как "Зарплата и управление персоналом", критически важно уметь работать с ветками длительной поддержки (LTS), такими как 3.1.14. В рамках данной статьи мы подробно разберем, как обойти ограничения простых текстовых файлов и настроить программное скачивание нужных версий через XML и современный API 1С.

Почему не скачиваются старые ветки (3.1.14) через стандартные механизмы?

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

Способ 1. Использование глобального файла списка обновлений (v8cscdsc.xml)

Рассмотрим альтернативу простому текстовому файлу — файл расширенного описания обновлений v8cscdsc.xml. Этот файл представляет собой иерархический справочник всех доступных релизов и их взаимосвязей. В отличие от UpdInfo.txt, здесь содержатся данные обо всех ветках.

Алгоритм работы с XML-файлом:

  1. Сформируем HTTP-запрос к серверу downloads.v8.1c.ru.
  2. Получим ZIP-архив, содержащий файл v8cscdsc.xml.
  3. Разберем структуру XML, найдем узел, соответствующий нашей конфигурации (код HRM для ЗУП).
  4. Отфильтруем нужные версии по маске 3.1.14.*.

Разберем пример того, как формируется ссылка на основе данных из XML. Если в файле мы видим путь 1c/HRM/3_1_14_183/1cv8.zip, то для получения полной ссылки на скачивание нам нужно добавить базовый URL:

https://downloads.v8.1c.ru/tmplts/1c/HRM/3_1_14_183/1cv8.zip

Важный нюанс: при программном обращении к серверам 1С обязательно нужно устанавливать заголовок User-Agent. Без него сервер может отклонить запрос.


// Пример установки заголовка в коде 1С
Запрос = Новый HTTPЗапрос(ПутьКФайлу);
Запрос.Заголовки.Вставить("User-Agent", "1C+Enterprise/8.3");

Способ 2. Работа через официальный API (update-api.1c.ru)

Выясним более современный и надежный метод — использование JSON API. Этот способ позволяет не просто скачивать файлы, а запрашивать оптимальную цепочку обновлений от вашей текущей версии до актуальной. Это избавляет от необходимости скачивать лишние промежуточные релизы.

Шаг 1. Получение информации о последовательности обновлений

Сначала мы должны отправить POST-запрос на https://update-api.1c.ru/update-platform/programs/update/info. В теле запроса укажем нашу текущую версию и версию платформы.


{
 "programName": "HRM",
 "versionNumber": "3.1.14.55",
 "platformVersion": "8.3.18.1289",
 "programNewName": "",
 "redactionNumber": "",
 "updateType": "NewProgramOrRedaction"
}

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

Шаг 2. Получение прямых ссылок на файлы

Используя полученные UIN и данные авторизации (логин/пароль от Портала ИТС), мы отправляем второй запрос на https://update-api.1c.ru/update-platform/programs/update/.


{
 "programVersionUin": "6fe9d63f-60d7-4d2f-9f85-9e63cc5f55f9",
 "upgradeSequence": [
    "87e3bffe-925a-4454-9a38-fd20cd2023f0",
    "09981e89-37bd-42b2-b304-6bbbd3204ab4"
 ],
 "login": "ВашЛогин",
 "password": "ВашПароль"
}

В ответ сервер пришлет структуру с прямыми ссылками на скачивание файлов 1cv8.cfu для каждого шага обновления. Это самый эффективный способ, так как 1С сама отсеивает ненужные версии.

Технические требования к реализации

Проанализируем важные технические моменты, без которых скачивание может не заработать:

Сравнение методов

Посмотрим на разницу между подходами. Парсинг v8cscdsc.xml дает вам полный список всех когда-либо выходивших обновлений. Это полезно для создания собственного архива или локального зеркала обновлений. Использование update-api.1c.ru — это "умный" способ, который минимизирует трафик и время на установку обновлений, так как строит цепочку переходов.

Если ваша задача — поддерживать актуальность баз на ветке 3.1.14, мы рекомендуем использовать именно API-запросы, так как они гарантируют совместимость последовательности релизов.

Таким образом, мы рассмотрели, как программно обходить ограничения стандартных механизмов и наладить надежный процесс получения обновлений для любых веток 1С:ЗУП 3.1. Используя предложенные примеры JSON-структур и понимание работы с XML-справочниками, вы сможете автоматизировать регламентные работы любой сложности.

← На главную