Код для кнопки "Отправить почтовым сообщением" любого табличного документа, используя механизмы УТ 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 сообщение

См. также

Распределение по базе среднего в ЗИКГУ 3.1

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

Результат расчета начислений (отпуск, БЛ и т.д.) может распределятся по базе среднего заработка. У таких начислений на вкладке "Налоги, взносы, бухучет" стоит галка "По базе среднего заработка". Но бывают случаи, что данное распределение необходимо скорректировать.

1 стартмани

14.09.2023    193    1    Vlx    0    

1

Расширение типового механизма настройки заполнения бухгалтерской отчетности (на примере конфигурации 1С:ERP. Управление холдингом 3.1.8.15)

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

В статье приведен алгоритм доработок типового механизма настройки заполнения бухгалтерской отчетности на примере конфигурации 1С:ERP. Управление холдингом (3.1.8.15). Цель доработок - сделать процесс настроек более гибким и удобным для пользователей

11.09.2023    905    ICL-Soft    3    

9

Разбор механизма "Настройки полей формы" в 1С:ERP. Управление холдингом

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

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

18.07.2023    1399    it_box    0    

6

Работа с контактной информацией. Часть 2

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

Во второй части статьи рассмотрим вопрос преобразования адреса из старого формата в новый. Рассмотрим реальные задачи, связанные с контактной информацией.

05.06.2023    2638    biimmap    4    

35

Особенности настройки хранения файлов в томах в конфигурации 1С:Документооборот 3.0

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

В данной статье мы рассмотрим, как настроить хранение файлов в томах, тома хранения файлов в 1С, правила размещения файлов в томах и проверку целостности данных тома в 1С:ДО.

30.05.2023    2997    Koder_Line    1    

5

Работа с контактной информацией. Часть 1

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

Уверен, все в курсе, что контактная информация опять во всех конфигурациях хранится по-новому. Связано это с появлением так называемых муниципальных адресов, где районы заменили городские округа. Сейчас происходит массовый отказ от УПП и других устаревших решений, а также массовый переход с зарубежных систем. Возникает потребность преобразовать старые адреса в новые. И тут нас всех ждёт масса неприятных сюрпризов от разработчиков БСП. О программном интерфейсе контактной информации и пойдёт речь в данной статье.

23.05.2023    5586    biimmap    41    

56

Пример использования механизма "Блокировки изменения объектов" (БП, ЗУП, УХ, ЕРП)

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

Механизм позволяет добавлять обработчики блокировки формы от изменения пользователем с выводом предупреждения "Документ не редактируется по причине:" и указанием причин блокировки. Также по некоторому условию может быть выведена кнопка "Разблокировать форму".

1 стартмани

18.05.2023    4207    9    FilippSerg    1    

27

Обычное приложение. Обращение к функциям и процедурам в модуле внешней обработки

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

Обычное приложение. Обращение к функциям и процедурам в модуле внешней обработки по аналогии с обращением к общими модулям. Можно поставить на форму или модуль объекта в составе конфигурации в тех случаях , когда , например, порядок расчета некоторых данных может быть изменен, а пользователей из программы выгонять не хочется.

05.04.2023    725    daa147    1    

4
Оставьте свое сообщение