Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> После обновления платформы и конфигурации перестал работать FTPСоединение          
bizisoft Подменю пользователя
сообщение 06.10.20, 15:59
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 242
Из: Донецк
Спасибо сказали: 19 раз
Рейтинг: 0

Здравствуйте.

1С:Предприятие 8.3 (8.3.14.2095)
Альфа-Авто: 4.1.22.01

После обновления конфигурации 4.1.21.01 на 4.1.22.01 с соответствующим переходом с платформы 8.2 на 8.3.
После этого обновления самописная внешняя обработка для выгрузки данных (номенклатура, остатки, цены) на сайт перестала работать.
Выгрузка данных на сайт происходит посредством выгрузки данных в файлы csv, архивирование файлов и загрузки их в каталог сайта через FTP.

Насколько я понял затык происходит в момент соединения.
Код функции соединения и отправки файла:
Функция ОтправитьФайлНаFTPСервер() Экспорт
    ФТПСервер = Константы.ФТПСервер.Получить();
    ФТППорт = Константы.ФТППорт.Получить();
    ФТППользователь = Константы.ФТППользователь.Получить();
    ФТППароль = Константы.ФТППароль.Получить();
    Прокси = Неопределено;
    ФТПКаталог = Константы.ФТПКаталог.Получить();
    
    Попытка
        ФТП = Новый FTPСоединение(ФТПСервер, ФТППорт, ФТППользователь, ФТППароль, Прокси);        
        Логи("Установка соединения..............ОК");
    Исключение
        Логи("Установка соединения..............FALSE",СтатусСообщения.Важное);
    КонецПопытки;
    Попытка
        ФТП.УстановитьТекущийКаталог(ФТПКаталог);
        Логи("Установка текущего каталога..............ОК");
    Исключение
        Логи("Установка текущего каталога..............FALSE",СтатусСообщения.Важное);
        Попытка            
            ФТП.УстановитьТекущийКаталог(ФТПКаталог);
            Логи("Установка текущего каталога (повторно)...ОК");
        Исключение
            Попытка            
                ФТП.УстановитьТекущийКаталог(ФТПКаталог);
                Логи("Установка текущего каталога (повторно 2)...ОК");
            Исключение
                Логи("Установка текущего каталога (повторно 2)...FALSE",СтатусСообщения.Важное);
            КонецПопытки;  
        КонецПопытки;
    КонецПопытки;
    
    Для Каждого ИмяОтправляемогоФайла Из СпФайлы Цикл
        ТекФайл = Новый Файл(ИмяОтправляемогоФайла);
        Если ТекФайл.Существует() Тогда
            ИмяВыходногоФайла = ТекФАйл.Имя;
            ФТП.Записать(ИмяОтправляемогоФайла, ИмяВыходногоФайла);
            Логи(ИмяВыходногоФайла+" - файл успешно загружены на сервер");
        Иначе
            Логи("Файл "+ИмяВыходногоФайла+" не найден в каталоге");
        КонецЕсли;    
    КонецЦикла;
КонецФункции


Не понятно почему перестал работать метод FTPСоединение() после обновления, в 1С 8.2.19.130 АА 4.1.21.01.

Вроде в 8.3 есть какое-то отличие (не уверен точно) в параметрах FTPСоединение() чем у 8.2 (их стало больше).
Поэтому пробовал указать эти дополнительные параметры:
ФТП = Новый FTPСоединение(ФТПСервер, ФТППорт, ФТППользователь, ФТППароль, Прокси, Истина,0,Неопределено,УровеньИспользованияЗащищенногоСоединенияFTP.Авто);

Но и это не дало результата.

Может кто-нибудь сталкивался с такой ситуацией и подскажет как решить данную проблему.

Для получения развернутой информации по ошибке убрал обвязку Попытка-Исключение, но скупая ошибка ясности не внесла.
{ВнешняяОбработка.ПроверкаИнтернетЗаказов.Форма.ПроверкаИнтернетЗаказов.Форма(5419)}: Ошибка при вызове конструктора (FTPСоединение)
        ФТП = Новый FTPСоединение(ФТПСервер, ФТППорт, ФТППользователь, ФТППароль, Прокси);
