Новый сервис обновлений от 1С. Описание

28.10.20

Разработка - БСП (Библиотека стандартных подсистем)

Краткое описание основных методов нового механизма обновления от "1С", в новых БСП.

Ранее, долгое время, существовал инструмент для получения оглавления обновлений и сведений об их расположении. Это было описано и показано на примерах, реализовано в множестве интересных разработок, всяких обновляторов да интеграторов. Разумеется, не считая механизмов парсинга самих страниц сайтов 1С. На ИС такого предостаточно.

Но в конфигурациях с использованием современной БСП применён другой механизм, http-сервис, описания для которого мне найти не удалось нигде. Буквально в одном месте в скрипте было упомянуто

Покопавшись в типовой механике, выявил кое-что про этот сервис.

1. Обновление, как сущность, значительно жёстче привязано к конкретной ИБ, а не к конфигурации вообще. Потому, что в механизмах фигурирует UID базы и UID обновления (VersionUin). Вероятно, это связано с контролем легальности получения обновлений, подпиской и т.д. Отсюда следует, что утрата UID обновления - это проблема, т.к. не позволит получить следующее за ним.

2. Полная история (оглавление) версий обновлений недоступна. Можно скачать лишь актуальное, самое свежее, обновление, и сведения о нём, но нельзя получить данные о старом годичной давности. Вероятно, это вопрос оптимизации (старое нужно десяткам, а свежий релиз - миллионам систем, стучащимся на сервер).

3. Обновление конфигурации и скачивание-установка-применение патчей явно разделены, и для патчей сделан свой метод сервиса. О патчах подробнее, например, тут.

 

Большинство непосредственно работающего функционала реализовано в общем модуле ПолучениеОбновленийПрограммы.

 

Обращение к серверу

Сервер: update-api.1c.ru (или update-api.1c.eu)
Порт: 443
Прокси: не требуется
Авторизация: логин и пароль можно оставлять пустыми
Таймаут: 30 (обычно этого хватает)

Для ЗащищенноеСоединениеOpenSSL указывается "СертификатыУдостоверяющихЦентровОС"

В заголовках запросов для методов желательно в явном виде указывать Content-Type, равный "application/json".

Для проверки работоспособности можно применять метод "ping" (адрес вызова /update-platform/programs/update/ping), пример можно посмотреть в ИнтернетПоддержкаПользователей.ПроверитьURLДоступен.

 

Для методов используется набор дополнительных параметров "additionalParameters", описывающий конкретную ИБ и её конфигурацию. Получить его можно функцией ИнтернетПоддержкаПользователей.ДополнительныеПараметрыВызоваОперацииСервиса(), и уточнить разрядность системы (ключ "platform64Supported") функцией ПолучениеОбновленийПрограммыКлиентСервер.Это64РазрядноеПриложение().

Пример дополнительных параметров:

key value
"ConfigLanguage" "ru"
"Vendor" "Фирма "1С""
"ClientPlatformType" "Windows_x86_64" (в старых БСП отсутствует!)
"ConfigName" "ЗарплатаИУправлениеПерсоналом"
"ClientOSVersion" "Microsoft Windows 10 version 10.0  (Build 14393)"
"ConfigMainLanguage" "ru"
"LibraryVersion" "2.3.3.34"
"PlatformVersion" "8.3.16.1224"
"ConfigVersion" "3.1.10.78"
"IBID" "ea55f9bc-e011-43e4-a249-d42408ab0ef1"
"CurLocalizationCode" "ru_RU"
"SystemLanguage" "ru"
"ClientTimeOffsetGMT" "10800"
"countryId" ""
"IBIsSeparated" "false"
"IBUserName" "Администратор"
"DomainZone" "ru"
"platform64Supported" "true"
   

 

Данные передаются и получаются в json, преобразуются из/в коллекции 1С штатными глобальными ЗаписатьJSON/ПрочитатьJSON. При этом важно, что входные параметры должны быть представлены структурой, а не соответствием, т.к. видимо, в объявлении модели данных сервиса указан строгий порядок следования ключей в теле запроса, а соответствие порядок ключей при сериализации теряет. А вот выходные параметры следует десериализовывать в соответствие.

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

 

