Регистрация...

Eserv Forum / E2 / Eserv 2 support / ftp и "1C:Предприятие 8."

wikipost // (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
На ПК установлена программа для обмена по ftp, она работает без проблем, но вот методы «1С:Предприятие 8.» чудят, когда произвожу ftp соединение через «Eserv 2.99».
Например, читаем содержимое пустого ftp каталога, получаем «всегда два файла: «ready» и «connection». Содержимое этих файлов одинаковое:
220 Eserv/2.99 FTP ready
500 command not understood.
500 command not understood.
500 command not understood.
500 command not understood.
500 command not understood.
500 command not understood.
500 command not understood.
Ещё пример, записываем данные в ftp каталог, никаких ошибок, но реально запись не происходит. Причём ftp сервер с таким именем может вовсе не существовать. Такие соединения в логе для ftp не отображаются.
Само собой, если выйти в Интернет не через "Eserv", методы «1С» прекрасно работают.
 
Комментарии к этой версии (19.04.2010 15:48) [~vestor] cc465929
АвторДатаТекстtags
pig19.04.2010 16:10
Судя по процитированному, методы используют не чистый FTP, а FTP-поверх-HTTP. То есть, вам надо указать порт не FTP-прокси, а HTTP-прокси. Проблема в том, что HTTP-прокси Eserv в этом режиме работает только в одну сторону. Записывать на FTP-сервер не получится.

Ответ, как обычно, в логах Eserv. Они проблему раскрывают лучше любого хрустального шара.
wikipost
ac20.04.2010 02:15
vestor пишет: Такие соединения в логе для ftp не отображаются.

Значит до Eserv'а дело и не доходит. В этом "методе 1С" каким образом указывается имя FTP-сервера (для записи в FTP каталог) и прокси?
wikipost
vestor20.04.2010 10:33
За логи простите, просто уровень информативности лога был выставлен минимальный, а ошибок ftp соединения нет. Я так понимаю, подтверждением предположения, что используется HTTP, можно считать, например, следующую строку лога:
PUT ftp://jesuslovesyou.ru:21/1/goods.txt HTTP/1.1 ?
Но тогда возникают самый главный вопрос: получается, что настроить такой обмен через «Eserv 2.99» не получится, это касается только его или остальных прокси?

Файл: LOG FTP 1С [13172 bytes]
wikipost
pig20.04.2010 14:33
Надо в описаниях методов 1С посмотреть, какие там ручки управления имеются.
wikipost
vestor20.04.2010 15:43
«1С: Предприятие» это ориентированная на бизнес СУБД, «тонких» инструментов для работы с Интернет нет. Для подключения через Прокси есть объект «ИнтернетПрокси», заполняем свойства:

Если флагЧерезПрокси Тогда
    Прокси = Новый ИнтернетПрокси();
    Прокси.Пароль = Пароль;
    Прокси.Пользователь = Пользователь;
    Прокси.Установить(«ftp», «10.0.0.81», 3121);
Иначе
    Прокси = Неопределенно;
КонецЕсли;
и когда используем «Eserv», передаём объект «ИнтернетПрокси» в метод соединения, а когда прокси не используем просто пустое значение.

FTP = Новый FTPСоединение(«jesuslovesyou.ru»,21 , «stepanov@jesuslovesyou.ru», ФТПСервер_Пароль, Прокси, ФТППассивноеСоединение);
wikipost
pig20.04.2010 20:44
Ясно. Не прокатит. Читать ещё можно, если указать порт прокси 3128. Вообще странно, вроде тип прокси можно указать... Может, там не "ftp" надо, а что-нибудь типа "user@site"? Чистые FTP-прокси кроме всего прочего могут использовать разные форматы команды указания целевого сервера.

