Имя: Пароль:
1C
1С v8
FTP на 8.1
0 sanek_kop
 
12.04.13
13:51
Есть обработка, которая берет файлы с FTP. Написана на 8.2 и 8.1 Модуль одинаковый. НА 8.2 работает отлично, на 8.1 ругается: "FTP command PORT failed". В чем может быть проблема?
2 Лефмихалыч
 
12.04.13
13:53
(0) проблема может быть в том, что 8.2 работает на машине, которая напрямую доступ к фтп имеет, а 8.1 - на машине за проксёй.
Еще может быть пассивный режим в одном случае включен, в другом нет.

Одинаковое всегда работает одинаково. Ищи различия, кроме платформы
3 sanek_kop
 
12.04.13
13:56
Запускаю на одной и той же машине. Код один и тот же (поэтому и режим работы один и тот же). Под одним и тем же пользователем. В общем все одинаково кроме платформы. Прям два окна 1с 8.2. и 1с 8.1 жмешь кнопку в 8.2 подключается, а в 8.1 ругается.
4 sanek_kop
 
12.04.13
13:58
Разница еще в том, что 8.2 база на сервере, а 8.1 на локальной машине.
5 fmrlex
 
12.04.13
14:00
FTP обычно передает данные при наличии соединения сервера с клиентом, после того как клиент отправил команду PORT. Это создает проблему как для NAT, так и для брандмауэров, которые не разрешают соединения из интернета к внутренним хостам. Для NAT дополнительной проблемой является то, что представление IP-адресов и номера порта в команде PORT относится к IP-адресу и порту внутреннего хоста, вместо публичного IP-адреса и NAT-порта. Существует два подхода к этой проблеме. Первый заключается в том, что FTP-клиент и FTP-сервер используют команду PASV, которая вызывает соединение для передачи данных, установленное от клиента к серверу. Второй подход - изменение для NAT значений команды PORT с помощью шлюза на прикладном уровне
(c) Педивикия
6 sanek_kop
 
12.04.13
14:07
(5) А на языке более близком к 1с можно? Почему на 8.2 работает, а на 8.1 нет? Может в 8.1 надо что-то еще подписать или наоборот удалить?
7 fmrlex
 
12.04.13
14:09
(6) База на серваке, может и вызовы на фтп идут с серва?
А локально тебя NAT  или фаерволл срезает.
8 fmrlex
 
12.04.13
14:09
И если база на сервере, ты случайно не по терминалу заходишь?
9 sanek_kop
 
12.04.13
14:14
(7) В общем ситуация такая: Компьютер с установленными двумя платформами 8.1 и 8.2 (тестовый). Захожу в 1с с этой машины и в 1с 8.1 и в 8.2. В 8.2 база лежит на сервере, а в 8.1 локально на этом же компьютере. Кусок кода один и тот же
Попытка
       FTPСоединение = Новый FTPСоединение(НастройкиТранспорта.Сервер,,НастройкиТранспорта.Пользователь,НастройкиТранспорта.Пароль,,Истина,60);
       ЗаписатьВЛог("Подключились к серверу "+ НастройкиТранспорта.Сервер);
   Исключение
       ЗаписатьВЛог("Не удалось подключиться к серверу! ОШИБКА: " + ОписаниеОшибки());
       Возврат 0;
   КонецПопытки;

В 8.2 "Подключились к серверу " в 8.1 "Не удалось подключиться к серверу! ОШИБКА: "
10 sanek_kop
 
12.04.13
14:17
Кроме того на других компьютерах (не относящийся к серверу) 8.2 работает корректно. А 8.1 выдает ошибку.
Программист всегда исправляет последнюю ошибку.