Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Отправка электронного письма пользователю при появлении для него задачи 2 страниц V   1 2 >          
kosalex Подменю пользователя
сообщение 10.07.13, 11:58
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Подумал,поискал, и нашёл страндартный общий модуль в типовой конф Документооборот в котором уже реализовано отправления сообщения.

Код:
Функция ОтправитьСообщение(знач УчетнаяЗапись, знач ПараметрыПисьма) Экспорт
    
    Возврат ЭлектроннаяПочта.ОтправитьПочтовоеСообщение(УчетнаяЗапись, ПараметрыПисьма);
    
КонецФункции



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





Как в функцию ОтправитьСообщение передать значения параметров учётная запись?
Задача моя следующая, при формировании какого нибудь БП уведомлять пользователя по электронке,для которого была сформирована задача.

logist Подменю пользователя
сообщение 10.07.13, 12:35
Сообщение #2

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(kosalex @ 10.07.13, 12:58) *
Как в функцию ОтправитьСообщение передать значения параметров учётная запись?

Этот код нио чем не говорит?
    Если ТипЗнч(УчетнаяЗапись) <> Тип("СправочникСсылка.УчетныеЗаписиЭлектроннойПочты")
       ИЛИ НЕ ЗначениеЗаполнено(УчетнаяЗапись) Тогда
        ВызватьИсключение НСтр("ru = 'Учетная запись не заполнена или заполнена не правильно'");
    КонецЕсли;



Signature
Личные бесплатные консультации не даю, для этого есть форум!

kosalex Подменю пользователя
сообщение 10.07.13, 13:08
Сообщение #3

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Говорит! Как в неё передать пользователя - исполнителя БП?

ЭлектроннаяПочта.ОтправитьСообщение(????,????);


logist Подменю пользователя
сообщение 10.07.13, 13:14
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

А зачем это в нее передавать пользователя? В нее надо передать ПараметрыПисьма. Смотрим код дальше:
    Если ПараметрыПисьма.Свойство("Кому", Кому) Тогда
        Если ТипЗнч(Кому) = Тип("Строка") Тогда
            ПараметрыПисьма.Кому = ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(Кому);
        КонецЕсли;
    Иначе

Может сразу составите вопросы для себя и проанализируете код, как видите там есть ответы на многие вопросы.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kosalex Подменю пользователя
сообщение 10.07.13, 13:46
Сообщение #5

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

я понимаю,что в эту функцию нужно передать пользователя для которого создаётся БП и параметры письма.

Если НЕ ФормаОповещенияОткрыта Тогда 
            
            ЭлектроннаяПочта.ОтправитьСообщение(что сдесь писать?); //Как определить кому отослать сообщение?


            ОткрытьФормуМодально("ОбщаяФорма.ОповещениеПользователяНовыеЗадачи");
            ОповещениеПользователей.ОчиститьОповещенияОЗадачах();
КонецЕсли;

Vofka Подменю пользователя
сообщение 10.07.13, 14:03
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Цитата(kosalex @ 10.07.13, 14:46) *
что сдесь писать?

УчетнаяЗапись - это ссылка на элемент соответствующего справочника.
А ПараметрыПисьма - это я не помню что уже, вроде структура какая-то.

logist Подменю пользователя
сообщение 10.07.13, 14:26
Сообщение #7

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

УчетнаяЗапись - это учетная запись от имени которой будет отправляться письмо. Это запись соответствующего справочника, которая хранит, в данном случае, настройки "Отправителя".
А ПараметрыПисьма это произвольная структура, в которую можно передавать что необходимо для составления письма, типовые ключи структуры видны в "ОтправитьПочтовоеСообщение".
Вам же перед вызовом этой перед вызовом функции необходимо заполнить эту структуру, ПараметрыПиьма.Кому = АдресПользователяДляОповещения.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kosalex Подменю пользователя
сообщение 10.07.13, 14:27
Сообщение #8

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

мне нужно передать ссылку на пользователя в справочнике "СправочникСсылка.УчетныеЗаписиЭлектроннойПочты", да?

logist Подменю пользователя
сообщение 10.07.13, 14:37
Сообщение #9

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(kosalex @ 10.07.13, 15:27) *
мне нужно передать ссылку на пользователя в справочнике "СправочникСсылка.УчетныеЗаписиЭлектроннойПочты", да?

В первом параметре - да. Ссылку на ОТПРАВИТЕЛЯ письма.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kosalex Подменю пользователя
сообщение 10.07.13, 15:23
Сообщение #10

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

09000000.gif я не шарю....

47046430.gif что туда нужно написать и как? help.gif 09000000.gif

Vofka Подменю пользователя
сообщение 10.07.13, 15:42
Сообщение #11

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

kosalex, посмотрите как эту функция вызывается в документообороте.

Сообщение отредактировал Vofka - 10.07.13, 15:42

kosalex Подменю пользователя
сообщение 11.07.13, 7:34
Сообщение #12

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Здравствуйте. Не нашёл как вызывается....

Вот что у меня написалось:

