Имя: Пароль:
1C
1С v8
1c и HTML
0 iceman2112
 
19.07.12
08:19
В конфигурации есть статья, хочется, чтобы она выглядела красиво. Можно ли использовать как средства html в 1с? Если да то какими средствами?
1 iceman2112
 
19.07.12
08:21
(0) + как то*
2 Рэйв
 
19.07.12
08:22
ПолеHTMLДокумента (HTMLDocumentField)
Свойства:
Документ (Document)
Рамка (Border)
ЦветРамки (BorderColor)

Методы:
Вперед (GoForward)
Назад (GoBack)
Перейти (Navigate)
ПолучитьURL (GetURL)
ПолучитьТекст (GetText)
УстановитьРежим (SetMode)
УстановитьТекст (SetText)

События:
ДокументСформирован (DocumentComplete)

Описание:
Элемент управления предоставляет возможность показа HTML-документа, навигации и редактирования.
Элементу управления также доступны события HTML-документа.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
См. также:
ОболочкаHTMLДокумента
3 iceman2112
 
19.07.12
08:25
хм, хорошо html документ. Получается для редакции статьи нужно отредактировать html документы, которые будет лежать в каком то хранилище?
4 izekia
 
19.07.12
08:27
хтмл документ - это строка
5 vde69
 
19.07.12
08:30
с хтмл документом - траблы есть нужно на диске хранить картинки.

1с сделало спец объект в котором и форматированый текст и картинки, только скрипты в нем не работают
6 vde69
 
19.07.12
08:32
(5)+

Поле форматированного документа
7 iceman2112
 
19.07.12
08:46
(5) так и что это за объект?
8 Рэйв
 
19.07.12
08:47
(0)Да сделай ее красиво в макете и выводи.Чего мучаться то.
9 iceman2112
 
19.07.12
08:56
да не. Мучение это каждый раз макет рисовать, толи на html добавил пару тегов и вот тебе красота + картинки
10 vde69
 
19.07.12
09:43
(9) кури (6)
11 Юрий Лазаренко
 
19.07.12
10:07
(5) Нинада на диске. Формируешь HTML с картинками, открываешь в IE, сохраняешь в формате .mht, там картинки уже в него зашиты, получается в итоге один файл. Открыть его потом в 1С  - как два байта переслать.
12 Юрий Лазаренко
 
19.07.12
10:08
Во всяком случае у меня это работает уже с 2008 года, сбоев не было. PDF в таком варианте тоже открывается. Правда проверял только на УФ.
13 izekia
 
19.07.12
10:12
(11) ну перешли два байта из 1С в произвольный порт?
14 Юрий Лазаренко
 
19.07.12
10:14
(13) "Это системная проблема, программисты этим не занимаются" (с)
15 Юрий Лазаренко
 
19.07.12
10:14
Код для mht для УФ:


&НаКлиенте
Процедура ПоказатьДокумент()
   
   // Если путь к файлу не указан, то поместим туда информационную надпись, чтобы обеспечить видимость гиперссылки
   Если Объект.ПутьКФайлуСИнструкцией = "" Тогда
       Объект.ПутьКФайлуСИнструкцией = "файл не выбран";
   КонецЕсли;

   Если Объект.ИнструкцияИсходныйКод = "" Тогда
       // Если исходный код еще не задан, то просто очистить поле
       HTMLТекст = "";
       Возврат;
   Иначе
       // Исходный код задан - активизируем поле
       ТекущийЭлемент = Элементы.HTMLТекст;
   КонецЕсли;

   // Поместим исходный код во временный файл и отобразим его в поле
   ТД = Новый ТекстовыйДокумент;
   ТД.УстановитьТекст(Объект.ИнструкцияИсходныйКод);
   //ТД.УстановитьТекст("<html><body>Проверка распечатки документа</body></html>");
   //ТекстДокумента = ТД.ПолучитьТекст();
   //ТекстДокумента = СтрЗаменить(ТекстДокумента, "</body>", "<center><a href='javascript:window.print()'>распечатать документ</a></center></body>");
   //ТД.УстановитьТекст(ТекстДокумента);
   ИмяВременногоФайла = ПолучитьИмяВременногоФайла(".mht");
   //ИмяВременногоФайла = ПолучитьИмяВременногоФайла(".html");
   ТД.Записать(ИмяВременногоФайла);
   HTMLТекст = ИмяВременногоФайла;

   //ПоместитьВоВременноеХранилище(Объект.ИнструкцияИсходныйКод, "ТекстДока");
   //HTMLТекст = ПолучитьИзВременногоХранилища("ТекстДока");
   
   //HTMLТекст = ПолучитьНавигационнуюСсылку(Объект, "ИнструкцияИсходныйКод");

КонецПроцедуры
16 Юрий Лазаренко
 
19.07.12
10:15
&НаКлиенте
Процедура ЗагрузитьФайлВыполнить()
   
   Перем флНеобходимаЗапись; // Флаг необходимости записи элемента

   флНеобходимаЗапись = Ложь;
   ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   ДиалогОткрытияФайла.ПолноеИмяФайла = ?(Найти(Объект.ПутьКФайлуСИнструкцией, ".mht") = 0, "", Объект.ПутьКФайлуСИнструкцией);
   ДиалогОткрытияФайла.Фильтр = "Веб-архив(*.mht)|*.mht";
   ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
   ДиалогОткрытияФайла.Заголовок = "Выберите файл с инструкцией";
   Если ДиалогОткрытияФайла.Выбрать() Тогда
       Если Объект.ПутьКФайлуСИнструкцией <> ДиалогОткрытияФайла.ПолноеИмяФайла Тогда
           флНеобходимаЗапись = Истина;
       КонецЕсли;
       Объект.ПутьКФайлуСИнструкцией = ДиалогОткрытияФайла.ПолноеИмяФайла;
   Иначе
       Предупреждение("Файл не выбран, загрузка прервана");
       Возврат;
   КонецЕсли;    
   
   // Прочитаем файл и поместим в справочник
   ТД = Новый ТекстовыйДокумент;
   ТД.Прочитать(Объект.ПутьКФайлуСИнструкцией);
   Если Объект.ИнструкцияИсходныйКод <> ТД.ПолучитьТекст() Тогда
       флНеобходимаЗапись = Истина;
   КонецЕсли;
   Объект.ИнструкцияИсходныйКод = ТД.ПолучитьТекст();

   Если флНеобходимаЗапись Тогда
       // Принудительно установим признак модифицированности формы, чтобы не потерять изменения
       ЭтаФорма.Модифицированность = Истина;
       // Отображение документа
       HTMLТекст = Объект.ПутьКФайлуСИнструкцией;
   Иначе
       Сообщение = Новый СообщениеПользователю();
       Сообщение.Текст = "Текст документа не изменился, перезапись не требуется";
       //Сообщение.КлючДанных = Объект.Ссылка;
       //Сообщение.ПутьКДанным = "ЕдиницаПоКлассификатору";
       //Сообщение.Поле = "ЕдиницаПоКлассификатору";
       //Сообщение.УстановитьДанные();
       Сообщение.Сообщить();
   КонецЕсли;

КонецПроцедуры
17 Юрий Лазаренко
 
19.07.12
10:16
Принцип там понятен, я думаю
18 iceman2112
 
19.07.12
10:16
это хорошо, но не удобно, создавать где то, потом сохранять. Я думаю форматированные документ, то что надо.
19 iceman2112
 
19.07.12
10:17
+ в том что с картинками заморочек не будет, как я понял в случае mht
20 Юрий Лазаренко
 
19.07.12
10:18
(18) Зависит от сложности твоего html-источника. Поле форматированного документа иногда это самое форматирование корежит, а в моем варианте отображение 100% будет соответствовать оригиналу.
(19) Не только с картинками, но и с форматированием в некоторых случаях.
21 Юрий Лазаренко
 
19.07.12
10:19
В обсчем вот тебе вариант, выбирай там уже дальше в зависимости от твоих бизнес-процессов и требований к степени соответствия оригиналу.
22 iceman2112
 
19.07.12
10:22
Спасибо.
23 Юрий Лазаренко
 
19.07.12
10:22
Еще вариант - прикрутить ВК для редактирования и отображения HTML, таковых в инете выложено великое множество.
24 Юрий Лазаренко
 
19.07.12
10:23
Сам к нему присматриваюсь, ибо форматированный документ иногда своими выкрутасами вымораживает просто.
25 iceman2112
 
19.07.12
10:31
Видишь еще хочется полнотекстовый поиск, как я понимаю ни одном ни другом варианту у меня его сделать не получиться.
26 Юрий Лазаренко
 
20.07.12
13:45
(25) Храни исходник html в базе, тогда и полнотекстовый поиск его схавает. У меня хавает )