1С:Предприятие 8
Система программ

API прямого обмена данными с банком через внешнюю компоненту

В случае, когда возможностей API прямого обмена данными с банком недостаточно, можно использовать технологию обмена с банком из 1С через внешнюю компоненту.

Общие сведения

Внешняя компонента разрабатывается по технологии Native API. В архиве с внешней компонентой должен находиться файл info.xml, описание формата файла см. в приложении Б.

Особенности передачи параметров в/из ВК:

  • массивы, структуры передаются в сериализованном виде (строкой)
  • двоичные данные передаются в BASE64 (строкой)

Более подробно см. в приложении А.

Если при вызове метода ВК возникла ошибка, которая не может быть обработана внутри ВК, необходимо вернуть исключение (CallAsFunc/CallAsProc должны вернуть false). При этом код и сообщение об ошибке возвращаются через обращение к методу ДеталиОшибки().

Транспортный уровень внешней компоненты подобен транспортному уровню в варианте асинхронного обмена с подключением напрямую к серверу банка. ВК поддерживает формат транспортных пакетов, а также порядок обмена пакетами с сервером банка, функции: ОтправитьПакет()ПолучитьСписокПакетов()ПолучитьПакет().

Словарь

  • Хранилище ключей ЭП — абстрактное хранилище ключей ЭП (далее по тексту «хранилище»). В одном хранилище может храниться один или несколько ключей ЭП, либо не храниться ни одного. Физически хранилище может располагаться на аппаратном устройстве (USB-токен, смарткарта). Для идентификации хранилища используется строка (идентификатор аппаратного устройства), которая может быть отображена пользователю.
  • ПИНкод хранилища ключей ЭП — для получения списка ключей, выполнения криптографических операций может потребоваться установка ПИНкода на хранилище (на аппаратном устройстве).
  • Данные ключа ЭП — информация о ключе электронной подписи, записанная во внутреннем формате внешней компоненты. Данные ключа ЭП это фактически ссылка на ключ ЭП в хранилище ключей, кроме того в данных ключа содержит доп. информация о владельце, дате окончания действия ключа и др. Данные ключа ЭП в хранилище могут содержать неполную информацию о ключе ЭП (например, только наименование и регистрационную информацию на сервере банка). Для того, чтобы получить данные ключа ЭП с полным набором информации (ФИО владельца, должность, дата окончания использования), используется функция дополнения ключа ЭП, которая вызывается после установки соединения с сервером банка.

Примечание. Данные ключа ЭП могут быть как сертификатом X.509, так и данными в произвольном формате. Для сертификатов x.509 дополнение не требуется (т.к. все данные уже есть в нем). При вызове функции дополнения следует возвращать сертификат открытого ключа без изменений.

  • Пароль ключа — пароль к закрытому ключу ЭП в хранилище, который необходимо установить перед использованием ключа ЭП для подписи.
  • Дайджест — дополнение электронного документа, полученное на основании электронного документа, которое используется при подписи. Дайджест ЭД может быть получен только после установки соединения с банком.

Функции общего назначения

Функция ДеталиОшибки ()

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

Тип возвращаемого значения: структура, с полями:

  • Код — число — код ошибки
  • Сообщение — строка — сообщение об ошибке для пользователя

Пользователю рекомендуется вывести сообщение об ошибке и код ошибки, если он отличен от нуля.

Пример использования:

Попытка
	ВК.Функция();
Исключение
	ИнформацияОбОшибке = ВК.ДеталиОшибки();
	...
КонецПопытки

Функция Версия ()

Возвращаемое значение строка версия внешней компоненты в формате X.X.X, например 1.0.21.

Процедура Инициализировать (Информация, ВерсияФормата)

Выполняет общую инициализацию перед началом работы.

Параметры:

  • Информация — структура — информация о среде выполнения, с полями:
  • ИмяКонфигурации — строка — например «БухгалтерияПредприятия»;
  • ВерсияКонфигурации — строка — например, «3.0.42.87»;
  • ВерсияПриложения — строка — версия технологической платформы 1С, например, «8.3.7.1719»;
  • ИдентификаторКлиента — УникальныйИдентификатор — уникальный идентификатор клиента. Для данного компьютера и данного пользователя операционной системы идентификатор один, вне зависимости от информационной базы и пользователя информационной базы.;
  • ИнформацияПрограммыПросмотра — строка — Информация о веб-браузере (userAgent);
  • ВерсияФормата — строка — Максимальная версия формата обмена, которую поддерживает текущая информационная база.

Процедура НачатьЖурналирование (ПутьККаталогу)

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

Параметры:

  • ПутьККаталогу — строка — путь к каталогу на диске

Работа с криптографией, ключами ЭП, хранилищами ключей ЭП

Вводная информация

Внешняя компонента является самодостаточной библиотекой для работы с функциями криптографии, ключами ЭП и другими средствами необходимыми для обмена ЭД с банком.

Для использования функций криптографии, где требуется использование закрытой части ключа ЭП, может потребоваться установка пароля ключа ЭП. ВК может сбрасывать ПИНкод хранилища ключей ЭП и пароль закрытого ключа ЭП, например в случае длительного отсутствия активности. Поэтому, перед работой с токеном или ключем ЭП БЭД выполняет проверку, требуется ли установка ПИНкода или пароля ключа ЭП.

Функция ХранилищаКлючейЭП ()

Получает идентификаторы аппаратных устройств (USB-токенов, смарткарт), подключенных к компьютеру. Тип возвращаемого значения: массив, где каждый элемент идентификатор устройства (тип строка).

Функция ТребуетсяПин (Хранилище)

Проверяет, требуется ли для работы с хранилищем установка ПИНкода. При попытке вызова для несуществующего/не найденного хранилища вызывается исключение.

Параметры:

  • Хранилище — строка — идентификатор хранилища.

Тип возвращаемого значения: Булево

  • Истина — для работы с хранилищем необходимо установить ПИНкод.
  • Ложь — в обратном случае

Процедура УстановитьПин (Хранилище, ПинКод)

Устанавливает ПИНкод для работы с хранилищем. При попытке установки неверного ПИНкода вызывается исключение.

Параметры:

  • Хранилище — строка — идентификатор хранилища.
  • ПинКод — строка — ПИНкод

Функция КлючиЭП (Хранилище)

Получает список ключей электронной подписи в хранилище. Данные о ключе ЭП представляются во внутреннем формате ВК.

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

Параметры:

  • Хранилище — строка — идентификатор хранилища ключей ЭП (аппаратного устройства)

Тип возвращаемого значения: массив, где каждый элемент — это данные ключа ЭП (ДвоичныеДанные).

Функция ТребуетсяПароль (ДанныеКлюча)

Для использования закрытой части ключа ЭП может потребоваться установить пароль. Функция проверяет, требуется ли установка пароля для переданного ключа ЭП.

Параметры:

  • ДанныеКлюча — ДвоичныеДанные — данные ключа ЭП

Тип возвращаемого значения: Булево

  • Истина, если для использования ключа ЭП требуется установить пароль
  • Ложь — пароль уже установлен, или не требуется

Процедура УстановитьПароль (ДанныеКлюча, Пароль)

Пытается установить пароль для работы с ключом ЭП.

Параметры:

  • ДанныеКлюча — ДвоичныеДанные — данные ключа ЭП
  • Пароль — строка — пароль

Функция ДанныеКлючаЭП (ДанныеКлюча)

Возвращает данные ключа ЭП в виде структуры.

Параметры:

  • ДанныеКлюча — ДвоичныеДанные — данные ключа ЭП во внутреннем формате ВК

Тип возвращаемого значения: структура, с полями:

  • ИдентификаторХранилища — строка — идентификатор хранилища (для данных банковского ключа ЭП не заполняется)
  • Псевдоним — строка — псевдоним ключа ЭП
  • Отпечаток — строка — уникальный идентификатор ключа ЭП, уникальность поддерживается в рамках всех сертификатов данного вида (для сертификатов x.509 вернуть отпечаток сертификата)
  • СерийныйНомер — строка — серийный номер ключа в hex (для сертификатов x.509 серийный номер сертификата)
  • ИмяИздателя — строка — имя издателя сертификата (для сертификатов x.509 поле CN)
  • ВладелецФИО* — строка — ФИО владельца ключа ЭП
  • ВладелецДолжность* — строка — должность владельца ключа ЭП
  • ДатаОкончания* — дата — указывает последний день, когда можно использовать ключ ЭП

Поля, отмеченные символом *, заполнены после дополнения данных ключа ЭП см. функцию ДополнитьДанныеКлючаЭП.

Функция ПодготовитьПодпись (ДанныеКлюча, Данные)

По переданным данным ключа ЭП и данным подписи возвращает параметры подписи данных: время ожидания подписи и подсказку для пользователя.

Параметры:

  • ДанныеКлюча — ДвоичныеДанные — данные ключа ЭП
  • Данные — ДвоичныеДанные — произвольные двоичные данные или данные ЭД

Возвращаемое значение: структура, с полями:

  • Время — число — время ожидания подписи;
    • -1: подпись без ожидания, диалог не отображать;
    • 0: показать диалог ожидания подписи без обратного отсчета;
    • >0: показать диалог ожидания подписи с обратным отсчетом.
  • Подсказка — строка — сообщение, которое необходимо вывести в диалог ожидания подписи;
  • УстановитьСоединение — булево — признак, что для подписи требуется установка соединения. Соединение необходимо устанавливать для некоторых типов устройств. Например, необходимо получить текст для отображения на экране устройства Trustscreen.

Функция Подписать (ДанныеКлюча, Данные, Подпись)

Выполняет подпись данных на переданном ключе.

Параметры:

  • ДанныеКлюча — ДвоичныеДанные — данные ключа ЭП;
  • Данные — ДвоичныеДанные — произвольные двоичные данные или данные ЭД;
  • Подпись — ДвоичныеДанные — подпись под двоичными данными.

Возвращаемое значение: Булево

  • Истина — если данные были успешно подписаны;
  • Ложь — подпись была отменена пользователем (не ошибка).

Функция ПроверитьПодпись (ДанныеКлюча, Данные, Подпись)

Проверяет, что подпись соответствует данным и ключу ЭП.

Параметры:

  • ДанныеКлюча — ДвоичныеДанные — данные ключа ЭП во внутреннем формате ВК;
  • Данные — ДвоичныеДанные — произвольные данные;
  • Подпись — ДвоичныеДанные — подпись.

Тип возвращаемого значения: Булево — Истина, если подпись соответствует данным и открытому ключу, иначе Ложь

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

Аутентификация на сервере банка

Краткая сводка

Соединение с сервером банка устанавливается с помощью ключа ЭП. Для разделения соединения с разными банками используется данные ключа ЭП. Перед установкой соединения необходимо убедиться, что пароль ключа ЭП установлен. ВК может разрывать существующее соединение, например, при длительном отсутствии активности пользователя. В некоторых сценариях требуется расширенная аутентификация.

Функция УстановитьСоединение (ДанныеКлюча, НастройкиПрокси, ДанныеСоединения, ПараметрыРасширеннойАутентификации)

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

Параметры:

  • ДанныеКлюча — ДвоичныеДанные — данные ключа ЭП
  • НастройкиПрокси — фиксированная структура — данные прокси
  • ДанныеСоединения — структура — информация о параметрах обмена, поля:
  • ИдентификаторОрганизации — строка — идентификатор организации из настройки обмена с банком (при первоначальной настройке не заполняется).
  • БИК — строка — БИК банка, с которым устанавливается соединение
  • КлючУникальности — строка — идентифицирующая пользователя строка, например, “<инн>_<бик>». Может использоваться для сбора статистики подключений (при первоначальной настройке не заполняется).
  • ПараметрыРасширеннойАутентификации — структура — заполняется ВК в случае, если необходимо выполнить расширенную аутентификацию, имеет следующий формат:
  • Способ — строка — способ расширенной аутентификации (РА), может принимать значения либо SMS (РА через одноразовый пароль, отправляемый пользователю на телефон), либо DEVICEAUTO (РА через ожидание, пока пользователь подтвердит расширенную аутентификацию на устройстве).
  • Сессия — структура — сессия расширенной аутентификации, имеет обязательное поле Идентификатор (тип строка) для отображения пользователю на форме
  • Подсказка — строка — информация, которую необходимо вывести пользователю в качестве подсказки.

Возвращаемое значение: Булево — Истина, если соединение успешно установлено, Ложь если требуется расширенная аутентификация

Процедура ОтправитьПарольРасширеннойАутентификацииПоSMS (Сессия)

Отправляет одноразовый пароль расширенной аутентификации по SMS. Вызов необходимо делать после получения параметров расширенной аутентификации с помощью функции УстановитьСоединение().

Параметры:

  • Сессия — структура — контекст расширенной аутентификации (см. функцию ПараметрыРасширеннойАутентификации())

Функция РасширеннаяАутентификация (Параметры)

Завершает установку соединения с сервером банка при расширенной аутентификации.

Параметры:

  • Параметры — структура — параметры расширенной аутентификации с тремя элементами:
  • Способ — строка — установить в значение «SMS» или «DEVICEAUTO»
  • Сессия — структура — значение, полученное при вызове функции УстановитьСоединение()
  • *Пароль — строка — одноразовый пароль расширенной аутентификации, полученный по SMS (только для способа=”SMS»)

Возвращаемое значение: Булево — Истина, если расширенная аутентификация успешно завершена и соединение установлено, Ложь, если пользователь отказался от расширенной аутентификации (возможно, если способ= «DEVICEAUTO»).

Взаимодействие с сервером банка

Краткая сводка

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

Функция НастройкиЭДО ()

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

Возвращаемое значение: ДвоичныеДанные — настройки обмена.

Примечание 1: В настройках ЭД необходимо указать, что ЭД Запрос-зонд должен подписываться для тестирования функций подписи/проверки подписи при настройке пользователем DirectBank.

Примечание 2: Данные о ключах ЭП клиента и банка приходят полностью заполненными и не требуют дополнения.

Дополнительную информацию о формате настройки ЭД см. в Приложении В.

Функция ДополнитьДанныеКлючаЭП (ДанныеКлюча)

Данные ключа ЭП, хранящиеся на аппаратном устройстве, содержат имя ключа ЭП (для представления пользователю) и позволяют выполнить аутентификацию на сервере банка. Тем не менее этих данных может быть недостаточно прикладному решению (например: ФИО владельца ключа, дата окончания действия ключа ЭП и др.) поэтому требуется дополнение. Функция дополняет переданные данные ключа информацией, хранящейся на сервере банка. После дополнения данных ключа ЭП они могут быть получены через функцию ДанныеКлючаЭП().

Параметры:

  • ДанныеКлюча — ДвоичныеДанные — данные ключа ЭП

Тип возвращаемого значения: строка — данные ключа ЭП во внутреннем формате ВК с данными, дополненными по серверу банка.

Примечание: Для сертификатов x.509 функция должна вернуть сам сертификат.

Функция ТребуетсяДополнитьЭД (ЭД)

Для некоторых типов ЭД перед подписью может потребоваться дополнение ЭД. Например, добавление схемы подписи (дайджеста) платежного поручения. Эта информация будет использована внешней компонентой при подписи.

Параметры:

  • ЭД — ДвоичныеДанные — электронный документ

Возвращаемое значение: Булево — Истина, если для подписи требуется дополнить ЭД, иначе Ложь.

Примечание: функция может быть вызвана без подключения ключа ЭП, без подключения к серверу банка.

Функция ДополнитьЭД (ЭД)

Дополняет ЭД данными необходимыми для подписи.

Параметры:

  • ЭД — ДвоичныеДанные — электронный документ

Возвращаемое значение: ДвоичныеДанные — дополненный электронный документ.

Функция ОтправитьПакет (Пакет)

Используется для отправки пакета (транспортного контейнера) в банк.

Параметры:

  • Пакет — ДвоичныеДанные — транспортный пакет, соотв. схеме 1CBank_Packet.xsd

Возвращаемое значение: строка — ответ соответствует XMLсхеме ответа банк.сервиса 1CBank_ResultBank.xsd. Если пакет был принят, то в ответе банк.сервиса должен быть заполнен элемент SendPacketResponse.

Функция ПолучитьСписокПакетов (ОтметкаВремени)

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

Параметры:

  • ОтметкаВремени — строка — время, относительно которого необходимо получить новые пакеты в формате 06.12.2015T12:14:57. Если отметка времени не передана, ВК передаст все пакеты из ВК и, при необходимости, с банковского сервера.

Возвращаемое значение: ДвоичныеДанные — ответ соответствует XML-схеме ответа банк.сервиса 1CBank_ResultBank.xsd. Если запрос был принят, то в ответе банк.сервиса должен быть заполнен элемент GetPacketListResponse.

Функция ПолучитьПакет (ИдПакета)

Получает пакет (транспортный контейнер) из банка по его идентификатору.

Параметры:

  • ИдПакета — строка — транспортный контейнер

Возвращаемое значение: ДвоичныеДанные — ответ соответствует XMLсхеме ответа банк.сервиса 1CBank_ResultBank.xsd. Если пакет найден, то в ответе банк.сервиса должен быть заполнен элемент GetPacketResponse.

Функция НачатьПодтверждениеПлатежногоПоручения (Идентификатор)

Используется для инициализации сессии подтверждения платежного поручения.

Параметры:

  • Идентификатор — строка — (GUID) идентификатор ЭД платежного поручения.

Возвращаемое значение: структура с полями:

  • Сессия — структура — информация о сессии расширенной аутентификации; в структуре должна присутствовать запись с ключом Идентификатор (тип строка) для вывода идентификатора сессии подтверждения в форме ввода кода подтверждения, полученного по SMS.
  • Подсказка — строка — информация для отображения пользователю в диалоге ввода одноразового пароля, полученного по SMS.

Процедура ОтправитьКодПодтвержденияПоSMS (Сессия)

Используется для отправки кода подтверждения по SMS

Параметры: Сессия — структура — контекст расширенной аутентификации

Процедура ПодтвердитьПлатежноеПоручение (Сессия, КодПодтверждения)

Используется для подтверждения платежного поручения.

Параметры:

  • Сессия — структура — сессия подтверждения платежного поручения;
  • КодПодтверждения — строка — код подтверждения, полученный по SMS

Приложение А. Передача массивов, структур и двоичных данных.

Параметры некоторых методов ВК могут иметь «сложный» тип (структура, массив). Непосредственная передача значений таких типов не поддерживаются технологией внешних компонент. Поэтому, при передаче значений таких типов в ВК, выполняется их сериализация в строку, при возврате значений из ВК выполняется их десериализация из строки.

Примеры функций сериализации и десериализации:

Функция Сериализация(Знач Значение)
	Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO);
	ОбъектXDTO = Сериализатор.ЗаписатьXDTO(Значение);
	ЗаписьXML = Новый ЗаписьXML;
	ЗаписьXML.УстановитьСтроку();
	ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ОбъектXDTO);
	Возврат ЗаписьXML.Закрыть();
КонецФункции

Функция Десериализация(Знач ПредставлениеXML)
	ЧтениеXML = Новый ЧтениеXML;
	ЧтениеXML.УстановитьСтроку(ПредставлениеXML);
	ЧтениеXML.Прочитать();
	Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO);
	Возврат Сериализатор.ПрочитатьXML(ЧтениеXML);
КонецФункции

Пример сериализованной структуры и массива:

<Structure xmlns="http://v8.1c.ru/8.1/data/core"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
	<Property name="ВерсияСхемы">
		<Value xsi:type="xs:string">2.02</Value>
	</Property>
	<Property name="ИдентификаторКлиента">
		<Value xsi:type="UUID">0e828c06e4c440c0a5ba67f01f898a1b</Value>
	</Property>
</Structure>
<Array xmlns="http://v8.1c.ru/8.1/data/core"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
	<Value xsi:type="xs:string">866D223868284A</Value>
</Array>
Технология внешних компонент также не позволяет передавать в ВК двоичные данные. Поэтому, при передаче значений такого типа во внешнюю компоненту, они кодируются в BASE64, а при возврате декодируются из BASE64.

Приложение Б. Обновление внешней компоненты.

Для поддержки автоматической проверки и загрузки обновлений используется файл info.xml, который добавляется в архив внешней компоненты, а также публикуется на сервере банка (должен быть доступен по HTTPS).

Шаблон файла info.xml:

 <?xml version="1.0" encoding="utf8"?>
<info>
	<progid>имя расширения</progid>
	<apiv>версия API</apiv>
	<name>имя ВК для отображения клиенту</name>
	<version>версия, в формате X.X.X</version>
	<urladdin>URL addin.zip на сервере банка</urladdin>
	<urladdininfo>URL info.xml на сервере банка</urladdininfo>
</info>
Где:
  • progid — имя расширения для создания объекта ВК в 1С:Предприятии, пример кода:
Новый("AddIn.<имя ВК>. <имя расширения> ")

Это же имя должно возвращаться при вызове функции RegisterExtensionAs внешней компоненты. Более подробно см. http://its.1c.ru/db/metodtorg/content/3221/hdoc. Значение должно удовлетворять требованиям, предъявляемым к именованию переменных встроенного языка 1С.

  • apiv — версия API внешней компоненты для поддержки будущих изменений, актуальную версию API можно узнать из документации на directbank.1c.ru, в настоящее время версия API 1.
  • name — имя внешней компоненты для отображения в настройке ЭД
  • version — версия внешней компоненты для отображения в настройке ЭД, версия также используется для проверки обновлений (см. далее).
  • urladdin — URL на актуальную ВК на https сервере банка
  • urladdininfo — URL на актуальный info.xml на https сервере банка

Пример файла info.xml:

<?xml version="1.0" encoding="utf8"?>
<info>
	<progid>BankNameAddin</progid>
	<apiv>1</apiv>
	<name>Подключаемый модуль “ОА БАНК”</name>
	<version>1.2.3</version>
	<urladdin>https://bankname/1c/addin.zip</urladdin>
	<urladdininfo>https://bankname/1c/info.xml</urladdininfo>
</info>

Приложение В. Тестирование при настройке ЭД

При создании настройки ЭД с банком БЭД выполняет тестирование ВК. При этом устанавливается соединение с банком, выполняется подпись и проверка подписи. Для поддержки полного сценария тестирования необходимо, чтобы ЭД с настройкой (возвращается функцией НастройкаЭД) содержал настройку «подписывать запрос-зонд». Если в настройке ЭД указан данные ключа ЭП банка для подписи ЭД, то извещение о состоянии запрос-зонда должно быть подписано. В случае, если задан сертификат ключа ЭП подписи ЭД со стороны банка, его необходимо поместить в элемент <BankCertificate> настройки ЭД. Сертификаты ключей ЭП клиента необходимо поместить в <CustomerSignature><GroupSignatures><Certificate>.

Например:

...
<CryptoParameters>
    <CSPName>CrypoName</CSPName>
    <CSPType>0</CSPType>
    <SignAlgorithm>GOST R 34.102001</SignAlgorithm>
    <HashAlgorithm>GOST R 34.1194</HashAlgorithm>
    <Encrypted>
    	<EncryptAlgorithm>GOST 2814789</EncryptAlgorithm>
    </Encrypted>
    <BankCertificate> данные ключа ЭП банка в BASE 64 </BankCertificate>
    <CustomerSignature>
    	<GroupSignatures numberGroup="0">
    		<Certificate> данные ключа ЭП клиента в BASE 64 </Certificate>
    	</GroupSignatures>
    </CustomerSignature>
    <URLAddinInfo>https://bankname.ru/1c/info.xml</URLAddinInfo>
</CryptoParameters>
...

Приложение Г. Порядок установки соединения с сервером банка.

При установке соединения с банком может потребоваться расширенная аутентификация. Расширенная аутентификация может быть выполнена либо через SMS, либо на устройстве, которое отображает информацию и ждет действия от пользователя. В обоих способах есть особенности:

  • SMS БЭД вызывает метод отправки пароля через SMS и отображает диалог ввода пароля с пояснением. После того как пользователь введёт пароль, БЭД вызывает метод РасширеннаяАутентификация(Способ=SMS) с введенным паролем и ожидает оповещение о завершении вызова метода ВК. После получения оповещения форма закрывается.
  • Устройство БЭД показывает диалог с пояснением для пользователя и вызывает метод РасширеннаяАутентификация(Способ=DEVICEAUTO). После того как пользователь выполнит действие с устройством (например, подтвердит соединение, нажав кнопку), придет оповещение с результатом. После получения оповещения формат закрывается. В этом сценарии пользователь может отказаться от соединения, при этом результат вызова функции РасширеннаяАутентификация() = Ложь.
API прямого обмена данными с банком через внешнюю компоненту

Приложение Д. Поддержка различных версий формата XML‐схемы.

1С:Библиотека электронных документов поддерживает работу с несколькими версиями формата обмена данными. Прежние версии формата поддерживаются для совместимости с уже выпущенными решениями. Новая функциональность, документы и прочие изменения появляются в новых версиях формата. По умолчанию 1С:БЭД предлагает работать с новой версией формата обмена, однако, если ВК её не поддерживает, умеет работать по версии формата обмена предлагаемой ВК.

Порядок следующий:

  1. При вызове функции Инициализировать () 1С:БЭД передаёт во внешнюю компоненту текущую актуальную версию формата обмена.
  2. При получении настроек обмена (вызов НастройкиЭДО) ВК должна вернуть в 1С настройки обмена в формате, указанном при вызове функции Инициализировать ().
  • Если версия настроек, переданная в Инициализировать (), не поддерживается ВК, ВК должна вернуть настройки в актуальной версии формата, поддерживаемой ВК.
  1. При вызове функций ОтправитьПакет (), ПолучитьСписокПакетов (), ПолучитьПакет () ВК должна вернуть ответ в формате, в котором пришли данные запроса.
  • Если данные запроса в функции ОтправитьПакет () пришли в более старом формате, чем поддерживается 1С:БЭД (см. функцию Инициализировать ()) и ВК, то ВК может вернуть ЭД с настройками ЭД с новым форматом. В этом случае 1С:БЭД поднимет версию формата обмена.