Код для кнопки "Отправить почтовым сообщением" любого табличного документа, используя механизмы УТ 11.2

23.01.17

Разработка - Механизмы типовых конфигураций

Это не автономный код процедуры отправки, это приписка к уже существующему механизму почтовых сообщений, реализованному в УТ 11.2, когда ваша учетная запись уже создана, и вам остается лишь "навесить" код на кнопку. Этот механизм может быть использован для любой управляемой формы, на которой также присутствует Табличный документ.

Для начала, нам необходимо установить имя реквизита формы "Результат" для Табличного документа (1), который мы хотим впоследствии отправить вложением по e-mail, а также создать на форме кнопку с командой "ОтправитьОтчет" (2). Далее, мы переходим в Модуль формы (3), и процедуру "ОтправитьОтчет(Команда)" заменяем целиком этим кодом:

&НаКлиенте
Процедура ОтправитьОтчет(Команда)
	
	//Здесь ведется проверка на заполненность табличного документа (должно быть больше 8 строк).
	//При желании меняем на необходимое значение, либо вообще убираем.
	Если Результат.ВысотаТаблицы < 8 Тогда
		Предупреждение("Сформируйте отчет!");
		Возврат;
	КонецЕсли;
	
	//Используется механизм оповещений, подсмотренный в открытых модулях УТ11.
	ОписаниеОповещения = Новый ОписаниеОповещения("ОтправитьПечатныеФормыПоПочтеНастройкаУчетнойЗаписиПредложена", ЭтотОбъект);
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда
		МодульРаботаСПочтовымиСообщениямиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСПочтовымиСообщениямиКлиент");
		МодульРаботаСПочтовымиСообщениямиКлиент.ПроверитьНаличиеУчетнойЗаписиДляОтправкиПочты(ОписаниеОповещения);
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ОтправитьПечатныеФормыПоПочтеНастройкаУчетнойЗаписиПредложена(УчетнаяЗаписьНастроена, ДополнительныеПараметры) Экспорт
	
	Если УчетнаяЗаписьНастроена <> Истина Тогда
		Возврат;
	КонецЕсли;
	
	//Не забудьте поменять тему письма!
	ТемаПисьма = "Сформированный отчет на "+Формат(Объект.НаДату,"ДЛФ=DD");
	
	ПараметрыОтправки = Новый Структура("Вложения,Получатель,Текст,Тема,УдалятьФайлыПослеОтправки");
	ПараметрыОтправки.Получатель = Новый Массив;
	ПараметрыОтправки.Вложения = Новый Массив;
	ПараметрыОтправки.Получатель.Добавить(Новый Структура("Адрес,ВидПочтовогоАдреса,ИсточникКонтактнойИнформации,ОбъектИсточник,Пояснение,Представление"));
	ПараметрыОтправки.Текст = "Во вложении сформированный табличный документ";
	ПараметрыОтправки.Тема = ТемаПисьма;
	ПараметрыОтправки.Вложения.Добавить(ПодготовитьТабличныйДокументДляОтправки(Результат,ТемаПисьма));
	ПараметрыОтправки.УдалятьФайлыПослеОтправки = Истина;
	
	МодульРаботаСПочтовымиСообщениямиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСПочтовымиСообщениямиКлиент");
	МодульРаботаСПочтовымиСообщениямиКлиент.СоздатьНовоеПисьмо(ПараметрыОтправки);
	
КонецПроцедуры

&НаСервере
Функция ПодготовитьТабличныйДокументДляОтправки(ТабДок,ИмяФайлаТД)
	
	Объект.ТаблицаДляОтправки = ТабДок;
	ТипФайлаТД = ТипФайлаТабличногоДокумента.XLSX;
	СсылкаФорматаТД = Перечисления.ФорматыСохраненияОтчетов.XLSX;
	КартинкаФайлаТД = БиблиотекаКартинок.ФорматExcel2007;
	РасширениеФайлаТД = "xlsx";    //использую EXCEL-формат файла для вложений.
	ИмяВременнойПапки = ПолучитьИмяВременногоФайла();
	СоздатьКаталог(ИмяВременнойПапки);
	ПолноеИмяФайла = УникальноеИмяФайла(
		ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ИмяВременнойПапки)+
		ИмяФайлаТД + "." + РасширениеФайлаТД);
	Объект.ТаблицаДляОтправки.Записать(ПолноеИмяФайла,ТипФайлаТД); 
	ДвоичныеДанные = Новый ДвоичныеДанные(ПолноеИмяФайла);
	ПутьВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, ЭтотОбъект.УникальныйИдентификатор);
	ОписаниеФайла = Новый Структура;
	ОписаниеФайла.Вставить("Представление", ИмяФайлаТД+"."+РасширениеФайлаТД);
	ОписаниеФайла.Вставить("АдресВоВременномХранилище", ПутьВоВременномХранилище);
	УдалитьФайлы(ИмяВременнойПапки);
	Возврат ОписаниеФайла;
	
