17.03.17 — 19:59
УТ 11.2.
Есть центральная и ветка в удаленном магазине. Синхронизация по расписанию через FTP.
В этом магазине поменяли компьютер. Я перенес ветку, настроил — пару дней все работало — синхронизация выполнялась. На третий день еще настраивал (подключал новый ФР, завел пользователей (до этого небыло) еще что-то не помню). Но настройки обмена (FTP) не трогал.
На следующий день звонят — не работает обмен.
Стал смотреть — из Windows на наш FTP свободно заходит без проблем (IE, Firefox, FAR). Из 1С «Проверить подключение» ждает 30 сек и выдает
«Ошибка инициализации подключения к FTP-серверу»
Перепроверил параметры подключения, ввел заново — не работает.
Отключил Брендмауер и антивирус — не помогло.
Может каких прав не хватает. Заведены два пользователя, у обоих
права доступа
Администратор
Синхронизация данных с другими программами
1 — 17.03.17 — 20:44
2 — 17.03.17 — 21:04
Что говорит журнал регистрации? Тест подключения?
3 — 17.03.17 — 21:09
Журнал говорит :
Обработка: ТранспортСообщенийОбменаFTP: Ошибка инициализации подключения к FTP-серверу.
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(2292)}: Ошибка при вызове конструктора (FTPСоединение)
НастройкиПроксиСервера(Настройки.ЗащищенноеСоединение),
по причине:
Ошибка работы с Интернет: ftp://XX.XXX.XX.XX:21 Не могу установить соединение
4 — 17.03.17 — 21:17
ну так иди дальше: нслукап, пинги, телнет и т.д.
5 — 17.03.17 — 21:38
Те же параметры можно проверить с другой сети, из дома и т.п. Иногда выясняется, что дело в провайдерах, прокси и т.д.
6 — 18.03.17 — 10:41
Еще раз — с компьютера (с любой программы из Windows) FTP свободно подключается, видекн, видны файлы обмена которые там лежат.
Не работает только из 1С. Т.е. причина где-то именно в самой 1С, а не сети или FTP-сервере.
У меня два варианта. Или каких-то прав не хватает пользователю. Или что-то блокирует выход 1с в Интернет. Подскажите как проверить есть ли из 1С доступ в Интернет.
Напомню — 1С УТ 11.2.
7 — 18.03.17 — 10:42
Брендмауэр Windows и антивирус (Avast) на время проверки отключал полностью — не помогает.
8 — 18.03.17 — 10:50
К 50-му посту автор соизволит озвучить релиз платформы. К 100-му он сообразит посмотреть список зарегистрированных ошибок.
9 — 18.03.17 — 11:03
логи на фтп посмотрите
10 — 18.03.17 — 11:50
связался с админом ftp — вот что он прислал :
http://screenshot.ru/upload/image/zHZx
11 — 18.03.17 — 12:03
Т.е. ошибка :
Unable to establish SSL connection (CLIENT ERROR: Client may have rejected the SSL certificate. Ensure the SSL certificate has been issued by a certificate authority.)
12 — 18.03.17 — 13:09
Никто не знает почему при любом подключении этой ошибки нет, а из 1С — есть ?
13 — 18.03.17 — 14:44
(12) В 1С нужно значит включить SSL
Новый FTPСоединение(<Сервер>, <Порт>, <ИмяПользователя>, <ПарольПользователя>, <Прокси>, <ПассивноеСоединение>, <Таймаут>, <ЗащищенноеСоединение>, <УровеньИспользованияЗащищенногоСоединения>)
браузеры сами переходят на SSL, а 1С нужно явно указать на использование шифрования.
14 — 18.03.17 — 14:46
(11) Поставь последнюю платформу
15 — 18.03.17 — 21:10
(13)
Включать изменения Конфигурации и самому править код ? А потом при каждом обновлении восстанавливать ? Я для этого слишком ленив.
(13) (14)
А если серьезно — до этого то все работало. И для центральной работает без проблем с точно такими же настройками, под такой же Windows и такой же 1С-платформе.
Кстати на этом компьютере время было на час назад. Подправил часовой пояс. Даже перезагрузил компьютер — не помогло.
16 — 18.03.17 — 21:34
(15) Ну значит это где-то настройках галочку надо поставить.
17 — 21.03.17 — 11:39
Я тоже так думаю — поэтому сюда и написал. Вдруг кто знает.
apb70
18 — 23.03.17 — 13:58
Была подобная проблема. При настройке нодов дома обмен работал нормально. После установки на точках обмен встал. На точках интернет по USB модему через роутер. Стояла платформа 8.3.9.2033 После замены платформы на 8.3.8.2197 обмен заработал.
В этой статье я попробую рассказать о том, какими средствами располагает технологическая платформа 1С для работы с протоколом FTP. Первая часть статьи — теоретическая, вторая — практические примеры. Отмечу, что при написании статьи использовалась технологическая платформа версии 8.3.12.1595.
Содержание
- Общая информация
- Практические задачи при работе с FTP
- Как подключиться к серверу FTP?
- Как подключиться к серверу FTPS?
- Как искать файлы и каталоги по FTP из 1С?
- Как скачивать файлы по FTP из 1С?
- Как передавать файлы по FTP из 1С?
- Прочие действия с файлами и каталогами по FTP из 1С
- Как получить и установить текущий каталог по FTP из 1С?
- Как создать каталог по FTP из 1С?
- Как удалить каталог и файлы по FTP из 1С?
- Как переименовать/переместить файл или каталог по FTP из 1С?
Общая информация
Для работы с протоколом FTP у технологической платформы 1С имеется два главных объекта — FTPСоединение и FTPФайл, кроме них существует объект ЗащищенноеСоединениеOpenSSL — который используется для подключения к FTPS-серверам (не следует путать с SFTP), а также объект ИнтернетПрокси — который используется для соединения с FTP-сервером через прокси-сервер.
FTPСоединение ключевой объект для работы с FTP в 1С — именно через этот объект происходит и соединение с FTP/FTPS сервером и все дальнейшие действия. Все параметры для соединения с сервером указываются в конструкторе объекта.
FTPФайл служит для получения информации о каталогах и файлах на FTP-сервере — этот объект позволяет получить информацию по объекту на FTP-сервере: имя, путь расширение, размер и тд.
ИнтернетПрокси позволяет указать прокси-сервер используемый для соединения с FTP/FTPS сервером — параметры для подключения к прокси-серверу указываются методом Установить(). Использование свойств «Пароль» и «Пользователь» нежелательно, так как эти свойства являются устаревшими.
ЗащищенноеСоединениеOpenSSL создает защищенное соединение OpenSSL — предоставляет возможность организовать защищенное соединение с FTP-сервером, также имеется возможность конкретный сертификат клиента и/или сертификат удостоверяющего центра.
В качестве практических примеров рассмотрим все операции которые позволяет выполнить объект FTPСоединение.
Как подключиться к серверу FTP?
Параметры для подключения указываются в конструкторе, сами параметры достаточно стандартны. Отдельно скажу про два параметра:
- Таймаут — позволяет указать таймаут в секундах для установки соединения и выполнения операций;
- Пассивное соединение — определяет тип FTP-соединения: «Ложь» — активный режим, «Истина» — пассивный, значение по умолчанию — «Ложь». Разница заключается в том, кто устанавливает соединение для передачи данных — при активном режиме это делает сервер, при пассивном клиент. Это бывает важно при наличии брандмауэра, так как он часто запрещает входящие соединения на случайные порты.
|
&НаКлиенте Процедура ПодключениеКFTPИз1С(Команда) //самый минималистичный вариант для анонимного пользователя Соединение = Новый FTPСоединение(«localhost»); //если номер порта стандартный, то его можно не указывать //стандартные номера портов: 21 — FTP и 990 — FTPS Соединение = Новый FTPСоединение(«localhost»,21,»login»,»password»); //пассивное соединение с таймаутом 10 секунд Соединение = Новый FTPСоединение(«localhost»,21,»login»,»password»,,Истина,10); КонецПроцедуры |
Как подключиться к серверу FTPS?
Настраивать собственный FTPS-сервер у меня не было никакого желания, поэтому воспользовался публичными серверами test.rebex.net. Различия между FTP и FTPS только в подключении к серверу, различий в работе я не увидел.
|
&НаКлиенте Процедура ПодключениеКFTPSИз1с(Команда) ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(); Соединение = Новый FTPСоединение(«test.rebex.net»,990,»demo»,»password»,,,,ЗащищенноеСоединение,УровеньИспользованияЗащищенногоСоединенияFTP.Требовать); Сообщить(Соединение.ТекущийКаталог()); КонецПроцедуры |
Как искать файлы и каталоги по FTP из 1С?
В примере ниже показаны варианты использования функции НайтиФайлы() — получение списка файлов, поиск по маске и поиск конкретного файла. Кроме этого пример показывает какие данные о найденном файле/каталоге мы можем получить при помощи объекта FTPФайл.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
&НаКлиенте Процедура ПоискФайловНаFTPИз1С(Команда) Соединение = Новый FTPСоединение(«localhost»,21,»login»,»password»); //получим список всех файлов на FTP //в результате получаем массив объектов FTPФайл НайденныеОбъекты = Соединение.НайтиФайлы(«/»,»*.txt»,Истина); Если НайденныеОбъекты.Количество()>0 Тогда Для Каждого ОбъектFTP Из НайденныеОбъекты Цикл Сообщить(«Имя файла: «+ОбъектFTP.ПолноеИмя); Сообщить(«Имя файла: «+ОбъектFTP.Путь+ОбъектFTP.ИмяБезРасширения+ОбъектFTP.Расширение); Сообщить(«Это каталог: «+ОбъектFTP.ЭтоКаталог()); Сообщить(«Это файл: «+ОбъектFTP.ЭтоФайл()); Если ОбъектFTP.ЭтоФайл() Тогда //размер имеется только у файлов Сообщить(«Размер: «+ОбъектFTP.Размер()+» байт»); КонецЕсли; Сообщить(«Только для чтения: «+ОбъектFTP.ПолучитьТолькоЧтение()); Сообщить(«Скрытый: «+ОбъектFTP.ПолучитьНевидимость()); Сообщить(«Время изменения: «+ОбъектFTP.ПолучитьВремяИзменения()); КонецЦикла; КонецЕсли; //можно поискать что-то более конкретное, например по маске НайденныеОбъекты = Соединение.НайтиФайлы(«/»,»*.txt»,Истина); //или просто найти конкретный файл НайденныеОбъекты = Соединение.НайтиФайлы(«/test_folder_1/file_1.txt»); КонецПроцедуры |
Как скачивать файлы по FTP из 1С?
|
&НаКлиенте Процедура СкачатьФайлПоFTPИз1С(Команда) Соединение = Новый FTPСоединение(«localhost»,21,»login»,»password»); //классический вариант //первый параметр — что скачать, второй параметр — куда скачать Соединение.Получить(«/test_folder_1/file_1.txt»,»D:file.txt»); //вариант с использованием потока //первый параметр — что скачать, воторой параметр — поток в который будут помещены полученные данные Поток = Новый ФайловыйПоток(«D:file.txt», РежимОткрытияФайла.СоздатьНовый, ДоступКФайлу.ЧтениеИЗапись); Соединение.Получить(«/test_folder_1/file_1.txt»,Поток); КонецПроцедуры |
Как передавать файлы по FTP из 1С?
|
&НаКлиенте Процедура ПередатьФайлНаFTPИз1С(Команда) Соединение = Новый FTPСоединение(«localhost»,21,»login»,»password»); //классический вариант //первый параметр — что передать, второй параметр — куда передать Соединение.Записать(«D:file.txt»,»/test_folder_1/file_2.txt»); //вариант с использованием потока //первый параметр — куда передать, воторой параметр — поток из которого взять данные Поток = Новый ФайловыйПоток(«D:file.txt», РежимОткрытияФайла.Открыть, ДоступКФайлу.Чтение); Соединение.Записать(«/test_folder_1/file_2.txt»,Поток); КонецПроцедуры |
Прочие действия с файлами и каталогами по FTP из 1С
Далее приведены короткие примеры, демонстрирующие возможности технологической платформы по выполнению различных простых операций над каталогами и файлами по FTP. Инициализация переменной «Соединение» (т.е. подключение к FTP-серверу) опущена для краткости.
Как получить и установить текущий каталог по FTP из 1С?
|
&НаКлиенте Процедура ПолучитьИУставновитьТекущийКаталогПоFTPИз1С(Команда) //получаем текущий каталог Сообщить(Соединение.ТекущийКаталог()); //устанавливаем текущий каталог Соединение.УстановитьТекущийКаталог(«/test_folder_1»); КонецПроцедуры |
Как создать каталог по FTP из 1С?
|
&НаКлиенте Процедура СоздатьКаталогПоFTPИз1С(Команда) //создание каталога Соединение.СоздатьКаталог(«/test_folder_3»); Соединение.СоздатьКаталог(«/test_folder_3/test_subfolder_1»); КонецПроцедуры |
Как удалить каталог и файлы по FTP из 1С?
|
&НаКлиенте Процедура УдалитьКаталогиИФайлыПоFTPИз1С(Команда) //удаление каталога со всем его содержимым Соединение.Удалить(«/test_folder_3»); //удаление одного конкретного файла Соединение.Удалить(«/test_folder_1/file_1.txt»); //удаление файлов по маске Соединение.Удалить(«/»,»*.txt»); КонецПроцедуры |
Как переименовать/переместить файл или каталог по FTP из 1С?
|
&НаКлиенте Процедура ПереименоватьИПереместитьКаталогиИлиФайлыПоFTPВ1С(Команда) //переименование каталога //Соединение.Переместить(«/test_folder_1″,»/test_folder_4»); //перемещение файла Соединение.Переместить(«/file_1.txt», «/test_folder_2/file_1.txt»); КонецПроцедуры |
На это все, надеюсь, что данная статья была Вам полезна.
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Загрузка…
| sa_gordienko |
|
||
|---|---|---|---|
|
|
Существует автообмен распределенной базы.
Работал-работал и перестал. Ошибка: Ошибка при подключении к FTP : ftp.rep-e.ru ! Ошибка при вызове конструктора (FTPСоединение): Ошибка работы с Интернет: ftp://ftp.rep-e.ru:21FTP: command PORT failed: Ошибка работы с Интернет: ftp://ftp.rep-e.ru:21FTP: command PORT failed И фокус в том, что это произошло только с ЗУП. Бухгалтерия автообменивается с тем же FTP-сервером и с того же компьютера нормально. Только через другую папку. Доступ к FTP сторонними средствами нормальный. Подскажите, пожалуйста, в чем может быть проблема. Второй день бьюсь! |
| Yandex |
|
||
|---|---|---|---|
|
|
| E_Migachev |
|
||
|---|---|---|---|
|
|
(0) sa_gordienko, он же пишет, что Проблема в Порте, |
| Sergalei |
|
||
|---|---|---|---|
|
|
Не боитесь держать ДТшки на паблик фтп сервере без авторизации?
1. Проверить настроки фтп соединения в 1С. Сравнить с бухгалтерией. Изменено 22.03.13 17:53:07 |
| Подсказка: Вы получили ответ на свой вопрос — закройте вопрос! |
