Как хранить в базе документы, созданные в ПолеHTMLДокумента? #168730


#0 by Sergey M
Задача: дать пользователю создавать описания чего-либо в html формате. Есть элемент управления ПолеHTMLДокумента причем его можно использовать в режиме редактирования. Но как сохранять результаты редактирования в ИБ?Напрашивается тип поля ХранилищеЗначения. Но поместить туда то, что возвращает ПолеHTMLДокумента по свойству ".Документ" нельзя...
#1 by Sergey M
Можно было бы обойтись и простым текстом, но ОЧЕНЬ нужно сохранять картинки в описаниях, а табличные документы - это неудобно.
#2 by Псиглавец
Зато в ХранилищеЗначений можно хранить ДвоичныеДанные. Значит нужно думать как из того, что у тебя есть получить эти ДвоичныеДанные
#3 by Sergey M
ДвоичныеДанные можно создать/получить имея на руках готовый файл и путь к нему. Значит вопрос сводится к следующему:Как имея COMОбъект, который возвращает ПолеHTMLДокумента.Документ сохранить его в некий временный файл?
#4 by Псиглавец
2 Выходит, что так... я бы по крайней мере так сделал. А во временный файл, я думаю можно сохранить без труда.
#5 by smaharbA
Ниче не понимаю, объясните тупому алкоголику...(может воспаленный мозг чего и посоветует)
#6 by Sergey M
Временный файл без труда создать не получается. Для HTML нет никакого метода типа ".Записать(...)", как например у ТекстовогоДокумента. А как сохранить COMОбъект вообще не понятно...
#7 by smaharbA
А че такое ПолеHTMLДокумента.Документ ? ты же его както на экране видишь...
#8 by Псиглавец
2 А вот когда ты просто в этом поле в режиме предприятия - ты можешь его содержание сохранить во внешний файл? Руками, не программно?==зы. Я с картинками так делал, с ХТМЛ не пробовал.
#9 by Sergey M
Это просто элемент управления, связанный с... хрен его знает с чем он там связан. Свойства "Данные" в конфигураторе у него нет.Кстати в 1С:Предприятии сохранить HTML файл можно без проблем: "Файл -> Сохранить как..."
#10 by Псиглавец
2 Значит и программно можно, не нытьем так каканьем. :)
#11 by smaharbA
Всеже не понял, на экрането он есть со всеми данными ?
#12 by smaharbA
Дайте скриншот хотяб, я восьмерку тока на картинках видел, мож и впрям что придумаю, а думаю что можно и без временного файла, HTML вапче читается на ура...
#13 by Sergey M
На экране есть. А толку с него... КАК СОХРАНИТЬ В БАЗЕ-ТО???
#14 by smaharbA
Пока иду за пивом, сделай скриншот, я как Чумак по фото :)
#15 by Sergey M
Предположим, мне удалось записать HTML во временный файл. Далее - создаю ДвоичныеДанные из этого файла, которые помещаю в ХранилищеЗначения, а уж его складываю в базу.Допустим. А обратно как, на просмотр? Свойство ПолеHTMLДокумента.Документ - только чтение...
#16 by Псиглавец
2 гы! какое-то дурацкое поле. Нужно экспериментировать, сейчас не могу.
#17 by Sergey M
Начинаю склоняться к тому, что ПолеHTMLДокумента - это фишка прежде всего для просмотра web. НИКАКИХ средств для взаимодействия с БД не обнаружено...
#18 by Sergey M
UP - Последняя попытка.Если никто не поможет, ну и хрен с ним с HTML, придется юзать обычный текст. А какая была задумка...А вообще забавно, не думал, что возможности v8 подведут на такой мелочи...
#20 by smaharbA
Зря ты игнорируешь меня...Ну ладно, нанада тебе так ненада...(буду пить пиво, больше небуду и пытаться помогать :) )Для неверующих -"Вы не знаете кто такой Паниковский ?Нет, Вы не знаете кто такой Паниковский.Дак поезжайте в Киев и спросите...Нет, Вы поезжайте и спросите..." (с)
#21 by Sergey M
Документ из поля HTML? У меня нет никакого конкретного документа, вопрос о сохранении HTML в принципе.Форма эл-та любого справочника -> Вставить ЭУ -> Поле HTML -> В палитре свойств: Режим = Редактирование.Вот и вся моя ситуация...
#22 by Псиглавец
2 Нет, документ из конфы, в форме которого есть это твое многострадальное поле. Или сохрани форму как внешнюю обработку.
#23 by Псиглавец
2 А, ок...
#24 by Псиглавец
2 Куда тебе скриншот?
#26 by Sergey M
Советую не тратить время, господа. Сие НЕВОЗМОЖНО. Доказано, Sergey M.Надеюсь, критикуемый элемент управления будет доработан в новых версиях платформы. Сейчас он оправдывает свое существование только возможностью просматривать HTML.
#27 by Псиглавец
2 отправил. Смотри - там справа на втрой картинке окно свойств и в нем куча событий...
#28 by smaharbA
Самонадеянно... (думаю все просто, но даже не совсем, то нераз доказывал то что кричали "невозможно!" - возможно) см
#29 by smaharbA
Дак это обычный АктивИкс выходит типа Shell.Explorer там ведь есть и onload наверняка, если к нему можно по ссылке обращаться то можно все элементы/реквизиты получить и их значения (по спецификации ДОМ или чтото подобное)
#30 by smaharbA
Могу код накидать...Даже без наличия 8.0...
#31 by Псиглавец
2 угу, давай. Интересно.
#32 by smaharbA
В событиях что можно писать, так примерчик дай самый простой, хоть другую форму открыть хоть чегоИ еще у этой формы есть конкест ?
#33 by smaharbA
+ контекст вообще..., меня не интересуют "обычные" для этого типа данных в 1С всякие ТЧ поля и прочее...
#34 by Псиглавец
ОбработкаСобытияОнКлик===
#35 by smaharbA
А это что ЭлементФормы ?
#36 by Псиглавец
2 Вроде такого:Сообщить(""+ЭтаФорма.ЭлементыУправления.ПолеHTMLДокумента1.Имя)"ЭтаФорма" - это как контекст.===2 Это элемент формы, в котором происходит событие, т.к. одну процедуру мы можем повесить на разные элементы формы. Это если меня дежавю не подводит.
#37 by smaharbA
Я могу задать много казалось бы сперва тупых вопросов, но задаю не спроста :)
#38 by smaharbA
Тогда должно быть чтото типа такогоЭтаФорма.ЭлементыУправления.ПолеHTMLДокумента1.body.innerHTMLЭэх буду искать счас восьмерку, хоть вапче без конфигурации...
#39 by Псиглавец
2, Ну собственно уЭтаФорма.ЭлементыФормы.ПолеHTMLДокумента1обнаружилось такие свойства и методы:  ЭтаФорма.ЭлементыФормы.ПолеHTMLДокумента1.АвтоКонтекстноеМеню;  ЭтаФорма.ЭлементыФормы.ПолеHTMLДокумента1.АктивизироватьПоУмолчанию;  ЭтаФорма.ЭлементыФормы.ПолеHTMLДокумента1.Данные  ЭтаФорма.ЭлементыФормы.ПолеHTMLДокумента1.Документ  ЭтаФорма.ЭлементыФормы.ПолеHTMLДокумента1.ИзменяетДанные
#40 by smaharbA
О блин дак этого более чем предостаточно, одни методыЭтаФорма.ЭлементыФормы.ПолеHTMLДокумента1.ДанныеЭтаФорма.ЭлементыФормы.ПолеHTMLДокумента1.Документда и очч интересен методЭтаФорма.ЭлементыФормы.ПолеHTMLДокумента1.ПолучитьURLдадут думаю многое...
#41 by Псиглавец
Синтаксис:ПолучитьТекстВозвращаемое значение:Тип: Строка.Описание:Получает текст HTML-документа.ПолеHTMLДокумента (HTMLDocumentField)Документ (Document)Использование:Только чтение.Описание:Тип: COMОбъект. Предоставляет доступ к HTML документу.ПолеHTMLДокумента (HTMLDocumentField)ПолучитьURL (GetURL)Синтаксис:ПолучитьURL(<Объект метаданных>)Параметры:<Объект метаданных> (обязательный)Тип: ОбъектМетаданных. Объект метаданных, URL которого надо получитьВозвращаемое значение:Тип: Строка.Описание:Получает URL к макету HTML типа или к картинке, для использования в работе с HTML-документом.ПолеHTMLДокумента (HTMLDocumentField)Перейти (Navigate)Вариант синтаксиса: По URLСинтаксис:Перейти(<URL>)Параметры:<URL> (обязательный)Тип: Строка. URL ресурса, который будет загружен в элемент управления.Вариант синтаксиса: По объекту метаданныхСинтаксис:Перейти(<Макет>)Параметры:<Макет> (обязательный)Тип: ОбъектМетаданных. Макет HTML-документа, на который должен перейти элемент управления.Описание:Осуществляет переход на страницу с заданным адресом.Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.Примечание:Не доступен в режиме работы "Редактирование".Пример:КонецПроцедуры====Данные - загадочное свойство, в СП не описан...
#42 by smaharbA
Все, достаточно Documentnodes=Document.childNodes и так далее и тому подобное, конечно данные буду т в виде нодов и текста/"примитивного типа" в них содержащегося, так можно вообще весь такой док сохранить в переменную(и) тока непонятно для меня его предназначение(ПолеHTMLДокумента1), это чтоб получить данные из URL ?
#43 by Псиглавец
2 Чтобы ХТМЛ-файлы отображать прямо в окне в8. Типа внутренний веб-браузер.Элемент управления предоставляет возможность показа HTML-документа, навигации и редактирования.Элементу управления также доступны события HTML-документа.Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.См. также:ОболочкаHTMLДокумента
#44 by smaharbA
Дак тогда мне и восьмерку некчему ставить все необходимые методы для есть, что ему еще нада неясно...
#45 by Псиглавец
2 Похоже ты прав. Вот, что пишут:При пересылке HTML текста, в нем могут содержаться различные данные, например картинки. В HTML документе они могут быть представлены как ссылка на локальный ресурс и, если у получателя по такой же ссылке нет этих данных, в HTML документе данные не будут отображаться. Для того, что бы этого не случилось, используется метод ОбработатьТексты (или во втором параметре метода Послать указать ОбработкаТекстаИнтернетПочтовогоСообщения.НеОбрабатывать – используется по умолчанию). Этот метод вставляет данные в тело сообщения как вложение с заменой ссылки на локальный ресурс локальной ссылкой на часть почтового сообщения. При приеме таких писем отделить вложение от объекта HTML документа можно по непустому свойству ИнтернетПочтовоеВложение.Идентификатор. Например:Картинки = ЭлементыФормы.HTMLДокумент.Документ.all.tags("img");КонецЦикла;Вначале элементу ПолеHTMLДокумента присваивается HTML текст сообщения. Затем перебираются все элементы HTML документа с именем тега "IMG". Для каждого элемента в цикле ищется вложение с таким же идентификатором и если находится такое вложение, оно сохраняется во временном файле, а в HTML документе прописывается ссылка к этому файлу.Некоторые старые почтовые клиенты могут корректно принимать сообщения только с простым текстом. Метод ОбработатьТексты также автоматически создает в сообщении две части идентичного текста, одна из которых имеет тип текста HTML, а другая – ПростойТекст. Принимающий почтовый клиент выбирает тот тип текста, который сможет показать корректно.Почтовое сообщение состоит из заголовка и нескольких частей, включающих в себя текстовые данные и/или бинарные. Так же как и бинарных данных (вложений) текстовых может быть тоже несколько частей. Для создания этих частей существует коллекция ИнтернетТекстыПочтовогоСообщения.
#46 by Sergey M
Да говорю я Вам НЕ ПАРЬТЕСЬ. Если нет очевидного решения, значит этот элемент управления не предназначен для взаимодействия с БД.Вообще, режим ПоляHTMLДокумента "Редактирование" появился только в релизе 8.0.7, а до этого был только "Просмотр". Все это НЕ ДОРАБОТАНО.
#47 by Псиглавец
2 или ХранилищеДанных или Двоичные данные тоже появились только в 5-м релизе.===И писать можно:Процедура ПолеHTMLДокумента1ДокументСформирован(Элемент)ЭлементыФормы.ПолеHTMLДокумента1.Документ.body.innerhtml="<a id=Поле1 href=#> ПОЛЕ 1 </a>";КонецПроцедуры
#48 by smaharbA
Дурик (извини конечно за такое) тебе что нада метод проста СохранитьВБазе дак напиши тут деловто на 10-20 минут...(будет у меня восьмерка сделаю и за 5 )
#49 by Псиглавец
+Если можно получить содержимое документа ХТМЛ-поля и сохранить его во временный файл, то приемы работы с ним практически не отличаются от приемов работы с картинкой. А картинку в Хранилище я засовывал.==="А говорил, что Романтик!" (с) робот Вертер
#50 by Sergey M
В любом случае, даже если удастся где-то сохранить этот долбаный HTML, что с ним потом делать? Например так:ЭлементыФормы.ПолеHTMLДокумента1.Перейти(<куда-то>);Но метод Перейти работает только в режиме "Просмотр". ОК Перед загрузкой переводим Поле в режим "Просмотр" и загружаем HTML. Ладно. Но при программном включении режима "Редактирование" Поле... ОЧИЩАЕТСЯ!!! И перед вами белое поле с мигающим курсором...
#51 by smaharbA
Малаца, тока конечно лучче не innerHTML а SetAttribute, но это уже детали...(вот таких уважаю, что не кричат недоработка/глюк, а находят решение)________________________________Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас (c)
#52 by smaharbA
Кто тебе это сказал ? Ты можешь сохранить его значение в переменной и на onclick вставить (это так, тупенько)
#53 by smaharbA
+ Да "контекст" этого объекта хоть как активикс на форму кидай и редактируй(всеже придется восьмерку искать, слишком многа школяров на ней начали писАть)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С