Обновление расширений через веб-сервис 1С
Через веб-сервис получаем двоичные данные. Если они переданы в виде строки, конвертируем в двоичные данные:
Данные = Base64Значение(Результат.Данные.data);
Подробнее о передаче двоичных данных через веб-сервис: Статья о передаче двоичных данных
Код для установки/обновления расширения
АктуальнаяВерсия = ПолучитьАктуальнуюВерсиюРасширения(Метаданные.Имя, Метаданные.Версия, ТекущаяВерсия);
// Обновляем настройки расширения
Если ТекущаяВерсия <> "" Тогда
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
Расширение = ОбработкаОбъект.НайтиРасширение();
Иначе
Расширение = РасширенияКонфигурации.Создать();
КонецЕсли;
// Настраиваем параметры защиты
ОписаниеЗащиты = Новый ОписаниеЗащитыОтОпасныхДействий;
ОписаниеЗащиты.ПредупреждатьОбОпасныхДействиях = Ложь;
Расширение.ЗащитаОтОпасныхДействий = ОписаниеЗащиты;
// Устанавливаем параметры расширения
Расширение.ИспользоватьОсновныеРолиДляВсехПользователей = Ложь;
Расширение.БезопасныйРежим = Ложь;
Расширение.ИспользуетсяВРаспределеннойИнформационнойБазе = Ложь;
// Устанавливаем расширение
Попытка
Расширение.Записать(АктуальнаяВерсия);
Исключение
СообщенияУстановки = СообщенияУстановки + "(КРИТИЧНО) Ошибка при записи расширения: " + ОписаниеОшибки();
Возврат Ложь;
КонецПопытки;
Как это работает
- Получаем актуальную версию расширения через веб-сервис
- Создаем новое или находим существующее расширение
- Настраиваем параметры защиты и работы расширения
- Записываем обновление с обработкой возможных ошибок
В переменной АктуальнаяВерсия содержатся двоичные данные, полученные через веб-сервис обновлений, который разработан на 1С и опубликован в управленческой базе компании.