Метод "info"

Метод POST. Полный адрес для http-запроса: update-platform/programs/update/info

Назначение: Получение сведений о текущем актуальном обновлении для ИБ.

Параметры:

    programName // строка, служебное имя: Accounting, HRM, регистр букв не важен. В коде упоминается значение "Unknown", и передача такого параметра приводит к правильному, но пустому ответу (возможно, нужно было для тестирования)
    versionNumber // строка, в формате "4 точки"
    platformVersion // строка, в формате "4 точки"
    programNewName // строка, обычно пуста
    redactionNumber // строка, обычно пуста
    updateType // строка, допустимые значения: NewConfigurationAndOrPlatform (рабочее обновление), или NewPlatform (только платформа), или NewProgramOrRedaction (переход на другую программу/редакцию)    
    additionalParameters // массив структур вида key (строка), value (строка), см.выше

Возвращаемые данные:

    platformUpdateResponse // обычно пуст
    errorName // строка, служебное имя ошибки (например, "ConnectError"), при ряде ошибок пуста
    errorMessage // строка, подробное описание ошибки, может быть непуста при пустой errorName
    configurationUpdateResponse // если всё верно, содержит результатное соответствие, см.ниже
    additionalParameters // насколько я понял, пуст, возможно, зарезервирован на будущее

Сведения об обновлении содержит configurationUpdateResponse, имеющий следующие ключи (для примера, с содержанием)

Для случая updateType, равного "NewConfigurationAndOrPlatform"

"updateInfoUrl" "https://dl03.1c.ru/content//AutoUpdatesFiles/HRM/3_1_15_96/82/News1cv8.htm"
"configurationVersion"  "3.1.15.96" (самая актуальная версия на момент вызова)
"howToUpdateInfoUrl"  
"platformVersion" "8.3.14.1976" (минимально необходимый релиз платформы)
"size" 861 419 004 (понять, что это за размер, мне не удалось)
"upgradeSequence" Массив строковых ID обновлений, с которых возможен переход на текущее
"programVersionUin" "b260aef3-4e79-47da-9042-275b9cae3122" (ID обновления)

 

Из updateInfoUrl можно получить гипертекстовое описание изменений по сравнению с предыдущим релизом. Это надёжнее, чем, например, обращение по адресу https://its.1c.ru/db/content/updinfo/src/<Имя>/<НомерВерсии>/index.htm (где "Имя", например, "hrm30", а "НомерВерсии" 3.1.15.96).

Из howToUpdateInfoUrl можно получить гипертекстовое описание порядка обновления. Впрочем, они обычно редко меняются и всем давно известны.

Метод вызывается, например, в функции ПолучениеОбновленийПрограммы.ИнформацияОДоступномОбновленииСлужебная

 

Метод "update"

Метод POST. Полный адрес для http-запроса: update-platform/programs/update/

Назначение: Получение сведений о файлах обновления и связанных данных, пригодных для скачивания и применения.

Параметры:

    programVersionUin // строка, VersionUin нужного обновления
    upgradeSequence // массив строковых VersionUin, с которых возможен переход на нужное; если пуст или внутренне противоречит заявленным совместимостям обновлений, то метод не сработает
    platformDistributionUin // строка, обычно пуста    
    login // строка, учётная запись пользователя ИТС
    password // строка, пароль учётной записи ИТС
    additionalParameters // массив структур вида key (строка), value (строка), см.выше

Возвращаемые данные:

    platformDistributionUrl // обычно пуст
    errorName // строка, служебное имя ошибки, при ряде ошибок пуста
    errorMessage // строка, подробное описание ошибки, может быть непуста при пустой errorName
    configurationUpdateDataList // если всё верно, содержит результатный массив соответствий, см.ниже
    additionalParameters // обычно пуст

Сведения о файлах содержит configurationUpdateDataList, каждый элемент массива - соответствие, данные об отдельном файле обновления, последним идёт запись о текущем (актуальном) обновлении. Соответствие имеет следующие ключи (для примера, с содержанием)

