Получить версии интерфейса. Возвращает номера версий программных интерфейсов удаленной системы, доступной через веб-сервис.
// Возвращает номера версий программных интерфейсов удаленной системы, доступной через веб-сервис.
// Позволяет обеспечивать полную обратную совместимость при изменениях в программных интерфейсах
// с помощью их явного версионирования. Например, если программный интерфейс выше определенной версии,
// то только в этом случае допустимо вызывать у него новую функцию.
//
// В целях экономии трафика при интенсивном взаимодействии между вызывающей и вызываемой сторонами
// сведения о версиях кэшируются на одни сутки. Если для целей отладки требуется сбросить кэш раньше этого времени,
// следует удалить соответствующие записи из регистра сведений КэшПрограммныхИнтерфейсов.
//
// Параметры:
// Адрес - Строка - адрес веб-сервиса версионирования интерфейсов InterfaceVersion;
// Пользователь - Строка - имя пользователя веб-сервиса;
// Пароль - Строка - пароль пользователя веб-сервиса;
// Интерфейс - Строка - имя запрашиваемого программного интерфейса, например, "СервисПередачиФайлов".
//
// Возвращаемое значение:
// ФиксированныйМассив - массив строк, каждая строка является представлением номера версии интерфейса.
// Например, "1.0.2.1".
//
// Пример:
// Версии = ПолучитьВерсииИнтерфейса("http://vsrvx/sm", "ivanov",, "СервисПередачиФайлов");
//
// Также для обратной совместимости поддерживается устаревший вариант вызова:
// ПараметрыПодключения = Новый Структура;
// ПараметрыПодключения.Вставить("URL", "http://vsrvx/sm");
// ПараметрыПодключения.Вставить("UserName", "ivanov");
// ПараметрыПодключения.Вставить("Password", "");
// Версии = ПолучитьВерсииИнтерфейса(ПараметрыПодключения, "СервисПередачиФайлов");
//
Функция ПолучитьВерсииИнтерфейса(Знач Адрес, Знач Пользователь, Знач Пароль = Неопределено, Знач Интерфейс = Неопределено) Экспорт
Если ТипЗнч(Адрес) = Тип("Структура") Тогда // для обратной совместимости
ПараметрыПодключения = Адрес;
ИмяИнтерфейса = Пользователь;
Иначе
ПараметрыПодключения = Новый Структура;
ПараметрыПодключения.Вставить("URL", Адрес);
ПараметрыПодключения.Вставить("UserName", Пользователь);
ПараметрыПодключения.Вставить("Password", Пароль);
ИмяИнтерфейса = Интерфейс;
КонецЕсли;
Если Не ПараметрыПодключения.Свойство("URL")
Или Не ЗначениеЗаполнено(ПараметрыПодключения.URL) Тогда
ВызватьИсключение(НСтр("ru = 'Не задан URL сервиса.'"));
КонецЕсли;
ПараметрыПолучения = Новый Массив;
ПараметрыПолучения.Добавить(ПараметрыПодключения);
ПараметрыПолучения.Добавить(ИмяИнтерфейса);
Возврат РегистрыСведений.КэшПрограммныхИнтерфейсов.ДанныеКэшаВерсий(
РегистрыСведений.КэшПрограммныхИнтерфейсов.ИдентификаторЗаписиКэшаВерсий(ПараметрыПодключения.URL, ИмяИнтерфейса),
Перечисления.ТипыДанныхКэшаПрограммныхИнтерфейсов.ВерсииИнтерфейса,
ПараметрыПолучения,
Истина);
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ПолучитьВерсииОтправляемыхСообщений (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)