Отправка счет-договора по email 1С 7.7 ТиС с помощью Python

01.03.24

Интеграция - Email рассылки

Данный код позволяет отправлять письма с вложениями (pdf счет договор) на email клиентов. Скрипт написан на Python.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки для того, чтобы самостоятельно ее доработать для вашей базы данных. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в вашей базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке Купить один файл
Отправка счет-договора по email 1с 7.7 ТиС с помощью Python:
.zip 1,29Kb
2
2
1 SM
Скачать Купить за 1 850 руб.

Стояла задача сделать отправку по кнопке из формы документа "Заявка покупателя" сформированного документа в формате pdf. Я немного помучался с отправкой email в 1с 7.7, не получалось удачно отправить письмо. Поэтому решил сделать это на самой хайповом языке в мире - петухоне Python! Ну а как же, мы тоже хотим быть модными молодежными и стильными, держать в правой руке банку ягуара смузи, а левой говнокодить кодить data science без знания матстатистики!!! 

Ладно, приступим к делу!

По кнопке из "ЗаявкиПокупателя" отправлять по email в формате pdf под

1) Добавляем нужные реквизиты на форму контрагента

 

 

2) На форму документа "ЗаявкаПокупателя" добавляем кнопку "Отправить Email".

 

 

3) Ниже приведен пример кода обработки нажатия на кнопку "Отправить Email".


