При автоматизации процесса обновления конфигураций 1С специалисты часто сталкиваются с проблемой: стандартные скрипты, ориентированные на файл UpdInfo.txt, скачивают только самый свежий релиз (например, 3.1.18 или выше). Однако для таких конфигураций, как "Зарплата и управление персоналом", критически важно уметь работать с ветками длительной поддержки (LTS), такими как 3.1.14. В рамках данной статьи мы подробно разберем, как обойти ограничения простых текстовых файлов и настроить программное скачивание нужных версий через XML и современный API 1С.
Проанализируем ситуацию: файл UpdInfo.txt, который часто используется для парсинга, содержит информацию только о последней доступной версии всей линейки программного продукта. Поскольку ветка 3.1.14 развивается параллельно с 3.1.18 и более новыми, она считается "устаревшей" относительно общего номера версии, хотя и получает актуальные патчи. Чтобы программа увидела эти обновления, необходимо использовать более сложные инструменты, предоставляемые порталом 1С.
Рассмотрим альтернативу простому текстовому файлу — файл расширенного описания обновлений v8cscdsc.xml. Этот файл представляет собой иерархический справочник всех доступных релизов и их взаимосвязей. В отличие от UpdInfo.txt, здесь содержатся данные обо всех ветках.
Алгоритм работы с XML-файлом:
downloads.v8.1c.ru.v8cscdsc.xml.HRM для ЗУП).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");
Выясним более современный и надежный метод — использование 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С сама отсеивает ненужные версии.
Проанализируем важные технические моменты, без которых скачивание может не заработать:
HTTPСоединение поддерживают TLS 1.2.Authorization с типом Basic. Данные (логин:пароль) должны быть закодированы в формате Base64..../1c/hrm/[Номер_Релиза]/1cv8.cfu.Посмотрим на разницу между подходами. Парсинг v8cscdsc.xml дает вам полный список всех когда-либо выходивших обновлений. Это полезно для создания собственного архива или локального зеркала обновлений. Использование update-api.1c.ru — это "умный" способ, который минимизирует трафик и время на установку обновлений, так как строит цепочку переходов.
Если ваша задача — поддерживать актуальность баз на ветке 3.1.14, мы рекомендуем использовать именно API-запросы, так как они гарантируют совместимость последовательности релизов.
Таким образом, мы рассмотрели, как программно обходить ограничения стандартных механизмов и наладить надежный процесс получения обновлений для любых веток 1С:ЗУП 3.1. Используя предложенные примеры JSON-структур и понимание работы с XML-справочниками, вы сможете автоматизировать регламентные работы любой сложности.