КонецФункции

&НаКлиентеНаСервереБезКонтекста
Функция УникальноеИмяФайла(ИмяФайла)
	
	Файл = Новый Файл(ИмяФайла);
	ИмяБезРасширения = Файл.ИмяБезРасширения;
	Расширение = Файл.Расширение;
	Папка = Файл.Путь;
	
	Счетчик = 1;
	Пока Файл.Существует() Цикл
		Счетчик = Счетчик + 1;
		Файл = Новый Файл(Папка + ИмяБезРасширения + " (" + Счетчик + ")" + Расширение);
	КонецЦикла;
	
	Возврат Файл.ПолноеИмя;

КонецФункции

При копировании кода не забудьте поменять тему письма на свою!!

Примечательно, что некоторые функции, вызов которых находится глубоко в модулях, отвечающие за аутентификацию на почтовом сервере, разработчики УТ11 скрыли от любопытных глаз, но они нам и не особо нужны, так как рычаги запуска всего механизма я вам предоставил.

Отправить почту Управление торговлей 11 Табличный документ e-mail сообщение

См. также

Ценовая власть. Выносим из цикла схему СКД

Механизмы типовых конфигураций Ценообразование, анализ цен Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

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

1 стартмани

11.04.2024    481    tango    0    

3

Формула в реквизите. Приквелл к сериалу "Ценовая власть"

Механизмы типовых конфигураций Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

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

10 стартмани

11.04.2024    370    tango    5    

3

Ценовая власть. Второй сезон

Механизмы типовых конфигураций Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Бесплатно (free)

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

08.04.2024    569    tango    0    

2

Ценовая власть (УТ 11.5) - 2

Механизмы типовых конфигураций Платформа 1С v8.3 1С:Управление торговлей 11 Бесплатно (free)

В прошлый раз специальной обработкой мы выбрали объекты УТ 1.5, группируя по подсистемам. Оказалось, что состав подсистем не вполне корректно отображает функциональную структуру, но зато мы нашли процедуру, которая, вроде бы, должна содержать в себе всё, что нас интересует. Обновление цен должно ведь следовать выбранной стратегии ценообразования, верно? Иначе что она обновляет...

06.04.2024    442    tango    1    

1

Ценовая власть или Управление ценообразованием (УТ 11.5)

Ценообразование, анализ цен Механизмы типовых конфигураций Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Абонемент ($m)

Ценовая власть - это способность (возможность) компании изменять в некоторых пределах отпускную цену своего товара (услуг, продукции). Чем в более широких пределах вы можете играть в цену продажи, тем больше этой власти у вас. Если вы не можете управлять отпускной ценой, то это или не ваш бизнес, или не бизнес вовсе. Здесь в рубрике "База знаний аналитика и руководителя проекта" слово проект не ограничено "проектом в 1С". Посмотрим, что для этого есть в УТ 11.5.

1 стартмани

05.04.2024    523    tango    12    

2

Расширяем возможности дополнительных обработок и настраиваем их отладку

БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

07.02.2024    2578    YA_418728146    11    

42

Регистры накопления в 1С:КА2 и 1С:ERP для расчета НДФЛ, страховых взносов и взаиморасчетов с сотрудниками на январь 2024 года. Краткое описание

Зарплата Механизмы типовых конфигураций Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет НДФЛ Абонемент ($m)

Для расчета зарплаты и соответствующих налогов в конфигурациях 1С:КА2 и 1С:ERP используется 22 регистра накопления, 7 регистров сведений, 1 регистр расчета и бухгалтерские проводки. В таблице приведены названия этих регистров, указаны основные регистраторы и виды движений приход/расход. В описании приводится краткое функциональное назначение регистров в основных зарплатных процессах. Описание регистров родилось из черновиков при написании различных отчетов и обработок при эксплуатации 1С-овских конфигураций и исправлении ошибок по НДФЛ, взаиморасчетов с сотрудниками и прочих. Информация не претендует на полноценное описание работы регистров, скорее это дискуссионный материал. Но, возможно, кому-то пригодится и сократит время при подготовке отчетности за непростой (в плане учета зарплаты) 2023 год. А возможно, кто-то поделится своим опытом.

1 стартмани

10.01.2024    1126    8    2ncom    3    

8

Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 1С:Бухгалтерия 3.0 Бесплатно (free)

Используются для создания новых объектов в конфигурации, чтобы не забыть, что нужно сделать. Сделано на примере 1С:Бухгалтерия предприятия, в других конфигурациях могут быть другие, а могут быть и похожие объекты.

28.12.2023    4953    mrXoxot    11    

100
Внимание! Тема сдана в архив