Функция json(Объект, Тип = "",СклеиваниеТаблиц=0)
	СклеиваниеТаблиц = 1;
	Если Тип = "" тогда
		Тип = ТипЗначенияСтр(Объект); 
	КонецЕсли;	
	Если  Тип = "ТаблицаЗначений" тогда  
		Сообщить("json type = таблица значений");
		Количество = Объект.КоличествоСтрок();  
		JsonResult = "";
		JsonResult = ?(СклеиваниеТаблиц=1,"","[");
		Для н = 1 ПО Количество Цикл    
			Объект.ПолучитьСтрокуПоНомеру(н);
			JsonResult = JsonResult + json(Объект, "СтрокаТаблицыЗначений") + ?(н < Количество , ", ", "");
			Сообщить("JsonResult="+Строка(JsonResult));
		КонецЦикла;
		JsonResult = JsonResult + ?(СклеиваниеТаблиц=1,"","]"); 
		Возврат JsonResult;    
	ИначеЕсли Тип = "СтрокаТаблицыЗначений" Тогда
		JsonResult = "{";
		Количество = Объект.КоличествоКолонок();
		Для н = 1 ПО Количество  Цикл      
			Ключ = Объект.ПолучитьПараметрыКолонки(н);     
			Значение =  Объект.ПолучитьЗначение(Объект.НомерСтроки, н);      
			JsonResult = JsonResult + json(Ключ) + ": " + json(Значение) + ?(н < Количество , ", ", "");    
		КонецЦикла;
		JsonResult = JsonResult + "}"; 
		Возврат JsonResult;
	ИначеЕсли Тип = "Строка" Тогда 
		Если  СтрДлина(Объект) = 9 тогда
	    	JsonResult = Объект;
		иначе
			JsonResult = СокрЛП(Объект);
		КонецЕсли;
		JsonResult = СтрЗаменить(JsonResult, "\",          "\\");
		JsonResult = СтрЗаменить(JsonResult, "/",          "\/");
		JsonResult = СтрЗаменить(JsonResult, """",         "\""");
		JsonResult = СтрЗаменить(JsonResult, Симв(13),   "\r");       
		JsonResult = СтрЗаменить(JsonResult, Симв(9),  "\t");         
		JsonResult = СтрЗаменить(JsonResult, Симв(10),   "\n");         
		Возврат """" + JsonResult + """";
	ИначеЕсли Тип = "Число" Тогда 
		Если  Объект = Цел(Объект) тогда
			Возврат Формат(Объект, "Ч015"); 
		иначе
			Возврат Формат(Объект, "Ч015.2");
		КонецЕсли;
	ИначеЕсли Тип = "Дата" Тогда  
	    ДатаВремя= СтрокаДаты(ДатаГод(Объект))+"-"+СтрокаДаты(ДатаМесяц(Объект))+"-"+СтрокаДаты(ДатаЧисло(Объект))+"T00:00:00"; 
		Возврат json(ДатаВремя);      
	Иначе 
		Возврат json(Строка(Объект));
	КонецЕсли;     
КонецФункции   

Функция СоздатьИВернутьТаблицуСНужнымиКолонками()
	ИсходныеДанные = СоздатьОбъект("ТаблицаЗначений");   
	ИсходныеДанные.InsertColumn("send_to","Строка",100);   
	ИсходныеДанные.InsertColumn("subject","Строка",100); 
	ИсходныеДанные.InsertColumn("text","Строка",100); 
	ИсходныеДанные.InsertColumn("attachment","Строка",200); 
	Возврат ИсходныеДанные;
КонецФункции

Функция СтрокаДаты(ЧислоДаты)         
	Если  ЧислоДаты > 9 тогда
		возврат Строка(ЧислоДаты);	
	иначе
		возврат "0"+Строка(ЧислоДаты);		
	КонецЕсли;	
КонецФункции    

Функция Получить_ПутьКФайлу_СчетДоговор()
		      
	СразуНаПринтер = 0;
	КолЭкз = 1;
	
	Параметры = СоздатьОбъект("СписокЗначений");
	Параметры.ДобавитьЗначение(глВзятьКонтекст(Контекст), "Контекст");
	Параметры.ДобавитьЗначение(СразуНаПринтер, "Устройство");
	Параметры.ДобавитьЗначение(КолЭкз, "КоличествоКопий");
	Параметры.ДобавитьЗначение(СПодписьюИПечатью, "СПодписьюИПечатью");
	Параметры.ДобавитьЗначение(1, "СохранитьВФайл");  
	Параметры.ДобавитьЗначение(СчетИзмененный, "СчетИзмененный"); 
	Параметры.ДобавитьЗначение(СохранитьВPDF, "pdf");

	ОткрытьФорму("Обработка", Параметры, КаталогИБ() + "\ExtForms\PrnForms\zayavka_schet_dogovor.ert");
	
	Если СохранитьВPDF=0 Тогда 
		Возврат "E:\1C Bases\1CByx\send_email\schet_dogovor.xls"; 
	Иначе
		Возврат "E:\1C Bases\1CByx\send_email\schet_dogovor.pdf"; 
	КонецЕсли;
	
КонецФункции


Процедура ОтправитьEmail()  
	       
	ПутьКФайлу_СчетДоговор = Получить_ПутьКФайлу_СчетДоговор();
	ПутьКФайлу_СчетДоговор = СтрЗаменить(ПутьКФайлу_СчетДоговор,"\\","/");    
	ПутьКФайлу_СчетДоговор = СтрЗаменить(ПутьКФайлу_СчетДоговор,"\","/");    
	
	ТекстПисьма = СокрЛП(Комментарий);
	ТекстПисьма = СтрЗаменить(ТекстПисьма, РазделительСтрок, "\n");   
	
	Если СчетИзмененный = 0 Тогда 
		ТемаПисьма = "Счет от ООО 'Ромашка'";
	Иначе
		ТемаПисьма = "Счет от ООО 'Ромашка' измененный";
	КонецЕсли;
              	
	ТЗ = СоздатьИВернутьТаблицуСНужнымиКолонками();
	             
	send_to = "";  
	ЭлементДобавлен = 0;
	Если Контрагент.ЭлПочтаВыбор = 1 Тогда
		send_to = send_to+СокрЛП(Контрагент.ЭлПочта);
		ЭлементДобавлен = 1;
	КонецЕсли;
	Если Контрагент.ЭлПочта1Выбор = 1 Тогда  
		Если ЭлементДобавлен = 1 Тогда 
			send_to = send_to+", ";		
		КонецЕсли;
		send_to = send_to+Контрагент.ЭлПочта1;	
	КонецЕсли;
	Если Контрагент.ЭлПочта2Выбор = 1 Тогда  
		Если ЭлементДобавлен = 1 Тогда 
			send_to = send_to+", ";		
		КонецЕсли;
		send_to = send_to+Контрагент.ЭлПочта2;	
	КонецЕсли;
	
	json_text = "{
	|"+""""+"send_to"+""""+": "+""""+СокрЛП(send_to)+""""+",
	|"+""""+"subject"+""""+": "+""""+СокрЛП(ТемаПисьма)+""""+",
	|"+""""+"text"+""""+": "+""""+СокрЛП(ТекстПисьма)+""""+",
	|"+""""+"attachment"+""""+": "+""""+СокрЛП(ПутьКФайлу_СчетДоговор)+""""+"
	|}";

	Текст = СоздатьОбъект("Текст");
	Текст.КодоваяСтраница(0);
	Текст.ДобавитьСтроку(json_text);
	Текст.Записать("E:\1C Bases\1CByx\send_email\data_send_email.json");
                      
	ЗапуститьПриложение("E:\1C Bases\1CByx\send_email\run_script.bat");	
	     
	Сообщить("Отправлен счет-договор на email '"+send_to+"'");           
	
КонецПроцедуры   

Собственно, во вложении находятся файлы с говонокодом кодом на самом хайповом языке вселенной Python, с помощью которого и происходит отправка писем на почтовые ящики клиентов с вложениями pdf, считывая данные ищ json, который мы сформировали в 1с 7.7 !

*протестировано и работает на конфигурации 1с 7.7 ТиС 7.70.935 на платформе 7.70.020.

python модно стильно молодежно дата саенс data science зп 300 к в наносекунду питон 7.7 тис email отправка

См. также

Email рассылки Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 Конфигурации 1cv7 Россия Платные (руб)

(Скачать и использовать можно бесплатно, т.е. ДАРОМ) Предлагается УНИВЕРСАЛЬНОЕ решение, позволяющее ВООБЩЕ БЕЗ ИЗМЕНЕНИЯ КОДА КОНФИГУРАЦИИ отправлять ЛЮБУЮ ПЕЧАТНУЮ ФОРМУ в 3 клика мышью! Бухгалтера работают, программисты - отдыхают... Версия 1.4 (от 18.11.2008) - новые возможности, новые вкусности. ТОРГ12, СЧФ и СЧЕТ - одним движением мыши на почту? Да! И Вам - сюда, берем эту обработку! Скачать обработку - бесплатно!

2800 руб.

02.07.2006    59490    3    123    

159

Email рассылки Управление взаимоотношениями с клиентами (CRM) Пользователь Платформа 1С v7.7 Конфигурации 1cv7 Россия Платные (руб)

1600 пользователей - не могут ошибаться! Отсылка писем из среды 1С без использования почтовых агентов и без использования внешних компонент. Не требуется никаких изменений в конфигурации - взял, и пользуйся. Возможно ведение списка адресатов, ведение набора стандартных тем для писем и ведение стандартных текстов писем; поддерживается присоединение файлов к письму и их архивирование.

2400 руб.

08.06.2006    75337    67    241    

414

Email рассылки Оперативный учет 7.7 1С:Торговля и склад 7.7 Россия Абонемент ($m)

Оперативная отправка печатной формы документа 1С в графическом или PDF формате по E-mail в том числе с использованием SSL.

1 стартмани

19.01.2021    4628    15    ukhin    0    

3

Email рассылки Бухгалтер Руководитель проекта Оперативный учет 7.7 1С:Торговля и склад 7.7 Россия Абонемент ($m)

Отправка печатных документов, отчетов и пр. форм по e-mail.

1 стартмани

28.07.2017    20215    20    АннаШ    44    

2

Загрузка и выгрузка в Excel Email рассылки Документооборот и делопроизводство (СЭД) Бухгалтер Пользователь Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Данная внешняя обработка предоставляет функционал для быстрой выгрузки документа в файл Excel и отправки электронного письма с вложенным документом напрямую из интерфейса 1С Предприятие 7.7.

1 стартмани

16.11.2014    39804    101    etmarket    20    

7
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. morin 58 23.12.22 15:03 Сейчас в теме
Спасибо. Хайповый питон + хипстерская семерка это замечательно.
2. vakham 21 26.12.22 08:50 Сейчас в теме
Дикий зверъ Ничёси нервно курит в сторонке.
3. check2 367 07.01.23 01:08 Сейчас в теме
Слабо на Бух 6.0 написать отправку писем? ;) Я фигею... динозавры ещё живы...
4. Drfreeman 136 20.01.23 21:09 Сейчас в теме
(3)
писем? ;) Я фигею... динозавры ещё ж


честно с бух 6.0 не работал даже))) динозавры это компании которые до сих пор на 7-ке работают)) а уж им и приходится помогать.
5. check2 367 20.01.23 21:16 Сейчас в теме
(4) Увы, и ах... Я сам сотрудник франча 1С... И упр зарплату у нас до сих пор щитают в ЗУП 7.7. Сапожники без сапог...
Оставьте свое сообщение