Куперс

Бухучет и анализ

1С FTP удалить

Описание ошибки:
При обмене через ftp-соединение возникает ошибка и обмен не выполняется: Ошибка при копировании файла на FTP ресурс: Ошибка при вызове метода контекста (Записать): Ошибка работы с Интернет: ftp://XXXXXXX.ucoz.ru:21Upload failed (at start/before it took off)
Найденные решения:

При тестировании соединения из элемента справочника «Настройки обмена» в 1С соединение устанавливается успешно как в пассивном, так и обычном режиме. Но при запуске обмена, в данном случае с сервером ucoz.ru, возникает ошибка в момент когда уже файл сформирован и отправляется из 1С на ftp-сервер.

При выгрузке на сервер ucoz.ru может возникать ошибка, если файл большой. Так сами авторы ресурса отмечают, что «большевесные» файлы лучше загружать на сервер, используя их файловый менедежер.

Других возможных вариантов решения проблемы в интернете не найдено. Если хотите поделится, то Ваше рашение будет добавлено на сайт со ссылкой на Ваш сайт или с сохранением авторства:

Оцените, помогло ли Вам предоставленное описание решения ошибки?

Мы часто пользуемся протоколом FTP при передаче файлов или загрузке страниц интернета. В системах 1С тоже достаточно часто используется этот механизм для обмена данными с другими приложениями или между конфигурациями. На практике вы не раз столкнетесь с необходимостью воспользоваться заложенными в платформе 1С 8.3 механизмами работы с FTP. К этому необходимо быть готовым и знать основные приемы и принципы.

Заложенные в платформу объекты для FTP

Для того чтобы работать с протоколом FTP в технологическую платформу уже заложены некоторые инструменты. Они доступны в любой конфигурации, если версия вашей платформы 8.3 и выше. Рассмотреть их подробнее, узнать их методы и возможности вы сможете с помощью синтакс-помощника, нажав клавиши CTRL + F1 в конфигураторе. Вот эти объекты:

  • FTPСоединение. Предназначен для соединения с серверами и выполнения основных действий – отправке данных через FTP;

Работа с FTP в 1С 8.3

Рис.1

  • FTPФайл. Получает информацию о структуре каталогов и файлов на сервере, но не позволяет читать содержимое или производить запись. Дает доступ к информации о реквизитах:
    • Имя;
    • Путь;
    • Расширение;
    • Размер и прочее.
  • ИнтернетПрокси – объект предназначен для настройки параметров соединения с сервером FTP через прокси;
  • ЗащищенноеСоединениеOpenSSL – создает специальное соединение по FTP с использованием сертификата для большей безопасности.

Перед тем как производить какие-либо действия с файлами, нам необходимо осуществить подключение к FTP-серверу или ресурсу в интернете. Для этого нам нужно узнать адрес, логин и пароль, под которыми можно зайти на ресурс, и рабочий каталог. По умолчанию объект FTPСоединение использует 21 порт для FTP и 990 для защищенных FTPS. Если у вас используются другие порты – придется их указывать вручную.

Адрес= «172.16.83.22»; Логин = «administrator «; Пароль = «pass123»; Каталог = «\testFTPConnect»; FTPСоединение = Новый FTPСоединение(Адрес,Логин,Пароль);

По результатам выполнения этого кода должно произойти подключение 1С к указанному ресурсу. Зачастую на этом моменте появляется проблема с тем, что программа долго подключается к FTP серверу. С большой долей вероятности решить эту проблему поможет попытка запустить соединение в пассивном режиме. Для этого в момент создания объекта FTPСоединение задать параметр № 6 в значение «Истина».

FTPСоединение = Новый FTPСоединение(Адрес,,Логин,Пароль,,Истина);

Работа с файлами на FTP сервере

После того как FTP соединение установлено, мы можем работать с файлами на удаленном ресурсе из 1С. Перед тем как что-то добавлять или удалять, необходимо посмотреть, какие файлы уже существуют на FTP-сервере. В этом нам поможет метод «НайтиФайлы», который помещает все найденные файлы в общий массив. После этого нам останется только обойти в цикле все элементы на FTP-сервере через 1С:

ФайлыНаРесурсе = FTPСоединение.НайтиФайлы(«/»); Для каждого ФайлНаСервере из ФайлыНаРесурсе цикл // требуемые действия с файлами КонецЦикла;

Перенести файл с локального компьютера, на котором запущена программа 1С, через FTP на сервер можно несколькими путями. Также вы можете создавать на ресурсе и новые файлы, формируя их программно – этот вариант отлично подойдет для ведения логов. Простые примеры алгоритма выгрузки данных из 1С на FTP создания файлов на сервере:

  • Перенос уже существующего файла:

ФайлСЛокальногоПК = «D:\test1.txt»; Connect.Записать(ФайлСЛокальногоПК, «test1.txt»);

  • Создание файла и его запись через FTP:

НовыйДокументFTP = Новый ТекстовыйДокумент; НовыйДокументFTP.ДобавитьСтроку(«Тестируем создание файла»); ВременныйФайлFTP = ПолучитьИмяВременногоФайла(«txt»); НовыйДокументFTP.Записать(ВременныйФайлFTP); FTPСоединение.Записать(ВременныйФайлFTP, «test1.txt»);

После того как выяснили, как отправить файл через FTP, займемся обратным алгоритмом. Чтобы скачать на свой компьютер файл с сервера, можно воспользоваться следующим алгоритмом:

  1. Сформировать имя временного файла;

    ВременноеХранДляФайла = ПолучитьИмяВременногоФайла(«txt»);

  2. Считать данные из файла на сервере во временный файл;

    FTPСоединение.Получить(«test.txt»,ВременноеХранДляФайла);

  3. Записать считанные данные в текстовый документ в нужное место;

    НовыйТекстДокумент = Новый ТекстовыйДокумент; НовыйТекстДокумент.Прочитать(ВременноеХранДляФайла,»windows-1251″); НовыйТекстДокумент.Записать(«C:\textFTP.txt»);

Также необходимо знать, как работать с каталогами на сервере через FTP. Существуют следующие основные операции:

  • Получение текущей папки:

Сообщить(FTPСоединение.ТекущийКаталог());

  • Создание папки:

FTPСоединение.СоздатьКаталог(«/1/new»);

  • Открытие нужного нам пути:

FTPСоединение.УстановитьТекущийКаталог(«/1/new»);

  • Переименование папки или перемещение файла. Для последнего необходимо прописать путь вместе с именем и расширением файла:

FTPСоединение.Переместить(«/1/new», «/1/new1») FTPСоединение.Переместить(«/1/new1/ NewFile1.txt», «/1/old/NewFile1.txt»)

  • Удаление каталога:

FTPСоединение.Удалить(«/1/old»);

  • Аналогично удаляются и файлы:

FTPСоединение.Удалить(«/1/ new/ NewFile2.txt»);

В платформе 8.3 существуют все возможности, чтобы организовать обмен данными через FTP прямо из 1С. Помните, что для стабильной работы правильно написанного кода в 1С мало. Необходим доступ к серверу и настройка прав для учетной записи, от которой запускают 1С. После этих действий ничего не помешает вам настроить синхронизацию данных 1С через FTP-протокол.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх