|
УТ 10.3 Отправка печатной формы документа по электронной почте | ☑ | ||
---|---|---|---|---|
0
immurz
14.05.16
✎
11:31
|
Конкретно, печатная форма заказа покупателя. Задача - подставлять автоматом почту контрагента. Откапал функцию которая отевечает за заполнение. Это -ОбщиеМодули.УправлениеЭлектроннойПочтой.НаписатьПисьмо()
В начале функции ... Перем СписокФайловВложений; Перем ГруппаУчетнойЗаписи; Перем Кому; Перем Копии; ... И далее ... СтруктураНовогоПисьма.Свойство("Кому", Кому); Если ТипЗнч(Кому) = Тип("СписокЗначений") Тогда Для каждого ЭлементСписка Из Кому Цикл Если ПустаяСтрока(ЭлементСписка.Значение) Тогда Продолжить; КонецЕсли; СтрокаТЧ = Письмо.КомуТЧ.Добавить(); СтрокаТЧ.АдресЭлектроннойПочты = ЭлементСписка.Значение; СтрокаТЧ.Представление = ЭлементСписка.Представление; Если НЕ ПустаяСтрока(Письмо.Кому) Тогда Письмо.Кому = Письмо.Кому + ", "; КонецЕсли; Если ПустаяСтрока(ЭлементСписка.Представление) Тогда Письмо.Кому = Письмо.Кому + ЭлементСписка.Значение; Иначе Письмо.Кому = Письмо.Кому + ЭлементСписка.Представление + " <" + ЭлементСписка.Значение + ">"; КонецЕсли; КонецЦикла; КонецЕсли; ... Как я понял, можно определить глобальную переменную Кому. Но не в модуле формы, не в модуле объекта документа определение переменной не помогло. Есть какие нибудь идеи? |
|||
1
Lexey_
14.05.16
✎
11:34
|
(0) в структуре СтруктураНовогоПисьма передавай
|
|||
2
immurz
14.05.16
✎
11:49
|
(1) Это вызывается из ОбщиеФормы.НастройкаОтправкиОтчета.ОсновныеДействияФормыОК
СтруктураСозданногоПисьма = УправлениеЭлектроннойПочтой.НаписатьПисьмо(глЗначениеПеременной("глТекущийПользователь"), СтруктураНовогоПисьма,,,,,, Истина, Ложь); ЭтаФорма.Закрыть(); Если ТипЗнч(СтруктураСозданногоПисьма) = Тип("Структура") Тогда СтруктураСозданногоПисьма.Форма.Открыть(); КонецЕсли; Так что ничего не могу передать. |
|||
3
Lexey_
14.05.16
✎
11:52
|
(2) не вижу связи между "Это вызывается из ОбщиеФормы..." и "Так что ничего не могу передать."
|
|||
4
immurz
14.05.16
✎
11:55
|
Потому что у меня там нет данных о контрагенте.
|
|||
5
immurz
14.05.16
✎
11:58
|
(3) Тем более
СтруктураНовогоПисьма.Свойство("Кому", Кому); Т.е. в функции формирования письма все равно перезаписывается значение. |
|||
6
Lexey_
14.05.16
✎
11:59
|
(4) ну передавай или вызывай из другого места, придумай что-нибудь
|
|||
7
RomanYS
14.05.16
✎
11:59
|
(5) читается, а не перезаписывается
|
|||
8
Lexey_
14.05.16
✎
11:59
|
(5) чейта оно перезаписывается?
|
|||
9
immurz
14.05.16
✎
12:05
|
(7) (8) Перепутал.
(6) Ну так я и пытаюсь через глобальную переменную передать. Не просто так они там в начале функции. Но что то никак. |
|||
10
Lexey_
14.05.16
✎
12:06
|
(9) кто тебе сказал, что они глобальные?
|
|||
11
RomanYS
14.05.16
✎
12:07
|
(9) они там чтобы можно было в них читать как в (5), они не глобальные
|
|||
12
ДенисЧ
14.05.16
✎
12:07
|
(9) не используй глобальные переменные
|
|||
13
immurz
14.05.16
✎
12:15
|
(10) (11) Плохо.
(12) А что ж мне использовать? |
|||
14
Lexey_
14.05.16
✎
12:16
|
(13) используй (1)
|
|||
15
immurz
14.05.16
✎
12:20
|
(14) У меня нет данных об отправителе там, где она определяется.
|
|||
16
RomanYS
14.05.16
✎
12:22
|
(15) в общей форме печати?
|
|||
17
immurz
14.05.16
✎
12:31
|
(16) ОбщиеФормы.НастройкаОтправкиОтчета.ОсновныеДействияФормыОК
Процедура ОсновныеДействияФормыOK(Кнопка) СохранитьЗначения(); СтруктураНовогоПисьма = Новый Структура; ... Сначала форма выбора печатных форм, потом настройка отправки отчета, потом только заполнение письма и открытие формы письма. |
|||
18
RomanYS
14.05.16
✎
12:33
|
(17) ну и передавай по всей цепочке своего контрагента, в чём проблема?
|
|||
19
immurz
14.05.16
✎
12:38
|
(18) Проблема в том, что это анонизм через общие функции (в которых это нафиг не надо использовать) все прогонять. Я думаю есть какой то более оптимальный вариант.
|
|||
20
immurz
14.05.16
✎
13:48
|
В общем ладно. Анонизм так анонизм. Если кому надо -
ОбщиеФормы.ПечатьДокументов КоманднаяПанельФормыОтправитьПоПочте(Кнопка) меняем на Процедура КоманднаяПанельФормыОтправитьПоПочте(Кнопка) УправлениеОтчетами.ОтправитьДокументПоЭлектроннойПочте(ЭлементыФормы.ПолеТабличногоДокумента, Заголовок,ЭтаФорма.ОбъектПечати); КонецПроцедуры ////////////////////////////// ////////////////////////////// В ОбщиеМодули.УправлениеОтчетами ОтправитьДокументПоЭлектроннойПочте меняем на Процедура ОтправитьДокументПоЭлектроннойПочте(Документ, ИмяФайлаВложения = "",ОбъектПечати = Неопределено) Экспорт Если НЕ Константы.ИспользованиеВстроенногоПочтовогоКлиента.Получить() Тогда ОбщегоНазначения.СообщитьОбОшибке("Отправлять документы по электронной почте можно только из встроенного почтового клиента. |В настоящее время в настройках параметров учета установлено использование основного почтового клиента операционной системы."); Предупреждение("Операция не выполнена"); Возврат; КонецЕсли; ФормаОтправкиДокумента = ПолучитьОбщуюФорму("НастройкаОтправкиОтчета"); ФормаОтправкиДокумента.ОбъектПечати = ОбъектПечати; ФормаОтправкиДокумента.Отчет = Документ; ФормаОтправкиДокумента.ИмяФайлаВложения = СтрЗаменить(ИмяФайлаВложения, ".", " "); ФормаОтправкиДокумента.ТемаСообщения = ИмяФайлаВложения; ФормаОтправкиДокумента.ОткрытьМодально(); КонецПроцедуры ////////////////////////////// ////////////////////////////// В ОбщиеФормы.НастройкаОтправкиОтчета добавляем реквезит ОбъектПечати (СправочникСсылка, ДокументСсылка) Ну и в начало ОбщиеФормы.НастройкаОтправкиОтчета ОсновныеДействияФормыOK Процедура ОсновныеДействияФормыOK(Кнопка) СохранитьЗначения(); СтруктураНовогоПисьма = Новый Структура; Если (ЭтаФорма.ОбъектПечати <> Неопределено) И (ЭтаФорма.ОбъектПечати.Метаданные().Реквизиты.Найти("Контрагент") <> Неопределено) Тогда СписокКому = Новый СписокЗначений; Адрес = УправлениеЭлектроннойПочтой.ОпределитьАдресПолучателя(ЭтаФорма.ОбъектПечати.Контрагент); Если НЕ ПустаяСтрока(Адрес) Тогда СписокКому.Добавить(Адрес, Строка(ЭтаФорма.ОбъектПечати.Контрагент.Наименование)); КонецЕсли; СтруктураНовогоПисьма.Вставить("Кому", СписокКому); КонецЕсли; ////////////////////////// ////////////////////////// Как то так. (18) Да, так действительно проще оказалось. |
|||
21
Tarzan_Pasha
14.05.16
✎
14:34
|
(12)как тебя найти? срочно нужен насчет пивных дождей. Дай емейл?
|
|||
22
RomanYS
14.05.16
✎
17:00
|
(20) конечно проще, я бы посмотрел как бы ты ухитрился привязать свои глобальные переменные к десятку открытых у юзера печатных форм ))
Для "извращенцев" в данном случае есть ещё одно "красивое" решение: писать своего в контрагента, например, в расшифровку какой-нибудь ячейки табдока. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |