МТС: +7 (917) 449-09-97 Уфа: +7 (347) 25-88-290

Amazon 1С S3. Часть 1. Интерфейс

Amazon 1с - разработка обработки взаимодействия с облаком S3.

Данной публикацией я открываю цикл статей по написанию обработки взаимодействия с облаком Amazon 1С S3.

Обработка Amazon s3 позволяет получат список файлов по фильтру, скачать необходимые файлы с Amazon s3 используя amazon s3 api, отправлять файлы напрямую из 1С используя multipart/form-data.

Основная сложность работы с облаком Amazon s3 связана с тем, что 1С в http запросах умеет использовать только basic аутентификацию. В Amazon же используется AWS Signature Version 4. Вот такую аутентификацию я и буду создавать используя средства 1С.

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

Теперь откроем документацию по Amazon S3 REST API. Для работы с файлами в облаке нам необходимо будет использовать запросы с аутентификацией AWS Signature Version 4. Процесс получения сигнатуры для отправки в запросе описан на схеме.

StringToSign зависит от типа запроса, как эта строка формируется я покажу в следующих статьях.

Чтобы получить SigningKey нам необходимо последовательно выполнить 4 хеш функции HMAC-SHA256 передавая в качестве ключа значение предыдущей функции.

Итоговую сигнатуру вычисляем с помощью хеш функции передавай в качестве ключа SigningKey и StringToSign в качестве параметра вычисления хеша.

В конце сигнатуру приводим к шестнадцатеричной строке.

Разработка интерфейса обработки.

В этой части я буду разрабатывать интерфейсную часть обработки. Приступим.

Первое, добавим новую обработку в дереве конфигурации и назовем ее AmazonS3. Далее создадим новую управляемую форму и на ней разместим группу — страницы для размещения трех вкладок. Потом добавим три группы с видом — страница. В корень формы добавим стандартную группу без отображения, имя — ГруппаЛоги.

amazon 1с

Второе, добавим необходимые реквизиты. В основном все строкового типа с длинной 0 и одну таблицу значений.

amazon 1с

Теперь разместим часть реквизитов на странице Настройки.

amazon 1с

И вниз формы перенесем реквизит Logs. Отключим вывод заголовка и выберем много строчный режим.

amazon 1с

У элемента СтраницаНастройки поменяем заголовок на «Настройки». Тоже самое сделаем с элементами СтраницаЗагрузка и СтраницаВыгрузка. Установим заголовки «Загрузка» и «Выгрузка».

Третье, добавим две команды «ВыгрузитьФайлы» и «ЗагрузитьФайлыXML». На страницу «Выгрузка» перенесем таблицу значений «СписокВыгрузки», в ее командную панель перенесем команду «ВыгрузитьФайлы».

amazon 1с

И на странице «Загрука» разместим реквизит «ПапкаНаКомпьютере» и команду «ЗагрузитьФайлыXML».

У обоих команд изменим цвет фона и шрифт.

amazon 1с

Логика обработки

Четвертое, откроем модуль формы и создадим область «Интерфейс».

И у элемента «ПапкаНаКомпьютере» изменим свойство КнопкаВыбора — Да. Создадим, на клиенте, обработчик события «НачалоВыбора». В обработчике разместим код под вызову диалога выбора файла. Так же для отказа от модальности, результат выбора будем обрабатывать через Оповещение. Обработаем оповещение и если папка выбрана, то полученный результат поместим в реквизит «ПапкаНаКомпьютере».

amazon 1с

Чтобы значения в реквизитах автоматически сохранялись нам необходимо изменить свойство формы. «АвтоматическоеСохранение» в Использовать, и указать какие реквизиты будут автоматически сохранять свои значения при закрытии формы и восстанавливать их при открытии.

amazon 1с

Теперь создадим логику работы с таблицей «СписокВыгрузки». Данный список будет содержать путь к файлу и имя файла, которые необходимо загрузить в облако. У элемента «СписокВыгрузки», на клиенте, создадим обработчик события «ПередНачаломДобавления». Откажемся от стандартной обработки события, чтобы разместить код вызова диалога выбора файла.

В обработчике оповещения обработаем полученные данные. Если данные получены то добавим строку в таблицу и заполним реквизиты полным путем к файлу. Чтобы получить имя файла надо обработать полный путь.

amazon 1с

Если сейчас запустить обработку в пользовательском режиме, то мы увидим, что элемент Logs не растягивается до конца формы. Чтобы это исправить надо отключить свойство «АвтоМаксимальнаяШирина».

Вернемся в модуль формы и создадим область «ОбработчикиСобытийФормы». В ней разместим стандартный обработчик формы «ПриСозданииНаСервере». Здесь я размещу на время отладки код по заполнению таблицы значений тестовыми данными.

amazon 1с

В результате вот так выглядит наша обработка.

amazon 1с

На этом все, спасибо за внимание. В следующих частях будет интереснее.

Вторая часть.
Третья часть.
Четвертая часть.

Купить и скачать обработку.

У этой записи один комментарий

Добавить комментарий

Закрыть меню
×
×

Корзина