---
title: Получение внешних компонент
slug: bsp/получение-внешних-компонент
---


## ОписаниеВнешнихКомпонент
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Создает таблицу описания внешних компонент, которая используется для обновления из сервиса.
//
// Возвращаемое значение:
//  ТаблицаЗначений - описание запроса внешних компонент:
//    *Идентификатор - Строка - содержит уникальный идентификатор внешней
//                    компоненты, который указывается пользователем в базе публикаций;
//    *Версия        - Строка - содержит версию внешней компоненты;
//    *Наименование  - Строка - содержит наименование компоненты;
//    *ДатаВерсии    - Дата - содержит дату версии (сборки) внешней компоненты.
//    *ОбновлятьАвтоматически - Булево - признак автоматического обновления внешней компоненты.
//
Функция ОписаниеВнешнихКомпонент() Экспорт
```

Пример вызова
```bsl
Результат = ПолучениеВнешнихКомпонент.ОписаниеВнешнихКомпонент() 
```
</details>

## АктуальныеВерсииВнешнихКомпонент
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Выполняет загрузку файлов актуальных версий внешних компонент.
//
// Параметры:
//  ОписаниеВнешнихКомпонент - ТаблицаЗначений - описание внешних компонент, которые необходимо,
//                             загрузить в ИБ. См. функцию ПолучениеВнешнихКомпонент.ОписаниеВнешнихКомпонент.
//                             Если в таблице заполнена версия внешней компоненты, будет выполнена
//                             проверка номера версии, т.е. если номер версии в сервисе равен номеру версии
//                             в ИБ, файл не будет загружен и для версии будет установлена ошибка АктуальнаяВерсия.
//
// Возвращаемое значение:
//  Структура - содержит результат загрузки внешних компонент:
//    * КодОшибки - Строка - строковый код возникшей ошибки, который
//                  может быть обработан вызывающим функционалом:
//                    - <Пустая строка> - обновление выполнено успешно;
//                    - "НеверныйЛогинИлиПароль" - неверный логин или пароль;
//                    - "ПревышеноКоличествоПопыток" - превышено количество попыток
//                      получения обновления с некорректным логином и паролем;
//                    - "ОшибкаПодключения" - ошибка при подключении к сервису;
//                    - "ОшибкаСервиса" - внутренняя ошибка сервиса;
//                    - "НеизвестнаяОшибка" - при получении информации возникла
//                      неизвестная (не обрабатываемая) ошибка;
//                    - "СервисВременноНеДоступен" - на сервер ведутся регламентные работы;
//                    - "НетДоступаКПрограмме" - отсутствует доступ к программе на Портале 1С:ИТС;
//    *СообщениеОбОшибке      - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя;
//    *ИнформацияОбОшибке     - Строка, ФорматированнаяСтрока - сообщение об ошибке для администратора.
//    *ДанныеВнешнихКомпонент - ТаблицаЗначений, Неопределено - содержит информацию о загруженных
//                                внешних компонентах:
//     **Идентификатор        - Строка - содержит идентификатор внешней компоненты, который
//                              указывается пользователем при создании новой компоненты;
//     **Версия               - Строка, Неопределено - содержит номер версии загруженного компонента;
//     **ДатаВерсии           - Дата, Неопределено - содержит дату выхода версии загруженного,
//                              компонента установленную в при заполнении информации о версии
//                              внешней компоненты;
//     **Наименование         - Строка, Неопределено - содержит наименование внешней компоненты, к которой
//                              относится версия;
//     **ИмяФайла             - Строка, Неопределено - содержит имя файла, установленное
//                              в при создании версии внешней компоненты;
//     **Размер               - Число - размер файла;
//     **АдресФайла           - Строка, Неопределено - содержит адрес файла внешней
//                              компоненты во временно хранилище;
//     **КодОшибки            - Строка - содержит код ошибки загрузки внешней компоненты:
//                               - <Пустая строка> - обновление загружено успешно;
//                               - ОтсутствуетКомпонента - в сервисе внешних компонент
//                                 не обнаружена внешняя компонента по переданному идентификатору;
//                               - ФайлНеЗагружен - при попытке загрузить файл внешней компоненты из сервиса,
//                                 возникла ошибка;
//                               - АктуальнаяВерсия - при получении последней (актуальной) внешней компоненты
//                                 не обнаружена более новая версия.
//
// Пример:
//	// 1. Обновление версии
//
//	МодульПолучениеВнешнихКомпонент = ОбщегоНазначения.ОбщийМодуль("ПолучениеВнешнихКомпонент");
//	ОписаниеВнешнихКомпонент = МодульПолучениеВнешнихКомпонент.ОписаниеВнешнихКомпонент();
//
//	СтрокаТаблицы = ОписаниеВнешнихКомпонент.Добавить();
//	СтрокаТаблицы.Идентификатор = "InputDevice";
//	СтрокаТаблицы.Версия        = "8_1_7_0"; // Допустимо оставить версию пустой.
//
//	Результат = МодульПолучениеВнешнихКомпонент.АктуальныеВерсииВнешнихКомпонент(ОписаниеВнешнихКомпонент);
//
//	// Результат загрузки:
//	Результат.КодОшибки          = "";
//	Результат.СообщениеОбОшибке  = "";
//	Результат.ИнформацияОбОшибке = "";
//
//	СтрокаРезультата = Результат.ОписаниеВнешнихКомпонент[0];
//	СтрокаРезультат.Идентификатор = "InputDevice";
//	СтрокаРезультат.Версия        = "8_1_8_0";
//	СтрокаРезультат.ДатаВерсии    = '10.01.2017 18:00';
//	СтрокаРезультат.Наименование  = "1С:Сканеры штрихкода (NativeApi)";
//	СтрокаРезультат.ИмяФайла      = "Драйвер1СУстройстваВводаNative_8_1_8_0.zip";
//	СтрокаРезультат.АдресФайла    = [uid временного хранилища];
//	СтрокаРезультат.КодОшибки     = "";
//
//	// 2. Ошибка работы с сервисом
//
//	МодульПолучениеВнешнихКомпонент = ОбщегоНазначения.ОбщийМодуль("ПолучениеВнешнихКомпонент");
//	ОписаниеВнешнихКомпонент = МодульПолучениеВнешнихКомпонент.ОписаниеВнешнихКомпонент();
//
//	СтрокаТаблицы = ОписаниеВнешнихКомпонент.Добавить();
//	СтрокаТаблицы.Идентификатор = "ProtonScanner";
//	СтрокаТаблицы.Версия        = "1_1";
//
//	Результат = МодульПолучениеВнешнихКомпонент.АктуальныеВерсииВнешнихКомпонент(ОписаниеВнешнихКомпонент);
//
//	// Результат загрузки
//	Результат.КодОшибки                = "СервисВременноНедоступен";
//	Результат.СообщениеОбОшибке        = "Сервис временно не доступен в связи с регламентными работами.";
//	Результат.ИнформацияОбОшибке       = "Не удалось подключиться к сервису внешних компонент.
//		|Сервис временно недоступен.";
//	Результат.ОписаниеВнешнихКомпонент = Неопределено;
//
//	// 3. Ошибка загрузки внешней компоненты
//
//	МодульПолучениеВнешнихКомпонент = ОбщегоНазначения.ОбщийМодуль("ПолучениеВнешнихКомпонент");
//	ОписаниеВнешнихКомпонент = МодульПолучениеВнешнихКомпонент.ОписаниеВнешнихКомпонент();
//
//	СтрокаТаблицы = ОписаниеВнешнихКомпонент.Добавить();
//	СтрокаТаблицы.Идентификатор = "ProtonScanner";
//	СтрокаТаблицы.Версия        = "1_2";
//
//	Результат = МодульПолучениеВнешнихКомпонент.АктуальныеВерсииВнешнихКомпонент(ОписаниеВнешнихКомпонент);
//
//	// Результат загрузки
//	Результат.КодОшибки          = "";
//	Результат.СообщениеОбОшибке  = "";
//	Результат.ИнформацияОбОшибке = "";
//	Результат.ОписаниеВнешнихКомпонент = Неопределено;
//
//	СтрокаРезультата = Результат.ОписаниеВнешнихКомпонент[0];
//	СтрокаРезультат.Идентификатор = "ProtonScanner";
//	СтрокаРезультат.Версия        = Неопределено;
//	СтрокаРезультат.ДатаВерсии    = Неопределено;
//	СтрокаРезультат.Наименование  = Неопределено;
//	СтрокаРезультат.ИмяФайла      = Неопределено;
//	СтрокаРезультат.АдресФайла    = Неопределено;
//	СтрокаРезультат.КодОшибки     = "АктуальнаяВерсия";
//
Функция АктуальныеВерсииВнешнихКомпонент(ОписаниеВнешнихКомпонент) Экспорт
```

Пример вызова
```bsl
Результат = ПолучениеВнешнихКомпонент.АктуальныеВерсииВнешнихКомпонент(ОписаниеВнешнихКомпонент) 
```
</details>

## ВерсииВнешнихКомпонент
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Выполняет загрузка файлов версий внешних компонент.
//
// Параметры:
//  ОписаниеВнешнихКомпонент - ТаблицаЗначений - описание внешних компонент, которые необходимо,
//                             загрузить в ИБ. См. функцию ПолучениеВнешнихКомпонент.ОписаниеВнешнихКомпонент.
//
// Возвращаемое значение:
//  Структура - содержит результат загрузки внешних компонент:
//    * КодОшибки - Строка - строковый код возникшей ошибки, который
//                  может быть обработан вызывающим функционалом:
//                    - <Пустая строка> - обновление выполнено успешно;
//                    - "НеверныйЛогинИлиПароль" - неверный логин или пароль;
//                    - "ПревышеноКоличествоПопыток" - превышено количество попыток
//                      получения обновления с некорректным логином и паролем;
//                    - "ОшибкаПодключения" - ошибка при подключении к сервису;
//                    - "ОшибкаСервиса" - внутренняя ошибка сервиса;
//                    - "НеизвестнаяОшибка" - при получении информации возникла
//                      неизвестная (не обрабатываемая) ошибка;
//                    - "СервисВременноНеДоступен" - на сервер ведутся регламентные работы;
//                    - "НетДоступаКПрограмме" - отсутствует доступ к программе на Портале 1С:ИТС;
//    *СообщениеОбОшибке      - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя;
//    *ИнформацияОбОшибке     - Строка, ФорматированнаяСтрока - сообщение об ошибке для администратора.
//    *ДанныеВнешнихКомпонент - ТаблицаЗначений, Неопределено - содержит информацию о загруженных
//                              внешних компонентах:
//     **Идентификатор        - Строка - содержит идентификатор внешней компоненты, который
//                              указывается пользователем при создании новой компоненты;
//     **Версия               - Строка, Неопределено - содержит номер версии загруженного компонента;
//     **ДатаВерсии           - Дата, Неопределено - содержит дату выхода версии загруженного,
//                              компонента установленную в при заполнении информации о версии
//                              внешней компоненты;
//     **Наименование         - Строка, Неопределено - содержит наименование внешней компоненты, к которой
//                              относится версия;
//     **ИмяФайла             - Строка, Неопределено - содержит имя файла, установленное
//                              в при создании версии внешней компоненты;
//     **Размер               - Число - размер файла;
//     **АдресФайла           - Строка, Неопределено - содержит адрес файла внешней
//                              компоненты во временно хранилище;
//     **КодОшибки            - Строка - содержит код ошибки загрузки внешней компоненты:
//                               - <Пустая строка> - обновление загружено успешно;
//                               - ОтсутствуетКомпонента - в сервисе внешних компонент
//                                 не обнаружена внешняя компонента по переданному идентификатору;
//                               - ФайлНеЗагружен - при попытке загрузить файл внешней компоненты из сервиса,
//                                 возникла ошибка;
//                               - ОтсутствуетВерсия - в сервисе внешних компонент не обнаружена версия
//                                 внешней компонента по переданному номеру версии.
//
// Пример:
//	// 1. Обновление версии
//
//	МодульПолучениеВнешнихКомпонент = ОбщегоНазначения.ОбщийМодуль("ПолучениеВнешнихКомпонент");
//	ОписаниеВнешнихКомпонент = МодульПолучениеВнешнихКомпонент.ОписаниеВнешнихКомпонент();
//
//	СтрокаТаблицы = ОписаниеВнешнихКомпонент.Добавить();
//	СтрокаТаблицы.Идентификатор = "InputDevice";
//	СтрокаТаблицы.Версия        = "8_1_8_0";
//
//	Результат = МодульПолучениеВнешнихКомпонент.АктуальныеВерсииВнешнихКомпонент(ОписаниеВнешнихКомпонент);
//
//	// Результат загрузки:
//	Результат.КодОшибки          = "";
//	Результат.СообщениеОбОшибке  = "";
//	Результат.ИнформацияОбОшибке = "";
//
//	СтрокаРезультата = Результат.ОписаниеВнешнихКомпонент[0];
//	СтрокаРезультат.Идентификатор = "InputDevice";
//	СтрокаРезультат.Версия        = "8_1_8_0";
//	СтрокаРезультат.ДатаВерсии    = '10.01.2017 18:00';
//	СтрокаРезультат.Наименование  = "1С:Сканеры штрихкода (NativeApi)";
//	СтрокаРезультат.ИмяФайла      = "Драйвер1СУстройстваВводаNative_8_1_8_0.zip";
//	СтрокаРезультат.АдресФайла    = [uid временного хранилища];
//	СтрокаРезультат.КодОшибки     = "";
//
//	// 2. Ошибка работы с сервисом
//
//	МодульПолучениеВнешнихКомпонент = ОбщегоНазначения.ОбщийМодуль("ПолучениеВнешнихКомпонент");
//	ОписаниеВнешнихКомпонент = МодульПолучениеВнешнихКомпонент.ОписаниеВнешнихКомпонент();
//
//	СтрокаТаблицы = ОписаниеВнешнихКомпонент.Добавить();
//	СтрокаТаблицы.Идентификатор = "ProtonScanner";
//	СтрокаТаблицы.Версия        = "1_1";
//
//	Результат = МодульПолучениеВнешнихКомпонент.АктуальныеВерсииВнешнихКомпонент(ОписаниеВнешнихКомпонент);
//
//	// Результат загрузки
//	Результат.КодОшибки                = "СервисВременноНедоступен";
//	Результат.СообщениеОбОшибке        = "Сервис временно не доступен в связи с регламентными работами.";
//	Результат.ИнформацияОбОшибке       = "При подключении к сервису ХХХХХХХХ возникли ошибки ХХХХХХХ.";
//	Результат.ОписаниеВнешнихКомпонент = Неопределено;
//
//	// 3. Ошибка загрузки внешней компоненты
//
//	МодульПолучениеВнешнихКомпонент = ОбщегоНазначения.ОбщийМодуль("ПолучениеВнешнихКомпонент");
//	ОписаниеВнешнихКомпонент = МодульПолучениеВнешнихКомпонент.ОписаниеВнешнихКомпонент();
//
//	СтрокаТаблицы = ОписаниеВнешнихКомпонент.Добавить();
//	СтрокаТаблицы.Идентификатор = "ProtonScanner";
//	СтрокаТаблицы.Версия        = "1_2";
//
//	Результат = МодульПолучениеВнешнихКомпонент.АктуальныеВерсииВнешнихКомпонент(ОписаниеВнешнихКомпонент);
//
//	// Результат загрузки
//	Результат.КодОшибки                = "";
//	Результат.СообщениеОбОшибке        = "";
//	Результат.ИнформацияОбОшибке       = "";
//	Результат.ОписаниеВнешнихКомпонент = Неопределено;
//
//	СтрокаРезультата = Результат.ОписаниеВнешнихКомпонент[0];
//	СтрокаРезультат.Идентификатор = "ProtonScanner";
//	СтрокаРезультат.Версия        = Неопределено;
//	СтрокаРезультат.ДатаВерсии    = Неопределено;
//	СтрокаРезультат.Наименование  = Неопределено;
//	СтрокаРезультат.ИмяФайла      = Неопределено;
//	СтрокаРезультат.АдресФайла    = Неопределено;
//	СтрокаРезультат.КодОшибки     = "ОтсутствуетВерсия";
//
Функция ВерсииВнешнихКомпонент(ОписаниеВнешнихКомпонент) Экспорт
```

Пример вызова
```bsl
Результат = ПолучениеВнешнихКомпонент.ВерсииВнешнихКомпонент(ОписаниеВнешнихКомпонент) 
```
</details>

## ДоступнаЗагрузкаВнешнихКомпонент
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Проверяет возможность загрузки внешних компонент.
//
// Возвращаемое значение:
//  Булево - если Истина, загрузка внешних компонент доступна.
//
Функция ДоступнаЗагрузкаВнешнихКомпонент() Экспорт
```

Пример вызова
```bsl
Результат = ПолучениеВнешнихКомпонент.ДоступнаЗагрузкаВнешнихКомпонент() 
```
</details>

## ДоступнаИнтерактивнаяЗагрузкаВнешнихКомпонент
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Проверяет возможность запуска обработки обновления внешних компонент.
//
// Возвращаемое значение:
//  Булево - если Истина, обработка обновления внешних компонент доступна.
//
Функция ДоступнаИнтерактивнаяЗагрузкаВнешнихКомпонент() Экспорт
```

Пример вызова
```bsl
Результат = ПолучениеВнешнихКомпонент.ДоступнаИнтерактивнаяЗагрузкаВнешнихКомпонент() 
```
</details>

## ДоступноОбновлениеВнешнихКомпонент
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

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

Пример вызова
```bsl
Результат = ПолучениеВнешнихКомпонент.ДоступноОбновлениеВнешнихКомпонент(Идентификаторы);
```
</details>

## НастройкиОбновленияВнешнихКомпонент
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Возвращает настройки обновления внешних компонент.
//
// Возвращаемое значение:
//  Структура - Настройки регламентного задания обновления внешних компонент.
//    **ВариантОбновления - Число - вариант обновления внешних компонент;
//                    0 - отключено;
//                    1 - По расписанию через Интернет;
//                    2 - По расписанию через Файл;
//    **ФайлВнешнихКомпонент - Строка - путь к файлу внешних компонент;
//    **Расписание - РасписаниеРегламентногоЗадания - расписание обновления внешних компонент;
//    **ПредставлениеРасписания - Строка - пользовательское представление расписания;
//    **ДоступнаЗагрузкаВнешнихКомпонент - Булево - возможность загрузки внешних компонент.
//
Функция НастройкиОбновленияВнешнихКомпонент() Экспорт
```

Пример вызова
```bsl
Результат = ПолучениеВнешнихКомпонент.НастройкиОбновленияВнешнихКомпонент() 
```
</details>

## ИзменитьНастройкиОбновленияВнешнихКомпонент
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Изменяет настройки обновления внешних компонент.
//
// Параметры:
//  Настройки - Структура - Настройки регламентного задания обновления внешних компонент.
//    **ВариантОбновления - Число - вариант обновления внешних компонент;
//    **ФайлВнешнихКомпонент - Строка - путь к файлу внешних компонент;
//    **Расписание - РасписаниеРегламентногоЗадания - расписание обновления внешних компонент.
//
Процедура ИзменитьНастройкиОбновленияВнешнихКомпонент(Настройки) Экспорт
```

Пример вызова
```bsl
ПолучениеВнешнихКомпонент.ИзменитьНастройкиОбновленияВнешнихКомпонент(Настройки) 
```
</details>

---

© 2024, **ООО 1С-Софт**  
Все права защищены. Эта программа и сопроводительные материалы предоставляются  
в соответствии с условиями лицензии [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/legalcode).

---