А, Семён Семёныч! Его же можно попробовать обмануть! Обращаемся как бы напрямую, но хост указываем — Eserv, порт — 3121, пользователь — stepanov@jesuslovesyou.ru@jesuslovesyou.ru, пароль без изменений.
Учтите, что Eserv/2 понимает пассивный режим только на стороне клиента, с целевым сервером он как клиент работает всегда в активном режиме. Если только не было переделок в последних сборках.
wikipost
vestor21.04.2010 09:41
На попытку обмана «1С» никак не отреагировала, т.е. поведение не изменилось.
Пассивное соединение здесь не использую, хотя в программе для обмена по ftp такой флаг устанавливал, всё работало.

Кстати, если после установки порта прокси 3121, спросить Прокси.Порт(«ftp»), то «1С» ответит, «3121», а вот если Прокси.Порт(), то вот тогда «3128»..
Пароль и пользователя Прокси пробовал не указывать, результат тот же.
На всякий случай, вот описание объекта «Интернет прокси»:

Свойства:
НеИспользоватьПроксиДляАдресов
(Тип: Массив. Список адресов, соединение с которыми осуществляется без использования прокси.)
НеИспользоватьПроксиДляЛокальныхАдресов
(Тип: Булево. Если установлено в Истина, то при запросе ресурсов с локальных адресов прокси не используется.)
Пароль
Пользователь
Методы:
Порт(<Протокол>)
Сервер(<Протокол>)
Установить(<Протокол>, <Сервер>, <Порт>)

    Описывает параметры прокси-серверов для различных протоколов. Допустимые протоколы для использования в объекте ИнтернетПрокси задаются строками http, https и ftp. Позволяет использовать аутентификацию по имени пользователя и паролю или NTLM (Integrated Security) аутентификацию (в версии 1С:Предприятия под Windows).
NTLM аутентификация используется по умолчанию для прокси-серверов, поддерживающих данный способ аутентификации, и не требует дополнительных настроек, т.е. NTLM аутентификация будет использоваться, если в конструкторе объекта HTTPСоединение прокси не задан или задан, но без указания имени пользователя и пароля. Задание в конструкторе объекта HTTPСоединение прокси с указанным именем пользователя и паролем отключает NTLM аутентификацию, для аутентификации в этом случае используется HTTP Basic аутентификация.
wikipost
pig21.04.2010 13:55
ред: 21.04.2010 13:57
Понятно. Очень похоже, что они используют wininet.dll (транспортный движок IE фактически), поэтому только FTP-поверх-HTTP.
Покажите логи FTP про попытку обмана. Напрямую-то она должна бы по честному FTP работать.
wikipost
vestor21.04.2010 17:04
Большое человеческое спасибо, обмануть действительно получилось, правда не сразу, экспериментировали с правами на «ftp»в «eserv», вернули всё как было, всё равно работает, и скорее всего, сразу должно было работать. Но вот в процессе поиска вылезли интересные факты, похоже, имеющие непосредственное отношение к решаемой проблеме.

Попробовал ввести адрес «ftp://jesuslovesyou.ru/» в Internet Explorer 6.0., сначала получил предупреждение о том, что папка доступна только для чтения, т.к. настройка прокси сервера запрещает полный доступ, а в основном окне получил:

220 Eserv/2.99 FTP ready
500 command not understood.
500 command not understood.
500 command not understood.
500 command not understood.

Если оставить настройку ftp в Internet Explorer 6.0 на порт 3128, в основном получим:
FTP error:

530 Login incorrect.

Generated by Eserv/2.99

Такая же ошибка в «1С» записывается в псевдо-файл «error», когда выставляем порт 3128.

Очень интересны Ваши комментарии на этот счет.
wikipost
pig21.04.2010 19:56
В FTP-поверх-HTTP логин и пароль надо передавать в URL: ftp://логин:пароль@jesuslovesyou.ru/
Иначе прокси пытается залогиниться анонимусом. Впрочем, вам это всё равно не поможет, поскольку режим этот readonly. Большая удача, что получилось обмануть.

vestor пишет: Если оставить настройку ftp в Internet Explorer 6.0 на порт 3128

Оно так и должно быть, все браузеры так работают.
wikipost
Работает на Eserv/5.05555 (05.06.2016)