Выгрузка форматированного документа 1С на свой сайт Пользователи в 1с ведут описание объектов, которые редактируются в объекте ФорматированныйДокумент. Необходимо обеспечить выгрузку форматированного документа на фтп.
Для решения этой задачи воспользуемся методом форматированного документа ПолучитьHTML(). Этот метод вернет нам сам текст html документа и структуру картинок. После выполнения данного метода нам следует выгрузить картинки на наш сайт. Во время выгрузки картинок определяем тип картинки и на основании этого определяем расширение файла. Поэтому нам надо и подкорректировать сам текст html, так как источник картинки в нем по умолчанию прописывается в виде «image001″ (без расширения). Эта корректировка не критична для нас, страница будет отображаться нормально, но отдельно по ссылке открыть рисунок будет проблематично.
Код функции:
Код 1C v 8.2 УП &НаСервере
Функция ВыгрузитьОбъект(ТекОбъект) Экспорт
РезультатВыгрузки = "" ;
ФорматированныйДокумент = ТекОбъект. Описание. Получить( ) ;
Если ФорматированныйДокумент = Неопределено Тогда
РезультатВыгрузки = " У данного объекта не определено описание. Выгрузка объекта остановлена" ;
Возврат РезультатВыгрузки;
КонецЕсли ;
Сервер = ХранилищеНастроек. ФТПСервер;
Порт = ХранилищеНастроек. ФТПпорт;
ИмяПользователяФТП = ХранилищеНастроек. ФТПИмяПользователя;
ПарольПользователяФТП = ХранилищеНастроек. ФТППароль;
ТекущийКаталогFTP = ХранилищеНастроек. ФТПТекущийКаталог;
ФТП = Новый FTPСоединение( Сервер, , ИмяПользователяФТП, ПарольПользователяФТП) ;
Попытка
ФТП. УстановитьТекущийКаталог( ТекущийКаталогFTP) ;
Исключение
РезультатВыгрузки = "Невозможно подключиться к фтп" ;
Возврат РезультатВыгрузки;
КонецПопытки ;
ИмяКаталогаОбъекта = Формат( ТекОбъект. Ссылка. Код, "ЧЦ=5; ЧВН=; ЧГ=" ) ;
Попытка
ФТП. УстановитьТекущийКаталог( ТекущийКаталогFTP + "/" + ИмяКаталогаОбъекта) ;
Исключение
ФТП. СоздатьКаталог( ИмяКаталогаОбъекта) ;
ФТП. УстановитьТекущийКаталог( ТекущийКаталогFTP + "/" + ИмяКаталогаОбъекта) ;
РезультатВыгрузки = РезультатВыгрузки + Символы. ПС + " Создан каталог " + ТекущийКаталогFTP + "/" + ИмяКаталогаОбъекта;
КонецПопытки ;
ФТП. Удалить( ТекущийКаталогFTP + "/" + ИмяКаталогаОбъекта, "*.*" ) ;
ТекстХТМЛ = "" ;
СтруктураКартинок = Новый Структура;
ФорматированныйДокумент. ПолучитьHTML( ТекстХТМЛ, СтруктураКартинок) ;
Для Каждого ТекКартинка Из СтруктураКартинок Цикл
ИмяТемпФайла = ПолучитьИмяВременногоФайла( ) ;
ТекКартинка. Значение. Записать( ИмяТемпФайла) ;
ФорматТекущейКартинки = Строка( ТекКартинка. Значение. Формат( ) ) ;
Если Не ФорматТекущейКартинки = ФорматКартинки. НеизвестныйФормат Тогда
ФорматТекущейКартинкиСтрока = Строка( ФорматТекущейКартинки) ;
ТекстХТМЛ = СтрЗаменить( ТекстХТМЛ, ТекКартинка. Ключ, ТекКартинка. Ключ+ "." + ФорматТекущейКартинкиСтрока) ;
ФТП. Записать( ИмяТемпФайла, ТекКартинка. Ключ+ "." + ФорматТекущейКартинкиСтрока) ;
РезультатВыгрузки = РезультатВыгрузки + Символы. ПС + " Записан файл " + ТекКартинка. Ключ+ "." + ФорматТекущейКартинкиСтрока;
Иначе
ФТП. Записать( ИмяТемпФайла, ТекКартинка. Ключ) ;
РезультатВыгрузки = РезультатВыгрузки + Символы. ПС + " Записан файл " + ТекКартинка. Ключ;
КонецЕсли ;
КонецЦикла ;
ИмяТемпФайла = ПолучитьИмяВременногоФайла( "html" ) ;
ФайлHТМЛ = Новый ТекстовыйДокумент;
ФайлHТМЛ. ДобавитьСтроку( ТекстХТМЛ) ;
ФайлHТМЛ. Записать( ИмяТемпФайла) ;
ФТП. Записать( ИмяТемпФайла, ИмяКаталогаОбъекта + ".html" ) ;
РезультатВыгрузки = РезультатВыгрузки + Символы. ПС + " Записан файл " + ИмяКаталогаОбъекта + ".html" ;
Возврат РезультатВыгрузки;
КонецФункции
Андрей Данилюк Опубликовано на сайте: https://HelpF.pro Прямая ссылка: https://HelpF.pro/faq/view/1171.html