"executeUpdateProcess"  Ложь
"templatePath" "1c\hrm\3_1_10_111"
"updateFileUrl" "https://dl03.1c.ru/public/file/tmplts/get/46303814-0a6f-4f64-982f-40d5fd733fe7"
"updateFileFormat" "ZIP"
"updateFileName" "1cv8.cfu"
"size" 69 680 085 (это размер zip-архива обновления)
"hashSum" "K8y/Ag384Pq2x5BYYZSwhg=="

 

Из updateFileUrl можно получить уникальный путь для скачивания. Время жизни и актуальности этой ссылки не изучал. Может, это временно генерируемый "на лету" путь для отдачи файла, а может, она стабильна долгое время. На всякий случай, лучше такое не хранить, а сразу качать нужные данные.

Из updateFileName и updateFileFormat можно получить общее понимание, что за данные.

Из templatePath можно получить относительный путь, удобный для организации раздельного развёртывания и хранения данных.

Из hashSum можно получить строку для самопроверки правильности скачивания и раскрытия zip-архива, т.к. это Base64Строка от хеша MD5 от файла cf/cfu (который updateFileName), а не хеш архива.

Метод вызывается, например, в функции ПолучениеОбновленийПрограммы.ПолучитьОписаниеФайловОбновленияКонфигурацииИПлатформы

 

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

Сервер: dl03.1c.ru
Порт: 443
Прокси: не требуется
Авторизация: логин и пароль пользователя ИТС
Таймаут: 43 200

Полный адрес для http-запроса: public/file/tmplts/get/46303814-0a6f-4f64-982f-40d5fd733fe7

Выполняется обычный GET-запрос вида хттпСоединение.Получить(хттпЗапрос, ПутьИмяСкачанногоФайла) и, если всё успешно, в означенном месте появится файл 1Сv8.zip

Это обычный архив, раскрываемый с помощью ЧтениеZipФайла, причём РежимВосстановленияПутейФайловZIP рекомендуется "Восстанавливать". В составе архива находится обычный пакет файлов - UpdInfo.txt, 1cv8upd.htm, 1cv8.mft, иногда описание версий библиотек, а также "Новое в версии" и собственно файл обновления сfu либо полноценный cf.

 

Метод "getInfo"

Метод POST. Полный адрес для http-запроса: update-api.1c.ru/update-platform/patches/getInfo

Назначение: Получение сведений об исправлениях (патчах).

Параметры:

    programVersionList // массив структур или соответствий, в каждом из которых 2 ключа: "programName" (строка), например, "HRM", и "versionNumber" (строка), например, "3.1.15.96". Типовая механика заполняет несколькими версиями (текущей, актуальной планируемой), но достаточно внести хотя бы текущую версию основной конфигурации. Номер версии можно взять, например, из доп.параметров, из ключа "ConfigVersion".
    installedPatchesList // массив строк, идентификаторов исправлений, уже установленных в системе. Может быть получен функцией ПолучениеОбновленийПрограммы.ИдентификаторыУстановленныхИсправлений(), где, кстати, сказано, что в отличие от идентификаторов обновлений, идентификаторы исправлений не являются коммерческой тайной вендора.
    additionalParameters // массив структур вида key (строка), value (строка), см.выше

Возвращаемые данные:

    errorName // строка, служебное имя ошибки, при ряде ошибок пуста
    errorMessage // строка, подробное описание ошибки, может быть непуста при пустой errorName
    patchUpdateList // если всё верно, содержит результатный массив соответствий, см.ниже

Сведения о файлах содержит patchUpdateList, каждый элемент массива - соответствие, данные об отдельном исправлении. Соответствие имеет следующие ключи (для примера, с содержанием)

"applyToVersion" Массив соответствий, определяет, к каким конфигурациям каких версий исправление применимо
"size" 6 097
"ueid" "6b259f86-b42e-4358-8c5e-b556571eebb4"
"name" "EF_30174583" (имя расширения/исправления/файла)
"description"

"В форме П-6 за 9 месяцев не проверяется условие "строки с 700 по 800 заполняются 
только в отчёте за «январь-июнь»""

"modificatedMetadata"  "ОбщийМодуль.ИнтерпретаторКонтрольныхСоотношенийРосстата.ПроверитьУсловиеНаПериод"
"buildDate" 1 603 304 005 000 (нигде не используется, возможно, будет задействовано позже)
"status" "publish"

 

Из applyToVersion можно получить, для каких конфигураций каких релизов может быть применено исправление. Каждое соответствие содержит ключи "programName" (в нотации, аналогичной входному параметру "programVersionList") и "versionNumber" (один или несколько номеров версий в формате "4 точки", и если несколько, то разделены запятой).

Из ueid можно получить, по какому пути следует обращаться для скачивания файла исправления. В самом простом случае, ссылка на скачивание будет иметь вид <ИмяСервера>/public/sso/patches/download?keys=<Идентификатор>, например, "https://dl03.1c.ru/public/sso/patches/download?keys=3e1984b1-28da-4bef-9d75-97513be91fd6"

Из name можно получить, каково имя исправления на сайте, файла в архиве и расширения этого исправления в конфигурации. Следует иметь в виду, что по ссылке находится zip-архив вида patches_<Код>, причём этот "Код" не коррелирует с ИД патча (например, patches_281020201714). В нём вложенный zip-архив, уже с ID патча, например, 90ae5713-81a0-4c3b-b472-3a83d5441eae.zip. В свою очередь, в этом вложенном архиве находятся собственно файл манифеста и файл расширения (например, EF_30174583.cfe).

Из status можно получить, каков текущий статус исправления. Значение "publish" (доступно) или "revocation" (отозвано). Отозванные исправления недоступны для скачивания в интерфейсе https://releases.1c.ru/patches, однако могут быть прочитаны и потому следует учитывать этот ключ при каждом обращении.

Файл манифеста Manifest.xml содержит сведения, в целом дублирующие основной набор, а именно:
<Name>EF_30174583</Name>
<Description>В форме П-6 за 9 месяцев не проверяется условие "строки с 700 по 800 заполняются 
только в отчёте за «январь-июнь»"</Description>
<UUID>90ae5713-81a0-4c3b-b472-3a83d5441eae</UUID> - это ИД патча
<ModifiedMetadata>ОбщийМодуль.ИнтерпретаторКонтрольныхСоотношенийРосстата.ПроверитьУсловиеНаПериод</ModifiedMetadata>
и несколько тегов, описывающих применимость, вида
<AppliedFor>
<ConfigurationName>УправлениеНебольшойФирмой</ConfigurationName> - т.е. тут уже нотация не служебное "Accounting", а "БухгалтерияПредприятия"
<Versions>1.6.22.75</Versions> - если несколько, будут через запятую
</AppliedFor>

Метод вызывается, например, в функции ПолучениеОбновленийПрограммы.ИнформацияОДоступныхИсправленияхКонфигураций

 

Скачивание файла по этим данным желательно выполнять с другим http-соединением, нежели для предыдущих методов. Логин и пароль для соединения не требуются, таймаут достаточно 30.

Метод "getFiles"

Метод POST. Полный адрес для http-запроса: https://update-api.1c.ru/update-platform/patches/getFiles

Назначение: Получение сведений о файлах исправлений, пригодных для скачивания и применения.

Параметры:
    patchUinList (массив строковых гуидов, чьи данные о файлах требуется получить к скачиванию)
    login // строка, учётная запись пользователя ИТС
    password // строка, пароль учётной записи ИТС
    additionalParameters // массив структур вида key (строка), value (строка), см.выше (и кстати, необходимость таких параметров в таком методе означает, что работа с исправлениями также привязана к конкретной ИБ, для которой скачиваем, т.к. требуется передача, например, параметра IBID).

Возвращаемые данные:

    errorName // строка, служебное имя ошибки, при ряде ошибок пуста
    errorMessage // строка, подробное описание ошибки, может быть непуста при пустой errorName
    patchDistributionDataList // если всё верно, содержит результатный массив соответствий, см.ниже

Сведения о файлах содержит patchDistributionDataList , каждый элемент массива - соответствие, данные об отдельном файле исправления, т.е. cfe-расширении. Соответствие имеет следующие ключи (для примера, с содержанием)

"size" 21 977
"patchUeid" "aee7a554-09a6-4837-98ec-b96507613f79"
"patchFileUrl" "https://dl03.1c.ru/public/patches/download/aee7a554-09a6-4837-98ec-b96507613f79"
"patchFileName"   "aee7a554-09a6-4837-98ec-b96507613f79.zip"
"hashSum" "fDFpyPaJYZ4GHJcaDCXIgQ=="


Метод вызывается, например, в функции ПолучениеОбновленийПрограммы.ОписаниеФайловИсправлений

 

P.S. Имя конфигурации в служебной нотации, т.е. "HRM", можно получить с помощью ИнтернетПоддержкаПользователей.СлужебнаяИмяПрограммы()

 

Пока на этом всё. Если в меня кинут ссылкой, где этот рест-сервис нормально описан, или если кто дополнит эту весьма краткую статейку, буду премного благодарен. Ну а если баян, то готов к тухлым помидорам.

Всё изложенное скорее всего актуально на релизах платформы 8.3.14 и выше.

UPD: Дописал про исправления.

 

Обновление обновление конфигурации сервис обновлений скачивание

См. также

БСП. Добавляем отчет в меню Отчеты

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Добавим новый отчет в меню нового документа средствами БСП.

02.04.2024    3073    John_d    10    

88

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1652    dimanich70    8    

14

Заполнение поля адреса в своей обработке [БСП]

Механизмы платформы 1С БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Небольшая шпаргалка по функциям БСП касательно адреса. Так скажем, еще один способ помимо https://infostart.ru/1c/articles/1060970/

12.02.2024    777    FilippovRI    0    

15

Расширяем возможности дополнительных обработок и настраиваем их отладку

БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Уже не одна веб-страница исписана знаниями о дополнительных обработках, как создать, как подключить. Есть масса вариантов, как их можно отладить. Я разобрался в кишках работы библиотеки и покажу, как можно расширить возможности дополнительных отчетов, а также покажу удобный способ отладки.

07.02.2024    2577    YA_418728146    11    

42

1С:БСП Дополнительные реквизиты и сведения

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Бесплатно (free)

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

19.01.2024    6125    PROSTO-1C    5    

46

Бесплатный митап 9 февраля «Библиотеки и фреймворки на 1С и всё, что с этим связано»

БСП (Библиотека стандартных подсистем) Мероприятия Бесплатно (free)

Митап посвящен вопросам создания, использования и поддержке переиспользуемого кода при разработке решений на платформе 1С:Предприятие 8.

15.01.2024    3882    0    Infostart    0    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Yashazz 4722 28.10.20 15:56 Сейчас в теме
Курсив в статье - глюк редактора ИС, он НЕ планировался и смысловой нагрузки не несёт. Надеюсь, модератор в ближайшее время поправит.
+
2. malikov_pro 1293 29.10.20 09:30 Сейчас в теме
Могу сделать коллекцию postman (ссылка) для самостоятельного тестирования HTTP, прикрепите к статье с комментарием?
Aleskey_K; +1
4. Yashazz 4722 29.10.20 10:39 Сейчас в теме
(2) Можно и так, прикреплю, конечно. Я своей обработкой тыркаю, хотя и постман рулит.
+
3. malikov_pro 1293 29.10.20 09:32 Сейчас в теме
Так же хочу разборать тему с мониторингом внешних обращений сервера 1С (куда лезет используя фоновые задания), если интересно можем согласовать усилия.
Fox-trot; nixel; Риник; +3
5. Yashazz 4722 29.10.20 10:39 Сейчас в теме
(3) Не совсем понял - речь о том, куда лезет в рамках инфраструктуры 1С, всякие там календари бухгалтера, юрконсульты и прочая?
+
6. Yashazz 4722 29.10.20 10:41 Сейчас в теме
(3) Вообще да, давно пора сделать эдакий сниффер для 1С-овских лазаний. Я "за" ))
+
7. malikov_pro 1293 29.10.20 10:41 Сейчас в теме
(6) "куда лезет в рамках инфраструктуры 1С" да, HTTP можно завернуть в прозрачный прокси, как TCP мониторить не знаю.
+
23. Angel_19 6 30.10.20 10:46 Сейчас в теме
(7)
как TCP мониторить не знаю

Использую: Wireshark
+
8. malikov_pro 1293 29.10.20 10:48 Сейчас в теме
По общей теме обновлений,
1. есть мысль организовать сервис по доставке обновлений своих разработок до клиентов, вариант переиспользовать данный сервис, на запрос к администрации IS ответ не получил.
2. можно сделать мониторинг обновлений, вывести итог админу на панель управления, к спсику баз с релизами список патчей и расширений с их версиями.
2.1 договорится о требованих к патчам/расширениям и порядке их распространения, статьи по теме из мира node.js
https://habr.com/ru/company/domclick/blog/515848/
https://habr.com/ru/company/domclick/blog/516792/
https://habr.com/ru/company/domclick/blog/518502/
+
9. Yashazz 4722 29.10.20 11:00 Сейчас в теме
(8) По патчам у 1С всё явно "в процессе" и ещё переделываться будет, я там на такие перлы работы сервиса натыкался, что ой.

Насчёт п.2 ведь уже сделано, в БСП есть и довольно симпатично даже. Я это сейчас к своей базе-обновлятору прикручиваю, а в типовых уже.
+
10. Yashazz 4722 29.10.20 11:04 Сейчас в теме
Текучку раскидаю - дополню статью материалом по патчам.
+
11. malikov_pro 1293 29.10.20 11:21 Сейчас в теме
(9) Проблема глубже, проблемно использовать наработки между расширениями. Активно использую КоннекторHTTP, но вынужден копипастить его с префиксами во все расширения. Сделают механизм переиспользования - будет развитие подобное npm.

(4) Добавил коллекцию https://github.com/malikov-pro/update_service_1c, по формату тела запроса не доконца понял, сделал в виде JSON, принимается критика, после доведу до ума.
Могу OpenAPI описание сделать, мне для практики по конвертации OpenAPI в Postman.
Cifer; +1
12. Yashazz 4722 29.10.20 11:33 Сейчас в теме
(11) я и сам ещё не до конца понял, копаюсь
Я например пока не уверен, как они будут даты преобразовывать, по идее ISО, а то пока даты строками идут...
Возможно, имеет смысл погодить, пока сервис устаканится, и тогда делать описания.
+
13. malikov_pro 1293 29.10.20 11:41 Сейчас в теме
(12) В JSON нет типа "Дата", передается строкой, на уровне окументации определяется в каком формате.
"Возможно, имеет смысл погодить" - если есть информация для анализа, то сделать доку и коллекцию для меня относительно просто.
Варианты запросов со скриптами на уровне коллекции уже сделал https://infostart.ru/1c/articles/1282851/

Постепенно набираюсь опыта для цепочки
* Документация RAML с конвертацией OpenAPI
* Создании коллекции из OpenAPI
* Создание плана тестирования в Postman
* Кодогенерация клиента 1С, у Postman под другие языки есть и код открыт, нужно в структуре объектов разобраться и JS подкачать
+
14. Yashazz 4722 29.10.20 11:50 Сейчас в теме
(13) Так я про формат даты и говорю. Сейчас там где-то идёт просто в виде "ДД.ММ.ГГГГ", что под стандарты не особо подходит, а где-то в JS-виде.
+
15. Yashazz 4722 29.10.20 11:54 Сейчас в теме
(13) Например, patches/getInfo отдаёт поле "buildDate", что кагбэ намекает на дату выпуска патча, и в ней нечто похожее на js-дату, но сами они нигде в БСП это поле не применяют, в интерфейсах конфиги и сайта релизов его нет... Вот и хз, то ли потом добавят, то ли вовсе уберут...
+
16. malikov_pro 1293 29.10.20 12:02 Сейчас в теме
(15) Предположу что это часть их CI/CD которую они опубликовали. Сначала использовали для внутренних нужд, после перенесли в БСП.
На документацию не рассчитываю, потому что на сервисы связанные с ИТС их не видел, пр этом обратной совместимости нет, с этим сталкивался при работе в старых конфигурациях УТ 11 (сервис ИТС недоступен).

