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

Публикация № 1781115 23.12.22

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

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

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

Стояла задача сделать отправку по кнопке из формы документа "Заявка покупателя" сформированного документа в формате 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.

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

Наименование Файл Версия Размер
Отправка счет-договора по email 1с 7.7 ТиС с помощью Python:

.zip 1,29Kb
0
.zip 1.0 1,29Kb Скачать

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

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


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

См. также

Отправляем почтой печатную форму любого документа (в формате xls)

Печатные формы Email рассылки Платформа 1С v7.7 1С:Торговля и склад 7.7 Россия Абонемент ($m)

Обработка позволяет отправлять почтой печатную форму любого документа (в формате xls).

1 стартмани

01.11.2022    1338    2    Sancha    4    

1

Отправка счетов из 1С ТиС по e-mail через SSL

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

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

1 стартмани

19.01.2021    3845    12    ukhin    0    

3

Групповая рассылка прайсов и уведомлений для 7.7

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

Обработка для групповой рассылки писем. Разрабатывалась для отправки прайсов.

1 стартмани

17.07.2019    8620    8    orexov    0    

1

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

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

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

1 стартмани

28.07.2017    19154    20    АннаШ    44    

2

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Обработка отправки документов по почте напрямую из 1С7.7 в файле EXCEL

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

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

1 стартмани

16.11.2014    38084    100    etmarket    20    

6

Рассылка ошибок из журнала регистрации 1С 7.7 на электронную почту

Журнал регистрации Email рассылки Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Очень полезно узнавать об ошибках при работе 1С раньше, чем пользователи придут жаловаться на проблемы. Если они вообще придут, а не будут молча ругать "глючную 1С".

1 стартмани

26.03.2014    18320    16    vcv    2    

5

Умный заказ ТМЦ для ТиС 9.2 с отправкой по электронной почте

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

Удобное средство для менеджера по закупкам, для определения объема заказа товара на основании продаж за предыдущий период, с отправкой заказа по e-mail (например поставщику) прямо из 1С. Возможность ручной корректировки, расчет общего тоннажа заказа, а также возможность одновременной выгрузки заказа для автоматической загрузки в учетную систему получателя (поставщика) делают его незаменимым помощником в оперативном учете.

1 стартмани

26.09.2012    16621    55    Qbik    11    

5

Отправка электронного письма в ККМ Frontol

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

Обработка облегчает процесс отправки электронного письма на ККМ Frontol.

1 стартмани

03.12.2011    28080    20    BorisBelov    3    

3

Отправка счетов из 1С ТиС в графическом и PDF форматах

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

Обработка создана, для решения задачи пользователей 1С - отправка выставленных Счетов Контрагентам. Заменяет операции: - Распечатать; - Поставить подписи и печать; - Отправить; - и т.д. Не требует изменения конфигурации, устанавливается как внешняя печатная форма.

1 стартмани

28.04.2011    31672    526    dbolotin    21    

46

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Отправка расчетных листков по Почте

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

Отправка расчетных листков из 1С ЗиК 7.7 посредством SMTP

1 стартмани

10.11.2010    18129    130    Lionarus    8    

12

Обработка для отправки по почте печатных форм в графическом формате для 1С 7.7

Email рассылки Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Позволяет преобразовать открытую таблицу в графический формат и отправить полученную картинку по почте.

1 стартмани

21.07.2009    20056    296    ACE$    25    

23

Обработка "Отправка счетов из "1С Бухгалтерия 7.7" в графическом формате"

Печатные формы Разработка внешних компонент СRM Email рассылки Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Россия Бухгалтерский учет Абонемент ($m)

Обработка создана для решения ежедневно повторяющейся задачи пользователей 1С - отправка выставленных счетов контрагентам. Заменяет операции: - Распечатать; - Поставить подписи и печать; - Отправить; - и т.д. Не требует изменения конфигурации, устанавливается как внешняя печатная форма, ведется справочник адресов эл. почты контрагентов.

1 стартмани

07.01.2009    25497    423    beer    13    

31

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

СПАРК помогает предотвратить мошенничество со стороны компаний и предпринимателей, благодаря актуальным сведениям о компаниях и системе выявления факторов риска.Сервис позволяет управлять налоговыми рисками и комплексно оценивать благонадежность контрагентов.

Обработка "Отправка счетов из 1С ТиС в графическом формате"

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

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

1 стартмани

06.01.2009    27005    416    beer    37    

27