по причине:
Несоответствие типов (параметр номер '2')

Если ругается на 2-ой параметр, то это константа строкового типа
ФТПСервер = "xx.yy.ua";
ФТППорт = "21";
ФТППользователь = "user";
ФТППароль = "123";


Signature
1С:Предприятие 8.2 (8.2.19.130)
"Альфа-Авто: Автосервис+Автозапчасти, украинская версия 4.1" (4.1.20.01)
обычные формы.

bizisoft Подменю пользователя
сообщение 06.10.20, 20:17
Сообщение #2

Завсегдатай
****
Группа: Пользователи
Сообщений: 242
Из: Донецк
Спасибо сказали: 19 раз
Рейтинг: 0

Вот так создавалось FTP соединение:
ФТП = Новый FTPСоединение(ФТПСервер, ФТППорт, ФТППользователь, ФТППароль, Прокси);


На старой платформе все работало, но на новой (причину я так и не понял) ни в какую.

Погрыз мануалы и выяснил, что в новой платформе они добавили поддержку SSL (защищенные) соединений, и добавили для этого несколько параметров:
ФТП = Новый FTPСоединение(ФТПСервер, ФТППорт, ФТППользователь, ФТППароль, Прокси, Истина,0,ssl4,УровеньИспользованияЗащищенногоСоединенияFTP.Авто);


Но что я только не пробовал не помогало.

В итоге получилось так:
ФТП = Новый FTPСоединение(ФТПСервер, , ФТППользователь, ФТППароль);

т.е. убрал 2-й параметр ФТППорт, хотя не понятно почему так, где логика в этом, а если порт будет отличаться от "21" (по умолчанию) ?


Signature
1С:Предприятие 8.2 (8.2.19.130)
"Альфа-Авто: Автосервис+Автозапчасти, украинская версия 4.1" (4.1.20.01)
обычные формы.

Alegzander Подменю пользователя
сообщение 07.10.20, 7:17
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 28
Спасибо сказали: 9 раз
Рейтинг: 8

Цитата(bizisoft @ 06.10.20, 16:59) *
Для получения развернутой информации по ошибке убрал обвязку Попытка-Исключение, но скупая ошибка ясности не внесла.

{ВнешняяОбработка.ПроверкаИнтернетЗаказов.Форма.ПроверкаИнтернетЗаказов.Форма(5419)}: Ошибка при вызове конструктора (FTPСоединение)
ФТП = Новый FTPСоединение(ФТПСервер, ФТППорт, ФТППользователь, ФТППароль, Прокси);
по причине:
Несоответствие типов (параметр номер '2')


Если ругается на 2-ой параметр, то это константа строкового типа
ФТПСервер = "xx.yy.ua";
ФТППорт = "21";
ФТППользователь = "user";
ФТППароль = "123";



Из СП:
...
<Порт> (необязательный)
Тип: Число.
Порт сервера, с которым осуществляется соединение.
Значение по умолчанию для FTP соединений равно 21, для защищенных FTPS соединений - 990.
Значение по умолчанию: порт по умолчанию для используемого протокола.
...

Спасибо сказали: bizisoft,

bizisoft Подменю пользователя
сообщение 07.10.20, 10:08
Сообщение #4

Завсегдатай
****
Группа: Пользователи
Сообщений: 242
Из: Донецк
Спасибо сказали: 19 раз
Рейтинг: 0

Alegzander @ Сегодня, 8:17 * ,
Ну так до обновления все работало.

Решил проверить, изменил константу ФТППорт на Число.
Так работает.
Получается в предыдущей версии платформы это было не существенным, поэтому работало и ошибку не выдавало.


Signature
1С:Предприятие 8.2 (8.2.19.130)
"Альфа-Авто: Автосервис+Автозапчасти, украинская версия 4.1" (4.1.20.01)
обычные формы.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 14:51
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!