Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

выгрузка на sftp на платформе 8.2

выгрузка на sftp на платформе 8.2
Я
   triviumfan
 
13.07.18 - 17:21
Доброго дня.

платформа 8.2 не может передавать через sftp. Но в нашей конторе используется и платформа 8.3. Можно ли как-то использовать возможности 8.3? Через СОМ? Есть также вариант использовать внешнюю компоненту для этих целей или стороннее ПО, но это тоже костыль)
 
 
   braslavets
 
1 - 13.07.18 - 17:34
winscp.net
   triviumfan
 
2 - 13.07.18 - 17:56
(1) ты тоже умеешь гуглить?
   triviumfan
 
3 - 13.07.18 - 17:58
Первое, что приходит в голову, так это реализовать в другой базе передачу через этот дурацкий протокол (а может, в типовых, работающих на 8.3 уже и есть такая процедура общего модуля), и просто из моей на 8.2 подключаться для передачи...
   tesseract
 
4 - 13.07.18 - 19:20
>>платформа 8.2 не может передавать через sftp. Но в нашей конторе используется и платформа 8.3.

Так она то-же не может. Только ftps. Сделайте просто скрипт который скачивает данные с sftp в доступный каталог.
   Черный маклер
 
5 - 13.07.18 - 19:35
(4) + 1
база на 8.2 выгружает в локальный каталог
регламентное задание на 8.3 из локального каталога на sftp
   d4rkmesa
 
6 - 13.07.18 - 20:17
(0) 8.3, как уже написали, все еще не поддерживает SFTP. В принципе, WinSCP - один из самых стабильных в плане интеграции, даром что костыли. У меня работает как часы: ежедневные авторассылки отчетов, обмены, интеграции и прочее. Одни из самых удачных костылей оказались. В принципе, можно просто установить его и самостоятельно/попросить админов написать скрипт, который бы пересылал из локальной папки файлы, которые туда складываются. Но мне удобнее все же через компоненту работать, вызывая соотв. методы в 1С.
   sitex
 
7 - 13.07.18 - 21:48
Что вам мешает запускать скрипты, из 1с. sftp - это религия конторы ?! Можно реализовать и другими способами
   triviumfan
 
8 - 15.07.18 - 10:40
(5) как вариант... из 8.2 выгружать файл и хранить кое-где, а с 8.3 обработку регламентно подключить и отправлять по sftp
   triviumfan
 
9 - 16.07.18 - 16:46
Все-таки решил сделать на 8.2, тем более опыта не было с winscp.
Подскажите, пож-та, почему фоново не работает?
Никакую компоненту я не регал, тупо взял портативный winscp.exe, зашил в общий макет и регламентно отправляю.
Прикол в том, что если вызвать процедуру, вызывающуюся регламентно, то файл отправляется, а фоново - нет (пробовал и под 1cv8, и под администратором, хотя оба эти юзера принадлежат группе "администраторы").

Вот такая шляпа:
// 1. Получим WinSCP

    ПутьWinSCP = ПолучитьИмяВременногоФайла();
    лМакет = ПолучитьОбщийМакет("WinSCPexe");
    лХранилище = Новый ХранилищеЗначения(лМакет);
    лХранилище.Получить();
    лМакет.Записать(ПутьWinSCP);
    
    // 2. Скрипт

    ТекстСценария = "option batch abort
    |option confirm on
    |open " + НастройкиПодключения.Протокол + "://" + НастройкиПодключения.Логин + ":" + НастройкиПодключения.Пароль + "@" + НастройкиПодключения.Сервер + ":" + НастройкиПодключения.Порт + " 
    |put " + ПутьКФайлу + " " + ПутьНазначения + "
    |exit";
    
    ИмяФайлаСценария = ПолучитьИмяВременногоФайла(".txt");
    ФайлСценария = Новый ТекстовыйДокумент;
    ФайлСценария.УстановитьТекст(ТекстСценария);
    ФайлСценария.Записать(ИмяФайлаСценария);
    ИмяФайлаЛога = ?(Лог = Неопределено, ПолучитьИмяВременногоФайла(".txt"), Лог);
    
    // 3. Выполнение

    Команда = """" + ПутьWinSCP + """ /console /script=""" + ИмяФайлаСценария + """" + " /log=""" + ИмяФайлаЛога + """";
    ЗапуститьПриложение(Команда,,Истина);
    
    УдалитьФайлы(ПутьWinSCP);
    УдалитьФайлы(ИмяФайлаСценария);

Так вот в логе я вижу:
2018-07-16 16:31:11.628 Asking user:
. 2018-07-16 16:31:11.628 **Continue connecting to an unknown server and add its host key to a cache?**
. 2018-07-16 16:31:11.628
. 2018-07-16 16:31:11.628 The server's host key was not found in the cache. You have no guarantee that the server is the computer you think it is.
. 2018-07-16 16:31:11.628
. 2018-07-16 16:31:11.628 The server's RSA key details are:
. 2018-07-16 16:31:11.628
. 2018-07-16 16:31:11.628     Algorithm:    ssh-rsa 2048
. 2018-07-16 16:31:11.628     SHA-256:    c5fZfihaHvbpruPxiyYmqel7NuzuZfpCwTawGnl7uvY=
. 2018-07-16 16:31:11.628     MD5:    af:29:36:b0:21:3d:c2:e8:1d:5f:02:34:39:82:70:68
. 2018-07-16 16:31:11.628
. 2018-07-16 16:31:11.628 If you trust this host, press Yes. To connect without adding host key to the cache, press No. To abandon the connection press Cancel.
. 2018-07-16 16:31:11.628 In scripting, you should use a -hostkey switch to configure the expected host key. ()
. 2018-07-16 16:31:24.128 Attempt to close connection due to fatal exception:
* 2018-07-16 16:31:24.128 Host key fingerprint is ssh-rsa 2048 c5fZfihaHvbpruPxiyYmqel7NuzuZfpCwTawGnl7uvY=.
* 2018-07-16 16:31:24.128 (Exception) **Host key wasn't verified!**
. 2018-07-16 16:31:24.128 Closing connection.
. 2018-07-16 16:31:24.128 Sending special code: 12

Почему вопрос вызывается? Ведь у меня "option confirm on"
   triviumfan
 
10 - 16.07.18 - 17:25
Отбой, добавил "-hostkey=*" https://winscp.net/eng/docs/faq_hostkey
 
 Рекламное место пустует
   d4rkmesa
 
11 - 16.07.18 - 19:10
(9)>> Почему вопрос вызывается? Ведь у меня "option confirm on"

Ну вы же понимаете, что означает эта опция, это всякие запросы на подтверждения в диалоговом режиме? Естественно, в регламентном задании если и срабатывает, то в лучшем случае стопорит процесс. Да, надо указывать hostkey fingerprint, или использовать опцию giveupsecurityandacceptanysshhostkey.
   triviumfan
 
12 - 17.07.18 - 08:57
(11) "Естественно, в регламентном задании если и срабатывает, то в лучшем случае стопорит процесс", - почему это должно быть очевидно? Я вот сильно удивлён
   d4rkmesa
 
13 - 17.07.18 - 09:13
"confirm    off|on
Toggles confirmations (overwrite, etc.). 
Commands affected: get, put
Default: off for commands specified using /script or /command; on for commands specified on input."

У вас как раз Script, т.к. в этом режиме интерактив не нужен, то и опция не всегда off.
   d4rkmesa
 
14 - 17.07.18 - 09:14
* всегда off
   triviumfan
 
15 - 17.07.18 - 11:03
Не помогло:
. 2018-07-17 11:02:51.988 Host key fingerprint is:
. 2018-07-17 11:02:51.988 ssh-rsa 2048 af:29:36:b0:21:3d:c2:e8:1d:5f:02:34:39:82:70:68 c5fZfihaHvbpruPxiyYmqel7NuzuZfpCwTawGnl7uvY=
. 2018-07-17 11:02:51.988 Asking user:
. 2018-07-17 11:02:51.988 **Continue connecting to an unknown server and add its host key to a cache?**
. 2018-07-17 11:02:51.988
. 2018-07-17 11:02:51.988 The server's host key was not found in the cache. You have no guarantee that the server is the computer you think it is.

-hostkey=* в данном случае помог

Список тем форума
Рекламное место пустует  Рекламное место пустует
Основная теорема систематики: Новые системы плодят новые проблемы.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует