Отправка печатных форм по e-mail

Публикация № 655646

Обмен - Email рассылки

2
Отправка печатных документов, отчетов и пр. форм по e-mail.
  • Для работы потребуются 2 библиотеки: FormEx.dll и SpreadSheet.dll.
  • Файл с обработкой положить в каталог. Например: каталог БД\Обработки\.
  • Создать на диске каталог для записи отправленных файлов. Например: каталог ИБ.
  • В конфигураторе БД: Интерфейсы -> Редактировать панели инструментов -> добавить новую кнопку:
  • Объект --> Задача
  • Команда ->Задача.Выполнить
  • В параметрах прописать формулу: ОткрытьФорму("Отчет",,КаталогИБ() + "\Обработки\ДиалогОтправкаНаМыло.ert") – в кавычках каталог, где лежит обработка.
  • В конфигураторе открыть обработку:
  • заполнить параметры ящика для отправки:
  • SMTPСервер – ://../// - для - smtp.gmail.com.
  • SMTPПорт – http://schemas.microsoft.com/cdo/configuration/smtpserverport - для - 465.
  • ПротоколШифрования – http://schemas.microsoft.com/cdo/configuration/smtpusessl - для - -1 (минус один).
  • Отправитель - http://schemas.microsoft.com/cdo/configuration/sendusername - ящик.
  • Пароль - http://schemas.microsoft.com/cdo/configuration/sendpassword - пароль.
  • Текст письма.
  • прописать КаталогДляЗаписи (сохранение отправленных файлов).

Вышеуказанные переменные находятся в операторах основной программы (в конце модуля).

  • Сохранить изменения в обработке и конфигураторе, запустить предприятие, открыть печатную форму и можно работать.

Открытая печатная форма сохраняется в файл формата PDF.

2

Скачать файлы

Наименование Файл Версия Размер
Диалог отправки печатной формы на e-mail
.ert 38,00Kb
28.07.17
11
.ert 38,00Kb 11 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. CheBurator 3392 28.07.17 16:20 Сейчас в теме
Плюсую как за сильно упрощенный бесплатный вариант ;-)
а так - возьмтите себе (но платно) http://infostart.ru/public/14131/ и http://infostart.ru/public/14180/
8. Gkmy 25 29.07.17 06:00 Сейчас в теме
(1)
в:
- http://infostart.ru/public/14131/ [ECDO] Отсылка писем из 1С без проблем - одна из лучших разработок!
- http://infostart.ru/public/14180/ [ЭВРИКА] МАЛЕНЬКИЙ ШЕДЕВР 1.8 Мгновенная отправка по почте ЛЮБОЙ печатной формы БЕЗ ИЗМЕНЕНИЯ КОДА
-- тоже используется:
Письмо = СоздатьОбъект("CDO.Message");
**
Письмо.Send();

??
10. CheBurator 3392 29.07.17 22:46 Сейчас в теме
(8) да, используется CDO
разработка фурычит на нескольких тысячах емайлов разных контор
2. Gkmy 25 29.07.17 02:21 Сейчас в теме
мСервис = СоздатьОбъект("Сервис");
{C:\USERS\888\DESKTOP\ДИАЛОГОТПРАВКАНАМЫЛО.ERT(54)}: Неудачная попытка создания объекта (Сервис)
5. Gkmy 25 29.07.17 03:04 Сейчас в теме
Как устранить причины ошибок (2) и (3) разобрался. Что делать с (4) - ума не приложу
3. Gkmy 25 29.07.17 02:45 Сейчас в теме
Йоксель = СоздатьОбъект("ТабличныйДокумент");
{C:\USERS\888\DESKTOP\ДИАЛОГОТПРАВКАНАМЫЛО.ERT(107)}: Неудачная попытка создания объекта (ТабличныйДокумент)
4. Gkmy 25 29.07.17 02:57 Сейчас в теме
Конвертер = СоздатьОбъект("Йоксель.ГрафическийКонвертер.PDF");
{C:\USERS\888\DESKTOP\ДИАЛОГОТПРАВКАНАМЫЛО.ERT(118)}: Неудачная попытка создания объекта (Йоксель.ГрафическийКонвертер.PDF)
6. Gkmy 25 29.07.17 03:13 Сейчас в теме
Конвертер.ЗаписатьВФайл(КаталогДляЗаписи);
{C:\USERS\888\DESKTOP\ДИАЛОГОТПРАВКАНАМЫЛО.ERT(140)}: File open error
11. АннаШ 107 31.07.17 08:33 Сейчас в теме
(6) SpredSheet.dll - установлена? Каталог для записи создан?
Прикрепленные файлы:
SpreadSheet.dll
7. Gkmy 25 29.07.17 03:24 Сейчас в теме
9. Доня 274 29.07.17 15:26 Сейчас в теме
для какой конфигурации ?
12. АннаШ 107 31.07.17 08:35 Сейчас в теме
(9) Разрабатывалось для ТиС. На ней же тестировалось (чистая БД).
По-моему, и для бухгалтерии должно работать: (важно) в контрагентах поле "Адрес электронной почты".
28. user1089352 21.11.18 17:15 Сейчас в теме
(12) У меня 1С 7.7 редакция 4.5 бухгалтерия, в контрагентах поля для "Адрес эл. почты", вообще нет! Ну или я не нашел как его включить! Я внес изменения в "модуле",
// адрес почты контрагента
Адрес = СокрЛП(ВыбКонтрагент.ПочтовыйАдрес)
Получается в поле "ПочтовыйАдрес", вписываю e-mail.
Он корректно подставляется в поле "получатель" при выборе контрагента.

