#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Объект вообще не понятно...
#8
by Псиглавец
2 А вот когда ты просто в этом поле в режиме предприятия - ты можешь его содержание сохранить во внешний файл? Руками, не программно?==зы. Я с картинками так делал, с ХТМЛ не пробовал.
#9
by Sergey M
Это просто элемент управления, связанный с... хрен его знает с чем он там связан. Свойства "Данные" в конфигураторе у него нет.Кстати в 1С:Предприятии сохранить HTML файл можно без проблем: "Файл -> Сохранить как..."
#12
by smaharbA
Дайте скриншот хотяб, я восьмерку тока на картинках видел, мож и впрям что придумаю, а думаю что можно и без временного файла, HTML вапче читается на ура...
#15
by Sergey M
Предположим, мне удалось записать HTML во временный файл. Далее - создаю ДвоичныеДанные из этого файла, которые помещаю в ХранилищеЗначения, а уж его складываю в базу.Допустим. А обратно как, на просмотр? Свойство ПолеHTMLДокумента.Документ - только чтение...
#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 Нет, документ из конфы, в форме которого есть это твое многострадальное поле. Или сохрани форму как внешнюю обработку.
#26
by Sergey M
Советую не тратить время, господа. Сие НЕВОЗМОЖНО. Доказано, Sergey M.Надеюсь, критикуемый элемент управления будет доработан в новых версиях платформы. Сейчас он оправдывает свое существование только возможностью просматривать HTML.
#27
by Псиглавец
2 отправил. Смотри - там справа на втрой картинке окно свойств и в нем куча событий...
#28
by smaharbA
Самонадеянно... (думаю все просто, но даже не совсем, то нераз доказывал то что кричали "невозможно!" - возможно) см
#29
by smaharbA
Дак это обычный АктивИкс выходит типа Shell.Explorer там ведь есть и onload наверняка, если к нему можно по ссылке обращаться то можно все элементы/реквизиты получить и их значения (по спецификации ДОМ или чтото подобное)
#32
by smaharbA
В событиях что можно писать, так примерчик дай самый простой, хоть другую форму открыть хоть чегоИ еще у этой формы есть конкест ?
#33
by smaharbA
+ контекст вообще..., меня не интересуют "обычные" для этого типа данных в 1С всякие ТЧ поля и прочее...
#36
by Псиглавец
2 Вроде такого:Сообщить(""+ЭтаФорма.ЭлементыУправления.ПолеHTMLДокумента1.Имя)"ЭтаФорма" - это как контекст.===2 Это элемент формы, в котором происходит событие, т.к. одну процедуру мы можем повесить на разные элементы формы. Это если меня дежавю не подводит.
#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С
В этой группе 1С
- Миста совсем умер?
- 2-НДФЛ какой код дохода для санатор. путевок
- Не работает предварительный просмотр документа в 1С
- Какой вариант ведения взаиморасчетов в УТ выбрать ?
- Зачет с покупателем в УСН без налоговых проводок
- Печать на А5, кто как делает?
- Ошибка MAPI при отправке почты с помощью v7plus.dll
- Код дохода 1520 и выгрузка 2-НДФЛ в ЗиК
- Сами по себе обновляются формы
- Построитель отчетов: Визуальная настройка
- Ошибка при запуске 6.0
- Как передать табличную часть документа в форму обработки?
- Турбо Паскаль - движущееся изображение
- Требование-накладная с нулевой суммой
- 1С:Предприятие. Не могу удалить сотрудника!!!
- Помогите навичку разбираться в програмном коде 1с
- СводныйОстаток - на какую дату рассчитываеться?
- 2-НДФЛ отпуск декабрь-январь.
- В журнале операций пропало окошко проводок внизу
- Не работает ввод по строке по дополнительному реквизиту