Имя: Пароль:
1C
 
Отправить счет программно
☑
0 Alex7771
 
05.11.26
✎
08:47
Конфа 1С БП 30
не подскажите, как отправить счет программно из 1с
т.е. есть ссылка на счет, например Док.Ссылка

письмо создаю ...
Письмо = Новый  ИнтернетПочтовоеСообщение;
...
    
а вот как туда добавить сам файлик пдфный например печатной формы... ???

Письмо.Вложения.Добавить(????????
1 arsik
 
гуру
05.11.26
✎
08:54
В любой стандартной конфигурации на БСП есть отправка печатной формы почтой. Посмотри как делается и сделай так же.
2 yurikmellon2
 
05.11.26
✎
10:04
Функция ПослатьПоПочте(Знач Адрессаты,ТемаСообщения = "",СообщениеТекст = "" ,СписокВложений = "")Экспорт
	
	Профиль = Новый ИнтернетПочтовыйПрофиль;   
	Профиль.Пользователь 		 = "";
	Профиль.Пароль 				 = "";   
	Профиль.АутентификацияSMTP   = СпособSMTPАутентификации.Login;
	Профиль.АдресСервераSMTP 	 = ""; 
	Профиль.ПарольSMTP 			 = ""; 
	Профиль.ПользовательSMTP	 = ""; 
	Профиль.ПортSMTP			 = 587;
	
	ТекстСообщения	 = ?(СообщениеТекст="","",СообщениеТекст);
	
	Почта = Новый ИнтернетПочта; 
	Попытка
		Почта.Подключиться(Профиль);
	Исключение
		Сообщить(ОписаниеОшибки());
		Возврат Ложь;
	КонецПопытки;
	
	Сообщение = Новый ИнтернетПочтовоеСообщение;
	Сообщение.Отправитель = "messages@pochta.ru";
	Сообщение.Получатели.Добавить(Адрессаты);
	Сообщение.Тема = ?(ТемаСообщения="","Тут тема", ТемаСообщения);
	Сообщение.Тексты.Добавить(ТекстСообщения,ТипТекстаПочтовогоСообщения.HTML);
	
	Если ТипЗнч(СписокВложений) = Тип("Строка") И Не СписокВложений = "" Тогда
		Попытка
			Сообщение.Вложения.Добавить(СписокВложений);
		Исключение
		КонецПопытки;
	ИначеЕсли ТипЗнч(СписокВложений) = Тип("СписокЗначений") Тогда
		Для каждого ПутьКВложению Из СписокВложений Цикл
			Попытка
				Сообщение.Вложения.Добавить(ПутьКВложению.Значение);
			Исключение
			КонецПопытки;
		КонецЦикла;
	КонецЕсли;
	
	Попытка
		Почта.Послать(Сообщение);
	Исключение
		Сообщить(ОписаниеОшибки());
		Почта.Отключиться();	
		Возврат Ложь;
	КонецПопытки;
	Почта.Отключиться();	
	
КонецФункции
3 yurikmellon2
 
05.11.26
✎
09:17
блин, я забыл какой тег используется для выделения кода. Вроде <1c></1c>, но что то не работает
4 Мультук
 
гуру
05.11.26
✎
09:19
(1)

Кому сейчас нужны эти удочки...

P.S.
Увы
5 Волшебник
 
05.11.26
✎
09:49
(3) тег PRE из правой панели оформления
6 yurikmellon2
 
05.11.26
✎
10:04
(5) 👍
7 Alex7771
 
05.11.26
✎
11:23
(2) спс, больше интересовало как сам пдфник с печатной формой  по док.Ссылка сформировать программно  ( и в список вложений к примеру из кода поместить ) , база SQL
8 yurikmellon2
 
05.11.26
✎
11:44
(7) так стандартно, формируешь свою печатку в табличный документ, кладёшь в темп и отправляешь
    
   ТабДок      = Новый ТабличныйДокумент;

	ИмяФайла = КаталогВременныхФайлов() + "ИмяФайла") + ".pdf";
	
	ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.pdf);
	
	Попытка
		ПослатьПоПочте(Адрес, Тема, Текст, ИмяФайла);
	Исключение
		Сообщить("Ошибка при отправке почты: " + ОписаниеОшибки());
	КонецПопытки;
9 Alex7771
 
05.11.26
✎
11:55
(8) а на SQL  каталог временных файлов сработает ?

не так надо ?

Поток = Новый ПотокВПамяти;
ТабДок.Записать(Поток,ТипФайлаТабличногоДокумента.PDF);
ДД = Поток.ЗакрытьИПолучитьДвоичныеДанные();
Письмо.Вложения.Добавить(ДД,"Счет.pdf");
10 yurikmellon2
 
05.11.26
✎
13:05
(9)
а на SQL  каталог временных файлов сработает ?

сработает, каталог сервера используется если регламентом запускать

Через поток само собой рабочий вариант
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.