Выгрузка и загрузка табличного документа через FTP
В этой статьи я показываю практический пример, когда созданные в конфигураторе макеты печатных форм нужно программным путем выгружать и передать через FTP в другую информационную базу информационной базы.
В следующей процедуре передается параметры подключения и выборка макет, которые выгружать. У данной выборки, только 2 параметра – НаименованиеМакета (типа строка) и ХранилищеМакета (типа хранилище значения) . Макеты в выгружаются в виде файла с расширением mxl
&НаСервере
Процедура ВыгрузитьМакеты(АдресСайта, Порт, Пользователь,Пароль, ВыборкаМакет)
FTPСоединение = Новый FTPСоединение(АдресСайта, Порт,Пользователь ,Пароль,,Истина,10);
Пока ВыборкаМакет.Следующий() Цикл
ТабличныйДокумент = ВыборкаМакет.ХранилищеМакета.Получить();
Наименование = ВыборкаМакет.НаименованиеМакета
ИмяФайлаИсточника = ПолучитьИмяВременногоФайла();
ТабличныйДокумент.Записать(ИмяФайлаИсточника,ТипФайлаТабличногоДокумента.MXL);
ИмяФайлаПриемника = "/Макеты/" + СокрЛП(ВыборкаМакет.Наименование)+".mxl";
FTPСоединение.Записать(ИмяФайлаИсточника, ИмяФайлаПриемника);
УдалитьФайлы(ИмяФайлаИсточника);
КонецЦикла;
КонецПроцедуры
В следующую функцию передаются параметры подключения и имя макета который нужно получить из сервера FTP.
&НаСервере
Функция ЗагрузитьМакеты(АдресСайта, Порт, Пользователь,Пароль,ИмяМакета)
Макет = Новый ТабличныйДокумент;
ИмяКаталога = "/Макеты";
FTPСоединение = Новый FTPСоединение(АдресСайта,Порт,Пользователь,Пароль,,Истина,10);
FTPСоединение.УстановитьТекущийКаталог(ИмяКаталога);
Каталог= КаталогВременныхФайлов();
Попытка
АдресРесурса = "/Макеты/"+ ИмяМакета+".mxl";
ИмяВыходногоФайла = ПолучитьИмяВременногоФайла("mxl");
FTPСоединение.Получить(АдресРесурса ,ИмяВыходногоФайла);
Макет.Прочитать(ИмяВыходногоФайла);
УдалитьФайлы(ИмяВыходногоФайла);
Исключение
Сообщить("Ошибка! "+ АдресРесурса + " Не записан ");
КонецПопытки;
Возврат Макет;
КонецФункции;