Но в итоге, при отправке выскакивает ошибка "CDO.Messadge1.: Транспорту не удалось подключиться к серверу"

Помогите разобраться! С чем эта ошибка может быть связана?
Как её устранить?
Прикрепленные файлы:
30. АннаШ 107 22.11.18 08:33 Сейчас в теме
(28) Попробуйте поиграться с ПротоколШифрования (0, 1, -1).
Ну, и порты, сервер (SMTPСервер, SMTPПорт). Еще и smtpusessl.
Я все эти настройки брала из своего бата.
31. user1089352 22.11.18 11:36 Сейчас в теме
(30) Спасибо за ответ!
Все заработало! Проблема была в файрволе, он сволочь блокировал.
Я сейчас пытаюсь еще несколько вопросов решить. Может поможете?

1. Как в "Модуле" прописать, чтобы в "Тему письма" и "Имя файла PDF", по умолчанию подставлялась строка из отправляемой формы, к примеры: "Счет № 000 от 21 Ноября 2018 г."???

2. У меня почтовый SMTPСервер - "smtp.mail.ru", отправленные письма при помощи этой разработки, в папку "Отправленные", не попадают! Эти письма, вообще где-то сохраняются? Если да - то, где? Если нет - то, можно ли настроить, чтобы они в папку "Отправленные" попадали?

3. И самый главный вопрос, который я сейчас "гуглю"! Можно ли в моей "1с7.7 редакция 4.5", добавить поле для ввода E-mail, при внесении нового "контрагента"?

Пожалуйста помогите решить эти вопросы!!!
32. АннаШ 107 23.11.18 08:31 Сейчас в теме
(31) 1. Тема = СокрЛ(ИмяФайла);

2. Я не смогла добиться сохранения этих писем.

