Skip to content

Commit

Permalink
Add functions for sftp linux (#113)
Browse files Browse the repository at this point in the history
Добавлены функции для работы с SFTP на ОС Linux с помощью командной строки и утилит: curl, sshpass, expect
  • Loading branch information
thvvmas authored Oct 1, 2024
1 parent 38c9027 commit b4b7c46
Show file tree
Hide file tree
Showing 15 changed files with 1,836 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -174,12 +174,21 @@
ЭлементНаследования = Справочники.пбп_ТипыИнтеграций
.ПолучитьПредопределенныйЭлементНаследованияНастроекТипаИнтеграции(РеквизитыОбъекта.ТипИнтеграции);
Если ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.Каталог
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.FTPРесурсы
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ПочтовыйКлиент Тогда
УстановитьВидимостьЭлементовДляТипаФайловыеОбмены();

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ПользовательскаяФункция", УстанавливаемоеСвойство,
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство,
РеквизитыОбъекта.ИспользоватьПользовательскиеФункции);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.FTPРесурсы Тогда
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Путь к каталогу на сервере'");

пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ТочкаВхода", УстанавливаемоеСвойство, Истина);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, "ПараметрыВхода", УстанавливаемоеСвойство, Ложь);
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПользовательскаяФункция, УстанавливаемоеСвойство,
РеквизитыОбъекта.ИспользоватьПользовательскиеФункции);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.COM Тогда
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Функция / запрос'");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,7 @@
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, СписокНастроекСтрока, УстанавливаемоеСвойство, Ложь);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.FTPРесурсы Тогда
Элементы.СтрокаПодключения.Заголовок = НСтр("ru = 'Путь к каталогу'");
Элементы.СтрокаПодключения.Заголовок = НСтр("ru = 'Адрес сервера'");

УстановитьВидимостьЭлементовДляТипаФайловыеОбмены();

Expand Down
1,025 changes: 1,025 additions & 0 deletions src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт

Описание.Имя = "ПроектнаяБиблиотекаПодсистем";
Описание.Версия = "1.0.2.5";
Описание.Версия = "1.0.2.6";

// Требуется библиотека стандартных подсистем.
Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -814,6 +814,52 @@

#Область МетодыАналогиБСП

// Аналог метода БСП. Определяет режим эксплуатации информационной базы файловый (Истина) или серверный (Ложь).
// При проверке используется СтрокаСоединенияИнформационнойБазы, которую можно указать явно.
//
// Параметры:
// СтрокаСоединенияИнформационнойБазы - Строка - параметр используется, если
// нужно проверить строку соединения не текущей информационной базы.
//
// Возвращаемое значение:
// Булево - Истина, если файловая.
//
Функция ИнформационнаяБазаФайловая(Знач СтрокаСоединенияИнформационнойБазы = "") Экспорт

Если ПустаяСтрока(СтрокаСоединенияИнформационнойБазы) Тогда
СтрокаСоединенияИнформационнойБазы = СтрокаСоединенияИнформационнойБазы();
КонецЕсли;
Возврат СтрНайти(ВРег(СтрокаСоединенияИнформационнойБазы), "FILE=") = 1;

КонецФункции

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

ИменаПодсистем = пбп_СтандартныеПодсистемыСлужебныйПовтИсп.ИменаПодсистем();
Возврат ИменаПодсистем.Получить(ПолноеИмяПодсистемы) <> Неопределено;

КонецФункции

// Аналог метода БСП. Возвращает ссылку на общий модуль или модуль менеджера по имени.
//
// Параметры:
Expand Down Expand Up @@ -1211,10 +1257,6 @@

#КонецОбласти

// Аналог метода БСП. Пока заглушка, см. ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания
Процедура ПриНачалеВыполненияРегламентногоЗадания(РегламентноеЗадание = Неопределено) Экспорт
КонецПроцедуры

// Аналог метода БСП. Возвращает структуру, содержащую значения реквизитов, прочитанные из информационной базы по ссылке на объект.
// Рекомендуется использовать вместо обращения к реквизитам объекта через точку от ссылки на объект
// для быстрого чтения отдельных реквизитов объекта из базы данных.
Expand Down Expand Up @@ -1477,6 +1519,25 @@

КонецФункции

// Аналог меотда БСП Возвращает код основного языка информационной базы, например "ru".
// На котором программно записываются автогенерируемые строки в информационную базу.
// Например, при начальном заполнении информационной базы данными из макета, автогенерации комментария
// к проводке или определении значения параметра ИмяСобытия метода ЗаписьЖурналаРегистрации.
//
// Возвращаемое значение:
// Строка
//
Функция КодОсновногоЯзыка() Экспорт

Если ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщийМодуль("МультиязычностьСервер");
Возврат МодульМультиязычностьСервер.КодОсновногоЯзыка();
КонецЕсли;

Возврат Метаданные.ОсновнойЯзык.КодЯзыка;

КонецФункции

// Аналог метода БСП. Возвращает значения реквизитов, прочитанные из информационной базы для нескольких объектов.
// Рекомендуется использовать вместо обращения к реквизитам объекта через точку от ссылки на объект
// для быстрого чтения отдельных реквизитов объекта из базы данных.
Expand Down Expand Up @@ -1947,6 +2008,44 @@

КонецФункции

#Область ТекущееОкружение

// Аналог метода БСП. Возвращает Истина, если текущий сеанс выполняется на сервере, работающем под управлением ОС Windows.
//
// Возвращаемое значение:
// Булево - Истина, если сервер работает под управлением ОС Windows.
//
Функция ЭтоWindowsСервер() Экспорт

СистемнаяИнформация = Новый СистемнаяИнформация;
Возврат СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86
Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64;

КонецФункции

// Аналог метода БСП. Возвращает Истина, если текущий сеанс выполняется на сервере, работающем под управлением ОС Linux.
//
// Возвращаемое значение:
// Булево - Истина, если сервер работает под управлением ОС Linux.
//
Функция ЭтоLinuxСервер() Экспорт

СистемнаяИнформация = Новый СистемнаяИнформация;
Возврат СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86
Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86_64;

КонецФункции

#КонецОбласти // ТекущееОкружение

#Область Прочее

// Аналог метода БСП. Пока заглушка, см. ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания
Процедура ПриНачалеВыполненияРегламентногоЗадания(РегламентноеЗадание = Неопределено) Экспорт
КонецПроцедуры

#КонецОбласти // Прочее

#КонецОбласти

#Область ПользовательскиеФункции
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,34 @@

КонецФункции

// См. пбп_ОбщегоНазначенияСервер.ИнформационнаяБазаФайловая.
Функция ИнформационнаяБазаФайловая(Знач СтрокаСоединенияИнформационнойБазы = "") Экспорт

Модуль = ПолучитьМодуль();
Возврат Модуль.ИнформационнаяБазаФайловая(СтрокаСоединенияИнформационнойБазы);

КонецФункции

#Область ТекущееОкружение

// См. пбп_ОбщегоНазначенияСервер.ЭтоWindowsСервер.
Функция ЭтоWindowsСервер() Экспорт

Модуль = ПолучитьМодуль();
Возврат Модуль.ЭтоWindowsСервер();

КонецФункции

// См. пбп_ОбщегоНазначенияСервер.ЭтоLinuxСервер.
Функция ЭтоLinuxСервер() Экспорт

Модуль = ПолучитьМодуль();
Возврат Модуль.ЭтоLinuxСервер();

КонецФункции

#КонецОбласти // ТекущееОкружение

#Область СериализацияXML

// См. пбп_ОбщегоНазначенияСервер.ЗначениеВСтрокуXML.
Expand Down
Loading

0 comments on commit b4b7c46

Please sign in to comment.