Пользуя коллекцию Postman можно запускать автотесты c помощью Newman
https://learning.postman.com/docs/running-collections/using-newman-cli/command-line-integration-with-newman/

Могу исходя из текущих "раскопок" написать статью по организации тестирования, относительно простой API, public, и связанный с 1С.
Yashazz; +1
17. qwinter 671 29.10.20 17:22 Сейчас в теме
Занимательно, но какое в этом практическое применение?
+
18. Yashazz 4722 29.10.20 19:14 Сейчас в теме
(17) А из первого абзаца статьи не ясно? Всякие группповые-пакетные скачивания обновлений для массового обслуживания многих ИБ. Вещь, нужная многим позарез.
Fox-trot; +1
19. Yashazz 4722 29.10.20 21:15 Сейчас в теме
Upd: дописал про патчи, хотя бы вкратце.
+
20. Bassgood 1428 29.10.20 23:28 Сейчас в теме
Можно скачать лишь актуальное, самое свежее, обновление, и сведения о нём, но нельзя получить данные о старом годичной давности

Интересно, а если я пропустил пару обновлений, и решил обновится спустя, допустим, пару месяцев - сведения об обновлениях актуальных для моей немного устаревшей версии конфигурации я уже получить не смогу?
А как же в этом случае тогда сейчас обновляются текущие типовые конфигурации - их же можно без проблем обновить до актуального релиза, не обновляясь при этом несколько месяцев?
Или речь в данном предложении идет немного о другом?
+
21. Yashazz 4722 30.10.20 08:41 Сейчас в теме
(20) Насколько я понял, метод info возвращает актуальную версию, самую свежую. А вот update, теоретически, должен возвращать пути к файлам, исходя из переданных исходных данных, особенно исходя из upgradeSequence-массива. Но мне, ввиду отсутствия под рукой нужных ID обновлений, не удалось смоделировать так, чтоб заставить его передать нечто старое, не-последнее. Примерно так.
Логически-то очевидно, что подобные ситуации должны обрабатываться, но экспериментально пока не осилил. Самому интересно. Смогу скачать не-последнее - отпишу, как.
Bassgood; +1
22. Bassgood 1428 30.10.20 10:45 Сейчас в теме
(21)
но экспериментально пока не осилил

Я так понимаю, это можно воспроизвести и понять порядок отработки этих методов путем обновления какой-нибудь старой конфигурации, БП например
+
26. Yashazz 4722 30.10.20 11:27 Сейчас в теме
(22) Вот пытаюсь. У меня задача скачивания промежуточных и старых обновлений, пропущенных, стоит крайне остро. Почему, собственно, и занялся вопросом.
+
24. malikov_pro 1293 30.10.20 10:52 Сейчас в теме
(23) Wireshark это уровень ПК, у меня задача на уровне сети, при этом с выводом в сторону системы логирования. Нужно поднять pfSense и разобраться.
+
25. malikov_pro 1293 30.10.20 10:53 Сейчас в теме
(18) По идее можно сделать локальный репозиторий и из баз обращаться к нему, что-то похожее на WSUS.
+
27. Yashazz 4722 30.10.20 11:27 Сейчас в теме
(25) Есть такое в планах)
+
28. malikov_pro 1293 01.11.20 21:08 Сейчас в теме
(12) Написал статью по описанию в OpenAPI https://infostart.ru/public/1319857/, с утра пройдет модерацию.
Буду рад конструктивной критике и PR в репо с описанием.
+
29. Yashazz 4722 02.11.20 12:45 Сейчас в теме
(28) а почему методы для патчей - невалидные? я там дополнил статью, всё сам тестировал, работает...
+
30. malikov_pro 1293 02.11.20 12:55 Сейчас в теме
(29) "он валидный, но не рабочий" не описывал их методы, дошел только до POST /programs/update/info, но с точки зрения структуры документ OpenAPI валиден.
+
Внимание! Тема сдана в архив