Имя: Пароль:
1C
 
Макет, картинки, сохранение в html и отправка по почте
0 mr_K
 
01.06.11
14:52
Есть макет. В нем несколько картинок. Формирую табличный документ, записываю его в формате html4. Все нормально, картинки есть. Прикладываю получившийся файл к "ИнтернетПочтовоеСообщение":
Письмо = Новый ИнтернетПочтовоеСообщение;
...
Письмо.Вложения.Добавить(ПутьКФайлу, "бла-бла-бла");
...
Отправляю сообщение:
...
ИПочта = Новый ИнтернетПочта;
Попытка
   ИПочта.Подключиться(ПрофильЭлектроннойПочты);
   ИПочта.Послать(Письмо);
   ИПочта.Отключиться();
Исключение
...
КонецПопытки

Получаю почту, файл во вложении есть, картинок в нем - нет.
ЧЯДНТ?
1 poligraf
 
01.06.11
14:55
В html же нет картинок?
Только ссылки?
2 mr_K
 
01.06.11
15:36
(1) Точно! Спасибо!

Буду выкручиваться
3 mr_K
 
02.06.11
11:55
Продолжу тему. Придется рассказать с самого начала ))
Нужно формировать и отправлять по электронке некие документы. Формат word, excel, etc - не подходит, так как в данный документ получатель не должен иметь возможности внести изменения(во всяком случае, чтобы внести изменения пришлось бы помучиться). Формат html - все хорошо, да только вот в макете есть картинки, которые при сохранения табличного документа в html сохраняются в отдельную папку и соответственно когда я к письму прикладываю хтмл-ник, даже если я дополнительно приложу картинки, то все равно когда пользователь получит письмо, в этом хтмл-ке картинок не будет, так как в нем будут ссылки на локальные файлы.
Что можете посоветовать?
4 mr_K
 
02.06.11
12:00
Как вариант, сформировать html, прочитать его исходный текст, подменить ссылки на картинки(пока не понятно на что) и записать полученный текст в текст письма и тип текста выставить html. Буду пробовать, но буду признателен за советы, может кто-то уже через это проходил ))
5 Сияющий Асинхраль
 
02.06.11
12:01
PDF
6 mr_K
 
02.06.11
12:04
(5) А какие варианты формирования pdf? То что я смотрел уж больно геморойно ))
7 Сияющий Асинхраль
 
02.06.11
12:14
Любой бесплатный PDF принтер, коих великое множество
8 mr_K
 
02.06.11
12:21
(7) проблематично. Нужно создавать спец.принтер для всех, который будет печатать в определенное место не спрашивая.
Не универсально получается.
В качестве крайнего случая только
9 Сияющий Асинхраль
 
02.06.11
12:34
Сколько же у вас этих всех, что так сложно лишний принер поставить? Помнится в системе на 70 пользователей таких проблем не было
10 oleg_km
 
02.06.11
12:45
В типовой УТ посмотри, там есть процедура которая создает письмо с картинками в HTML
11 acsent
 
02.06.11
12:46
HTML - легко можно поправить
12 vis_tmp
 
03.06.11
06:56
(11)А как, не подскажите?
13 vis_tmp
 
03.06.11
06:59
(10)Где примерно эта процедура, не помните?
14 smaharbA
 
03.06.11
07:03
существует два варианта внедрения картинок в хтмл, один посмотри в оутлуках, второй в теге имг + базе64/дата
15 Drock
 
03.06.11
07:14
PDFCreator

решение проблем без вазелина :) (pdf, jpg, png )
(13) Выводишь на печатную форму, кнопка отправить по почте (верхний левый угол)
16 vis_tmp
 
03.06.11
07:39
(15)в PDF понятно, но мне, к примеру, нужно для сайта и именно в html
17 poligraf
 
03.06.11
07:42
Видел тут в одной конфигурации фишку сохранения в pdf.
Используют Excel 2007.
Сначала формируется табличка (уже не помню, напрямую в Excel или через сохранение таблицы), потом через OLE делается сохранение экселем в PDF.
18 vis_tmp
 
03.06.11
07:57
(17)А он разве так может?
19 IamAlexy
 
03.06.11
08:00
(18) 2007  и 2010 могут...
20 vis_tmp
 
03.06.11
08:06
(0) Для вашего случая вот тут расписано подробно:
http://v8.1c.ru/metod/faq/answer.jsp?id=380
21 vis_tmp
 
03.06.11
09:32
А вот мне нужно создать именно файл html с внедрённой в него картинкой (логотипом)..
22 smaharbA
 
03.06.11
10:27
еще раз - существует два варианта внедрения картинок в хтмл, один посмотри в оутлуках, второй в теге имг + базе64/дата
23 vis_tmp
 
03.06.11
12:26
(22) Да, спасибо
24 WickeD
 
03.06.11
12:49
25 Сияющий Асинхраль
 
03.06.11
13:09
А то, что html превосходно открывается и редактируется визуально обычным вордом, не сильно хуже родного дос формата, это ничего?
26 vis_tmp
 
03.06.11
13:41
(24) Это копия с сайта 1С (20)
27 vis_tmp
 
03.06.11
13:42
(25) А надо программно... И ворда может не быть на сервере, к примеру...
28 mr_K
 
08.06.11
13:41
Еще раз в продолжении темы ))
Сделать как показано в (20) и (24) - не получится. Нужно отправить "сложные" документы, с непостоянной структурой, и картинка в этом документе должна быть на "корректном" месте, а не абы где.
Про pdf. Все вроде нормально, создал виртуальный принтер(программа PDF creator), настроил ему ini-ник, чтобы был аутосейв в определенной место с определенным именем.
Все отрабатываем.
Теперь нужно сделать в цикле:
1. формирование табличного документа
2. отправка его на этот принтер
3. отправка почтового сообщения с вложением, созданным в п.2

При этом возникает проблема:
Так как для вирт.принтера я не могу(вернее могу, но это будет вообще извратно) на ходу менять файл с настройками, то он сохраняет файло с одним и тем же именем в одно и тоже место. Т.е. сохранил - отправил - удалил. Вот с пунктом удалил - проблема. Как проверить, что файл заблокированный ранее отправкой почты, как почтовое вложение - уже отпущен.
Конструкция:
Попытка
   УдалитьФайлы()
...
приводит к исключению, валящему 1С. "Файл используется другим приложением.. бла-бла-бла"

В общем, наставьте меня на путь истинный ))
29 mr_K
 
08.06.11
13:50
Если зайти с другой стороны:
Есть ли возможность прочитать html-файл, как текст?
Чтобы сформировать табличный документ, сохранить его в html, прочитать текст этого html, запихнуть его в текст сообщения и сделать Письмо.ОбработатьТексты(), как приведено в (20) и (24)

в общем хелп! ))
30 mr_K
 
08.06.11
14:02
как быстро ветка тонет, а вопрос - важный.
31 mr_K
 
08.06.11
14:14
Неужели совсем никто не выскажется?
32 mr_K
 
08.06.11
15:01
н-дя, дело труба ((
33 Dmitry77
 
08.06.11
15:07
вообще напрямуб от пользователя слать документы - не правильно. Надо пользователем создавать письмо. Потом его регламентом обрабатывать (добавлять в него нужный файл) и отсылать. Соответсвенно PDF принтер нужен только в одном месте на сервере 1с.
34 mr_K
 
08.06.11
15:38
Я вроде нашел решение. В pdf creatore можно задать действия перед печатью и после печати.
Перед печатью я удаляю некий флаговый файл, после печати - этот же файл создаю.
в 1С после метода Напечатать проверяю наличие флагового файла, и как только он появился - прикладываю pdf к письму и отправляю.

Вроде должно быть корректно, сейчас буду пробовать. Если кому интересно - могу поделиться результатом, ну и детальнее о решении.

Всем спасибо!