Каталог решений - 1С:Исполнитель и sftp

Описание

Возникла задача переслать файлы по 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""";
      
      ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
      ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
      ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
      ПараметрыЗапускаПрограммы.ПолучитьПотокОшибок = Истина;
  
      Результат = ФайловаяСистема.ЗапуститьПрограмму(СтрокаЗапуска, ПараметрыЗапускаПрограммы);
      
  КонецПроцедуры

 

has been added to your cart:
Оформление заказа