Процедура ПроверитьЗадачиПользователя() Экспорт
    

    Параметры = Новый Структура;
    Параметры.Вставить("Кому",Исполнитель);
    
    УчетнаяЗапись = Пользователи.ТекущийПользователь();
    
    Если ОповещениеПользователей.ЕстьНовыеЗадачи() Тогда
        Сигнал();
        Если НЕ ФормаОповещенияОткрыта Тогда
            
            ЭлектроннаяПочта.ОтправитьПочтовоеСообщение(УчетнаяЗапись,Параметры); //Как определить кому отослать сообщение?

            ОткрытьФормуМодально("ОбщаяФорма.ОповещениеПользователяНовыеЗадачи");
            ОповещениеПользователей.ОчиститьОповещенияОЗадачах();
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры


Не могу понять как вернуть, передать пользователя-исполнителя для которого задача!
По подписке на события при записи задачи получаю пользователя-исполнителя:
Процедура ЗадачаИсполнителяПриЗаписи(Источник, Отказ) ЭКСПОРТ
    Если НЕ Источник.Выполнена  Тогда
            НаборЗаписей = РегистрыСведений.ОповещениеПользователя.СоздатьНаборЗаписей();
            НаборЗаписей.Отбор.Пользователь.Установить(Источник.Исполнитель);
            
            СтрокаНабора                 = НаборЗаписей.Добавить();
            СтрокаНабора.Пользователь     = Источник.Исполнитель;
            
            НаборЗаписей.Записать();
            
    КонецЕсли;
КонецПроцедуры


А вот как передать пользователя-исполнителя в структуру "Параметры" ??

asd34 Подменю пользователя
сообщение 11.07.13, 8:47
Сообщение #13

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 170
Из: где-то под Киевом
Спасибо сказали: 65 раз
Рейтинг: 0

Цитата(kosalex @ 11.07.13, 7:34) *
ЭлектроннаяПочта.ОтправитьПочтовоеСообщение(УчетнаяЗапись,Параметры); //Как определить кому отослать сообщение?

Как-то так:
Пользователь = Исполнитель;//определяем пользователя 1С.
УчетнаяЗапись = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(Пользователь, "ОсновнаяУчетнаяЗапись"); //это основная учетная запись эл. почты пользователя, указанная в настройках пользователя

ПараметрыПисьма = Новый Структура;
ПараметрыПисьма.Вставить("Тема", НСтр("ru = 'Задачи'"));
ПараметрыПисьма.Вставить("Тело", НСтр("ru = 'У Вас новая задача!'"));
ПараметрыПисьма.Вставить("Кому", УчетнаяЗапись.АдресЭлектроннойПочты);
Если Пароль <> Неопределено Тогда
     ПараметрыПисьма.Вставить("Пароль", Пароль);
КонецЕсли;

kosalex Подменю пользователя
сообщение 11.07.13, 9:11
Сообщение #14

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Пользователь = Исполнитель;


как получить Пользователь = Исполнитель;//определяем пользователя 1С. ??

в регистре сведений хранятся пользователи-исполнители.

Как его от туда выбрать?

asd34 Подменю пользователя
сообщение 11.07.13, 9:57
Сообщение #15

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 170
Из: где-то под Киевом
Спасибо сказали: 65 раз
Рейтинг: 0

Процедура ПроверитьЗадачиПользователя() проверяет задачи текущего пользователя? Тогда
Пользователь = глЗначениеПеременной("глТекущийПользователь");

kosalex Подменю пользователя
сообщение 11.07.13, 10:11
Сообщение #16

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

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

asd34 Подменю пользователя
сообщение 11.07.13, 10:25
Сообщение #17

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 170
Из: где-то под Киевом
Спасибо сказали: 65 раз
Рейтинг: 0

Получайте исполнителя из Вашего регистра.

kosalex Подменю пользователя
сообщение 11.07.13, 10:29
Сообщение #18

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

не получается....

НаборЗаписей = РегистрыСведений.ОповещениеПользователя.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Пользователь.Установить( Что сдесь писать?);


или это не правильно?

asd34 Подменю пользователя
сообщение 11.07.13, 10:36
Сообщение #19

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 170
Из: где-то под Киевом
Спасибо сказали: 65 раз
Рейтинг: 0

[необходимо зарегистрироваться для просмотра ссылки]

kosalex Подменю пользователя
сообщение 11.07.13, 10:47
Сообщение #20

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

спасибо, гуглить я умею. я сюда пишу после того как погуглю..... 47067070.gif

Функция ВыбратьИсполнителяБП() ЭКСПОРТ
    
    НаборЗаписей = РегистрыСведений.ОповещениеПользователя.СоздатьНаборЗаписей();    
    НаборЗаписей.Отбор.Пользователь.Установить("Пользователь", ???????);
    НаборЗаписей.Прочитать();
    Исполнитель = НаборЗаписей.Пользователь;
    НаборЗаписей.Очистить();
    Возврат Исполнитель;
    
    
КонецФункции



Как сдесь установить значение??Сдесь должен быть по идеи пользователь-исполнитель.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.06.25, 2:30
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!