Возникла задача переслать файлы по sftp, платформа этого делать не умеет. Пришлось поставить 1С:Исполнитель.
Для этого скачиваем
Liberica Full JDK 11.0.11+9 x86 64 bit для Windows. Нужна именно версия Full с поддержкой OpenJFX.
Устанавливаем, прописываем JAVA_HOME для всех пользователей и мне еще пришлось рестартануть сервер 1С, т.к. иначе он не видел джаву.
Теперь ставим Дистрибутив среды разработки для 1С:Исполнитель для Windows.
Пишем скрипт, который будет забирать файлы из папки и отправлять по sftp. Cохраняем в папке доступной серверу 1С предприятия. Ниже его текст:
метод Скрипт(Папка: Строка,Логин: Строка, Пароль: Строка, ИмяСервера: Строка, Путь:Строка)
исп Соединение = новый СоединениеSsh(ИмяСервера, Логин, Пароль)
исп Фтп = Соединение.ОткрытьСоединениеSftp()
Фтп.УстановитьТекущийКаталог(Путь)
пер НастройкиПоиска: НастройкиПоискаФайлов
НастройкиПоиска = новый НастройкиПоискаФайлов()
.ИмяСодержит(".")
.МаксимальнаяГлубина(1)
.ИсключитьФайлы(Ложь)
.ИсключитьКаталоги(Истина)
пер СписокФайлов = Файлы.Найти(Папка, НастройкиПоиска)
для Файл из СписокФайлов
Фтп.Поместить(Файл)
;
для Файл из СписокФайлов
Файлы.Удалить(Файл,Истина)
;
;
Приведу код, для вызова скрипта на стороне 1С:
Процедура ВыгрузитьSFTP()
ТекКаталог = """c:\Program Files\1C\1CE\components\1c-executor-ide-2020.2.5+487-x86_64\plugins\com.e1c.g5rt.dt.executor.core_0.1.0.v202105241321\embedded\bin\";
СтрокаЗапуска=ТекКаталог+"executor.cmd"" -s "+ТекКаталог+"upload.sbsl"" ""c:\\1C\\Обмен\\"" ""login"" ""password"" ""ip_address"" ""incoming""";
ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
ПараметрыЗапускаПрограммы.ПолучитьПотокОшибок = Истина;
Результат = ФайловаяСистема.ЗапуститьПрограмму(СтрокаЗапуска, ПараметрыЗапускаПрограммы);
КонецПроцедуры