3. В конфигураторе в справочнике "Контрагенты" добавить, вынести на форму.
33. user1089352 23.11.18 15:25 Сейчас в теме
(32) Когда прописано "Тема = СокрЛ(ИмяФайла);", в тему письма подставляется надпись "Печать", а файл PDF, вообще без имени отправляется!
Прикрепленные файлы:
34. АннаШ 107 26.11.18 08:26 Сейчас в теме
(33) А этого куска, что нет?
// смотрим - откуда вызвали диалог
	мНомер = "";	// для номера актов передачи-возврата оборудования
	Если (ПустоеЗначение(глОткрытыйДокумент) = 0) Тогда		// из печатной формы документа
		// формат печ. формы: для всех, кроме реализации (ТОРГ-12, акт) и счета-фактуры - альбомная ориентация (2)
		Если (Найти(ИмяТаблицы, "Реализация") > 0) Тогда
			СтрОриентация 	= 1;
			мЗаголовок		= "Реализация";
		ИначеЕсли (Найти(ИмяТаблицы, "фактура") > 0) Тогда
			СтрОриентация 	= 1;
			мЗаголовок		= "Счет-фактура";
		ИначеЕсли (Найти(ИмяТаблицы, "Заявка") > 0) Тогда
			СтрОриентация 	= 2;
			мЗаголовок		= "Заявка";
		ИначеЕсли (Найти(ИмяТаблицы, "Счет") > 0) Тогда
			СтрОриентация  	= 2;
			мЗаголовок 		= "Счет";
		ИначеЕсли (Найти(ИмяТаблицы, "Коммерческое") > 0) Тогда
			СтрОриентация  	= 2;
			мЗаголовок 		= "Коммерческое предложение";
		ИначеЕсли (Найти(ИмяТаблицы, "Наряд") > 0) Тогда
			СтрОриентация  	= 2;
			мЗаголовок 		= "Наряд на выполнение работ";
		ИначеЕсли (Найти(ИмяТаблицы, "Акт передачи оборудования") > 0) Тогда
			СтрОриентация 	= 2;
			мНомер			= "-П";
			мЗаголовок		= "Акт передачи оборудования";
		ИначеЕсли (Найти(ИмяТаблицы, "Акт возврата оборудования") > 0) Тогда
			СтрОриентация 	= 2;
			мНомер			= "-В";
			мЗаголовок		= "Акт возврата оборудования";
		КонецЕсли;
		
		ТекДок = глОткрытыйДокумент.ТекущийДокумент();	// открытый документ
		
		Контрагент	= ТекДок.Контрагент;
		Адрес	    = СокрЛП(Контрагент.ЭлПочта);
		
		// для заполнения темы письма
		мЗаголовок	= СокрЛП(мЗаголовок + " № " + СокрЛП(глНомерНаПечать(ТекДок) + мНомер) + " от " + Нрег(Формат(ТекДок.ДатаДок, "Д ДДММММГГГГ")));

		// имя файла
		ИмяФайла 	= СокрЛП(СтрЗаменить(мЗаголовок, "№ ", ""));
	
	ИначеЕсли (ПустоеЗначение(глОткрытаяФорма) = 0)	Тогда	// из отчета, обработки
		
		Если (Найти(ИмяТаблицы, "Акт сверки") > 0) Тогда		// из акта сверки
			мЗаголовок = "Акт сверки ";
			ИмяТаблицы = СокрЛП(ИмяТаблицы);
			
			ДлинаИмяКонтрагента = СтрДлина(ИмяТаблицы);
			ИмяКонтрагента 		= СокрЛП(Сред(ИмяТаблицы, 11, ДлинаИмяКонтрагента - 11));
			СпрКонтрагенты 		= СоздатьОбъект("Справочник.Контрагенты");
			СпрКонтрагенты.НайтиПоНаименованию(СокрЛП(ИмяКонтрагента), 0);
			ТекКонтрагент 		= СпрКонтрагенты.ТекущийЭлемент();
			Контрагент			= ТекКонтрагент;
			Адрес	    		= СокрЛП(ТекКонтрагент.ЭлПочта);
			
			// для заполнения темы письма
			мЗаголовок	= СокрЛП(мЗаголовок + СокрЛП(ТекКонтрагент));
			
			// имя файла
			ИмяФайла 	= мЗаголовок + ".";
			
			СтрОриентация = 2;
		КонецЕсли;
		
	Иначе
		Предупреждение("Открытая печатная форма не отправляется по электронной почте.");
		СтатусВозврата(0);
		Возврат;
		
	КонецЕсли;
Показать
35. user1089352 26.11.18 10:21 Сейчас в теме
(34) Нет! Нету! А этот кусок где вставлять? Я что-то совсем потерялся в этой абра-кадабре!)))
Вот, что выдает:
Если (ПустоеЗначение(глОткрытыйДокумент<<?>>) = 0) Тогда // из печатной формы документа
{Отчет.КаталогИБмыло.Форма.Модуль(237)}: Переменная не определена (глОткрытыйДокумент)
ТекДок = глОткрытыйДокумент<<?>>.ТекущийДокумент(); // открытый документ
{Отчет.КаталогИБмыло.Форма.Модуль(267)}: Переменная не определена (глОткрытыйДокумент)
мЗаголовок = СокрЛП(мЗаголовок + " № " + СокрЛП(глНомерНаПечать<<?>>(ТекДок) + мНомер) + " от " + Нрег(Формат(ТекДок.ДатаДок, "Д ДДММММГГГГ")));
{Отчет.КаталогИБмыло.Форма.Модуль(273)}: Функция не обнаружена (глНомерНаПечать)
ИначеЕсли (ПустоеЗначение(глОткрытаяФорма<<?>>) = 0) Тогда // из отчета, обработки
{Отчет.КаталогИБмыло.Форма.Модуль(278)}: Переменная не определена (глОткрытаяФорма)
Возврат<<?>>;
{Отчет.КаталогИБмыло.Форма.Модуль(304)}: Оператор Return (Возврат) не может употребляться вне процедуры или функции
37. user1089352 27.11.18 00:25 Сейчас в теме
(32)
2. Я не смогла добиться сохранения этих писем.


Как реализовать эту возможность в скрипте, я тоже не нашел способ.
Я поступил по другому.
Прописал так: Адрес = СокрЛП(ВыбКонтрагент.ЭлПочта) + "," + ("мой ящик@mail.ru");
В результате, письмо отправляется, "контрагенту" и "самому себе", попадая во входящие!
А в настройках почтового ящика, настроил фильтр!
1. Для папки "Отправленные", создал подпапку "Счета клиентам" (на данный момент, этот скрипт я использую только для отправки выставленных счетов.)
2. Фильтр содержит два условия:
Все "входящие", со следующими параметрами:
- Письма от: "мой ящик@mail.ru"
- Тема содержит: "Счет на оплату" (в скрипте, тему письма, я прописал "Счет на оплату")
Перенаправляются в подпапку "Счета клиентам"!

Ну!))) Из-за не умения писать скрипты, пришлось выкручиваться!)))))

"АннаШ", у меня к Вам просьба, помогите пожалуйста, все же настроить, чтобы "тема письма" и "имя файла.pdf", автоматически прописывались, "Счет № ???? от 00 месяца 201? г."!!???

(34) А этого куска, что нет?
Тот "кусок", про который Вы говорите, я так и не "догнал", как его правильно встроить в общий контекст??? Подскажите, если не сложно!
Прикрепленные файлы:
38. АннаШ 107 27.11.18 08:25 Сейчас в теме
(37) В ПриОткрытии:
ИмяФайла		= СокрЛП(Лев(ИмяТаблицы,Найти(ИмяТаблицы, " ")));

попробуйте заменить на
мЗаголовок	= СокрЛП(мЗаголовок + " № " + СокрЛП(глНомерНаПечать(ТекДок) + мНомер) + " от " + Нрег(Формат(ТекДок.ДатаДок, "Д ДДММММГГГГ")));

		// имя файла
		ИмяФайла 	= СокрЛП(СтрЗаменить(мЗаголовок, "№ ", ""));

мЗаголовок = ИмяТаблицы (имя печ. формы, задается в конфигураторе).
Ну, а ТекДок - это тек. док-т (из которого вызывана печ. форма).
Расширение - думаю, справитесь сами :)
29. user1089352 21.11.18 18:14 Сейчас в теме
(28) Я понимаю, что способ подменить поля, он кривой, и потом в шаблоне таблицы "торг12" придется правки делать. Может быть еще подскажите, как в "редакции 4.5", в "контрагентах" добавить поле для ввода e-mail? Если конечно это возможно?
13. Доня 274 04.08.17 02:41 Сейчас в теме
вылетает:
Конвертер.ЗаписатьВФайл(КаталогДляЗаписи);
{J:\1SBDB\BНЕШНИЕОТЧЕТЫ\ОТПРАВКА ИЗ 1С ПО EMAIL\ДИАЛОГОТПРАВКАНАМЫЛО.ERT(138)}: File open error

Я создала в ИБ просто Папку "КаталогДляЗаписи"
но ругается на это обработка

Опишите по-подробнее про каталог

>> прописать КаталогДляЗаписи (сохранение отправленных файлов).

как прописать ???
14. Доня 274 04.08.17 03:18 Сейчас в теме
Спасибо!
Все получилось в 1с7 Бухгалтерия
Очень удобно
Плюс
15. Доня 274 04.08.17 03:48 Сейчас в теме
Замечание:
При отправке формируется только в портрет
в ландшафт не переводит ни с кнопкой ни без кнопки
Почему ?
16. АннаШ 107 04.08.17 08:33 Сейчас в теме
(15) На форме переключатель "Ориентация" не срабатывает? То есть - в любом случае - портрет?
А в pdf сохраняет?
17. Доня 274 04.08.17 10:49 Сейчас в теме
кнопки перепутаны.
если ставить на портрет, то отсылается в pdf в альбомном, и наоборот
18. АннаШ 107 04.08.17 12:06 Сейчас в теме
(17) Вот эти строчки:
// ориентация печ. формы: для всех, кроме счета - 1 (альбомная)
	Если (СтрОриентация = 1) Тогда
		Конвертер.ВысотаСтраницы = 210*56.7;
		Конвертер.ШиринаСтраницы = 297*56.7;
	Иначе
		Конвертер.ВысотаСтраницы = 297*56.7;
		Конвертер.ШиринаСтраницы = 210*56.7;
	КонецЕсли;

отвечают за ориентацию.
19. Доня 274 04.08.17 12:32 Сейчас в теме
если поменять местами

// ориентация печ. формы: для всех, кроме счета - 1 (альбомная)
Если (СтрОриентация = 1) Тогда
Конвертер.ВысотаСтраницы = 297*56.7;
Конвертер.ШиринаСтраницы = 210*56.7 ;
Иначе
Конвертер.ВысотаСтраницы = 210*56.7 ;
Конвертер.ШиринаСтраницы = 297*56.7;
КонецЕсли; 


тогда все встает на свои места
портрет = портрет
ландшафт = ландшафт
20. АннаШ 107 04.08.17 12:36 Сейчас в теме
21. АннаШ 107 04.08.17 12:38 Сейчас в теме
22. АннаШ 107 21.11.17 08:27 Сейчас в теме
По поводу подписей и печати:
у меня формируется pdf - файл, в котором и подписи, и печати есть (используется bmp_1C). Получается (типа) скан, только без сканирования.
23. CheBurator 3392 22.11.17 02:10 Сейчас в теме
24. АннаШ 107 22.11.17 08:42 Сейчас в теме
(23) Бесплатная внешняя компонента
Прикрепленные файлы:
Bmp_1c.ocx
25. CheBurator 3392 22.11.17 17:28 Сейчас в теме
27. АннаШ 107 23.11.17 08:41 Сейчас в теме
(25) У меня она делает: логотип на печ. форме счета, подписи и печати на сканах печ. форм реализации.
26. lostlamer 22.11.17 17:46 Сейчас в теме
Полезная вещь ActiveX элемент управления bmp_1c.ocx- автор Морев Андрей - используется непосредственно для отображения картинок в таблице http://www.1cpp.ru/forum/YaBB.pl?num=1338556939/all

здесь код для 1CPP++ с использованием класса "ИзображенияДляТаблицы"
Печ = СоздатьОбъект("ИзображенияДляТаблицы");
Печ.ПодключитьТаблицу(Таблица);
Печ.ЕстьПроизвольноеСмещение = 1;
Печ.ЕстьПроизвольныйПоворот = 0;     
Печ.ДобавитьИзображение(2,5,70,50,"C:\Подпись.gif",2);
36. CheBurator 3392 26.11.18 15:55 Сейчас в теме
надо было мою разработку брать ;-)
у меня можно в тему письма подставлять имя прикрепляемого файла.
а прикрепляемый файл можно именовать автоматом на выбор:
- имя вводит пользователь
- имя генерится случайное типа Т-дата-время
- имя генерится из заголовка печатной формы

примерно вот такая форма настройки
https://www.screencast.com/t/yEGzoig0w
39. АннаШ 107 27.11.18 08:26 Сейчас в теме
(36) Уважаемый!
Вы слегка достали уже.
40. CheBurator 3392 27.11.18 15:48 Сейчас в теме
(39) Я пока вижу, что пока достан только клиент ;-)
Не нравятся чтобы писали в комменты - отключите возможность комментирования.
41. АннаШ 107 27.11.18 21:16 Сейчас в теме
(40) Зависть - плохое чувство :(
42. CheBurator 3392 28.11.18 00:37 Сейчас в теме
Оставьте свое сообщение