Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 ноя 2024, 17:09

Рассылка сообщений из 1С на почту пользователям

Автор slimuz, 02 авг 2017, 12:00

0 Пользователей и 2 гостей просматривают эту тему.

MuI_I_Ika

Напишите запрос вот так:

"ВЫБРАТЬ
    |    БронированиеПомещенийУчастники.Пользователь.EMail КАК EMail
    |ИЗ
    |    Документ.БронированиеПомещений.Участники КАК БронированиеПомещенийУчастники"

oleg-x

Цитата: slimuz от 02 авг 2017, 16:13
Получилось так:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| БронированиеПомещенийУчастники.Пользователь.EMail
|ИЗ
| Документ.БронированиеПомещений.Участники КАК БронированиеПомещенийУчастники";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщение.Получатели.Добавить(Выборка.EMail);
КонецЦикла;

Но вылезает ошибка: Поле объекта не обнаружено (EMail).
Возможно это связанно с тем, что этот код надо запускать НаКлиенте ?
У тебя не задан псевдоним и скорее всего поле называется так ПользовательEMail, можно посмотреть во вкладе объединения/псевдонимы.
Либо поменяй псевдоним (как написано выше), либо исправь код в цикле.
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

slimuz

Благодарю, с псевдонимом получилось :ooifh:
Протестировав понял, что всё таки такой вариант не подходит)
Буду этот вариант добивать:
Для каждого стр из ЭлементыФормы.ТЧ Цикл
    Сообщение.Получатели.Добавить(стр.Пользователь.EMail);
КонецЦикла; //для всех пользователей из ТЧ документа


oleg-x

Возможно такой вариант не подходит, потому что нет отбора документов, то есть в данном запросе отправляется всем, кто заведен во всех документах. Надо добавить в условия запроса.
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

alex0402

Цитата: slimuz от 02 авг 2017, 16:13Сообщение.Получатели.Добавить(Выборка.EMail);

В данном случае правильно:
Сообщение.Получатели.Добавить(Выборка.ПользовательEMail)
или установить синоним поля в запросе.
Спасибо за Сказать спасибо

slimuz

А как выбирать данные только из текущего документа ?
Натыкаюсь на запросы такого типа:

Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
...
ГДЕ
| Документ.Ссылка = &ТекущийДокумент";

У меня не определяется переменная ЭтотОбъект :dfbsdfbsdf:

Izzy

Если вызов происходит из модуля Формы документа, то передавать Объект.Ссылка в Общий модуль

slimuz

Вызов процедуры из модуля формы документа. А сам запрос в общем модуле. Что вы имеете ввиду под передачей Объект.Ссылка в Общий модуль ?

Izzy


&НаКлиенте
Процедура ОтправитьОповещения(Команда)
    РассылкаПользователям.ОтправитьПисьма(Объект.Ссылка);    //Вызов процедуры ОтправитьПисьма из Общего модуля РассылкаПользователям, передаём ссылку на документ в качестве параметра
КонецПроцедуры;


Имя Команды, Общего модуля и Название Процедуры, соответственно, указываете свои

slimuz


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск