Как программно получить список актуальных релизов 1С с официального сайта?

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

При обслуживании большого количества баз данных или при разработке собственных систем мониторинга ИТ-инфраструктуры часто возникает необходимость автоматизировать проверку выхода новых релизов конфигураций и платформы «1С:Предприятие». Ручной мониторинг сайта ИТС отнимает много времени, поэтому разработчики ищут способы программного решения этой задачи. Для автоматизации этого процесса можно использовать готовую внешнюю обработку для уведомления по почте о выходе новых релизов конфигурации.

В этой статье мы подробно разберем, как программно получить актуальные версии программных продуктов фирмы «1С». Мы рассмотрим различные подходы: от использования механизмов типовых конфигураций (БСП) до самостоятельного формирования HTTP-запросов к серверам обновлений.

Способ 1. Анализ механизмов Библиотеки стандартных подсистем (БСП)

Прежде чем изобретать велосипед и писать собственный парсер, давайте обратим внимание на то, как эта задача уже решена самой фирмой «1С» в типовых конфигурациях. В составе БСП есть мощная подсистема «Интернет-поддержка пользователей», которая отвечает за взаимодействие со всеми внешними сервисами «1С», включая получение информации об обновлениях.

Проанализируем логику работы этой подсистемы:

  1. При запуске проверки обновлений система обращается к специализированному веб-сервису мониторинга (сервер monitoring.v8.1c.ru).
  2. Для выполнения запроса конфигурация сначала проходит авторизацию на едином сервере идентификации (login.1c.ru), используя логин и пароль от Портала ИТС.
  3. После успешной аутентификации получается сессионный токен, который передается в заголовках последующих HTTP-запросов.
  4. Далее выполняется запрос к API сервиса обновлений, куда передаются идентификаторы конфигураций, установленные версии и требования к платформе. Сервер возвращает структурированный ответ (обычно в формате XML или JSON) со списком доступных релизов, датами их выхода и минимально необходимыми версиями платформы.

Если вам необходимо реализовать получение версий в своей обработке, изучите общий модуль ИнтернетПоддержкаПользователей и входящие в него методы, связанные с сервисом InformationOnReleases. Использование готовых функций БСП — самый надежный путь, так как они автоматически обновляются при изменении протоколов взаимодействия со стороны фирмы «1С». В качестве альтернативы самостоятельному написанию кода можно воспользоваться внешней обработкой для автоматического скачивания обновлений из конфигураций на базе БСП.

Способ 2. Прямые HTTP-запросы к серверу обновлений

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

Для загрузки файлов обновлений и манифестов используется сервер downloads.1c.ru. Обратите внимание, что при попытке просто открыть этот адрес в браузере вы увидите стандартную страницу заглушки веб-сервера Apache. Это сделано в целях безопасности, прямая навигация по каталогам там закрыта. Однако сервер отлично принимает точечные программные запросы с авторизацией.

Давайте рассмотрим пример кода на встроенном языке 1С, который демонстрирует, как создать HTTP-соединение с сервером обновлений и запросить файл манифеста обновления (например, v8upd11.zip или аналогичный XML-файл):


// Определяем параметры подключения
СерверОбновлений = "downloads.1c.ru";
мИтсЛогин = "ВашЛогинИТС";
мИтсПароль = "ВашПарольИТС";

// Указываем параметры конфигурации для запроса
мТипКонфигурации = "Accounting30"; // Бухгалтерия предприятия, редакция 3.0
мВерсияРелиза = "3_0_150_20";       // Текущая версия
мВерсияПлатформы = "83";           // Версия платформы

// Создаем HTTP-соединение с использованием учетных данных ИТС
Соединение = Новый HTTPСоединение(СерверОбновлений, , мИтсЛогин, мИтсПароль, , , Новый ЗащищенноеСоединениеOpenSSL());

// Формируем путь к файлу информации об обновлениях
ПутьКРелизу = "/ipp/ITSREPV/V8Update/Configs/" + мТипКонфигурации + "/" + мВерсияРелиза + "/" + мВерсияПлатформы + "/v8upd11.zip";

Запрос = Новый HTTPЗапрос(ПутьКРелизу);

Попытка
    // Отправляем запрос на сервер
    Ответ = Соединение.Получить(Запрос);
    
    Если Ответ.КодСостояния = 200 Тогда
        // Файл успешно получен, его можно сохранить на диск и распаковать
        ИмяВременногоФайла = ПолучитьИмяВременногоФайла("zip");
        Ответ.ПолучитьТелоКакФайл(ИмяВременногоФайла);
        
        // Далее выполняем чтение XML-документа из архива для получения списка версий
        // ...
        
        Предупреждение("Файл обновлений успешно загружен!");
    Иначе
        ВызватьИсключение "Ошибка сервера обновлений. Код состояния: " + Ответ.КодСостояния;
    КонецЕсли;
Исключение
    Сообщить("Не удалось получить данные: " + ОписаниеОшибки());
КонецПопытки;

Разберем подробнее структуру формируемого пути. Переменная мТипКонфигурации должна содержать внутренний идентификатор продукта (Project Name) в системе «1С». Ниже приведены некоторые популярные идентификаторы:

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

Способ 3. Использование готовых инструментов и библиотек

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

Резюме и практические рекомендации

Для реализации программного получения релизов наиболее правильным с архитектурной точки зрения является интеграция с официальным API сервиса мониторинга «1С». Если вы разрабатываете решение внутри экосистемы «1С», всегда отдавайте приоритет повторному использованию функций общего модуля ИнтернетПоддержкаПользователей. Это избавит вас от необходимости поддерживать код авторизации при изменениях на стороне Портала ИТС. Если же требуется внешняя интеграция, используйте HTTP-запросы к downloads.1c.ru с обязательной SSL-защитой и передачей учетных данных подписки ИТС.

← На главную