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

Хранилище

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

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



> Формирование и рассылка отчетов по емайл.          
Михрутка Подменю пользователя
сообщение 03.04.13, 17:37
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 311
Из: Харьков
Спасибо сказали: 7 раз
Рейтинг: 0

1С 8.2. УПП

Необходимо перед закрытием программы формировать отчет(отчеты) и отправлять их по указанным электронным адресам. Никогда с таким не сталкивался, подскажите куда копать.

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

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 162
Из: Киев
Спасибо сказали: 130 раз
Рейтинг: 135.8



Функция ОтправитьЭлектронноеПисьмоHTML(
                            пАдрес,
                            пИмяОтправителя = "sender records",
                            пОтправитель = "reportbot@SCI.com.ua",
                            пТема,
                            пТекст,
                            пВложения,
                            пОписаниеПисьма = "",
                            пПочтовоеСоединение = Неопределено
                            ) Экспорт
    
    
    Сообщение = Новый ИнтернетПочтовоеСообщение;
    
    Если ПустаяСтрока(пАдрес) Тогда
        ОбщегоНазначения.СообщитьОбОшибке("Ошибка! В электронном письме ("+пОписаниеПисьма+") не указан адрес",,, СтатусСообщения.ОченьВажное);
        Возврат ложь;
    КонецЕсли;
    
    Сообщение.Получатели.Добавить(пАдрес);
    Сообщение.Тема =пТема;
    Сообщение.ИмяОтправителя=пИмяОтправителя;
    Сообщение.Отправитель=пОтправитель;
    
    Для каждого лИмяФайлВложения из пВложения Цикл
        Если ПустаяСтрока(лИмяФайлВложения) Тогда
            Продолжить;
        КонецЕсли;
        Попытка
            Сообщение.Вложения.Добавить(лИмяФайлВложения);
        Исключение
            ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),,"Ошибка при присоединении вложения к электронному письму", СтатусСообщения.ОченьВажное);
            Возврат ложь;
        КонецПопытки;
    КонецЦикла;
    
    Сообщение.Кодировка = "windows-1251";
    
    ТекстПисьма = Сообщение.Тексты.Добавить(пТекст);
    ТекстПисьма.Кодировка = "windows-1251";
    ТекстПисьма.ТипТекста = ТипТекстаПочтовогоСообщения.HTML;
    
    Если пПочтовоеСоединение = Неопределено Тогда
        
        Почта = Новый ИнтернетПочта();
        
        ПочтовыйПрофиль = ПолучитьПочтовыйПрофиль();
        
        Попытка
            Почта.Подключиться(ПочтовыйПрофиль);
        Исключение
            ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),,"Ошибка при подключению к почтовому профилю", СтатусСообщения.ОченьВажное);
            Возврат ложь;
        КонецПопытки;
            
        Попытка
            Почта.Послать(Сообщение);
        Исключение
            ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),,"Ошибка при отправке электронного письма на адрес "+пАдрес, СтатусСообщения.ОченьВажное);
            Возврат ложь;
        КонецПопытки;
        
        Почта.Отключиться();
        
    Иначе
        Попытка
            пПочтовоеСоединение.Послать(Сообщение);
        Исключение
            ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),,"Ошибка при отправке электронного письма на адрес "+пАдрес, СтатусСообщения.ОченьВажное);
            Возврат ложь;
        КонецПопытки;
    КонецЕсли;
    
    Возврат истина;
    
КонецФункции



Функция ПолучитьПочтовыйПрофиль() Экспорт
    
    Профиль = Новый ИнтернетПочтовыйПрофиль;
    
    Профиль.АдресСервераSMTP    = "192.168.4.16";
    Профиль.АдресСервераPOP3    = "192.168.4.16";
    Профиль.Пользователь        = "MailUser";
    Профиль.Пароль        = "MailPassword";
    Профиль.ПортSMTP        = 25;
    Профиль.ПортPOP3        = 110;
    Профиль.ВремяОжидания    = 60;
    
    Возврат Профиль;
    
КонецФункции


Комментарии к параметрам функции:
пВложения - массив строк, значение элемента - полный путь к файлу вложения
пОписаниеПисьма - идентификатор, которая будет выводится в сообщении об ошибке
пПочтовоеСоединение - можно передавать в функцию объект ИнтернетПочта (незначительно экономит время отправки). Если не заполнено - используется функция ПолучитьПочтовыйПрофиль

Пример использования

Для каждого АдресЭлектроннойПочты из масАдресаЭлектроннойПочты Цикл
            
    Если ПустаяСтрока(АдресЭлектроннойПочты) Тогда
        Сообщить("Для клиента "+Клиент+" не установлен адрес электронной почты");
        Продолжить;
    КонецЕсли;
            
    УправлениеЭлектроннойПочтой
        .ОтправитьЭлектронноеПисьмоHTML(
            АдресЭлектроннойПочты,
            "Sharashkyna Contora Incorporated",
            "reportbot@SCI.com.ua",
            "Задолженность по оплате комиссии",
            ТекстСообщения,
            Вложения);

КонецЦикла;

logist Подменю пользователя
сообщение 03.04.13, 18:52
Сообщение #3

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

Цитата(Михрутка @ 03.04.13, 17:37) *
Необходимо перед закрытием программы

Цитата(Михрутка @ 03.04.13, 17:37) *
1С 8.2. УПП

Меня прям вдохновило это сочетание smile.gif

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


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

zay Подменю пользователя
сообщение 03.04.13, 19:26
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 162
Из: Киев
Спасибо сказали: 130 раз
Рейтинг: 135.8

Цитата(logist @ 03.04.13, 19:52) *
Только еще совет - запускайте задание в фоне

Я использовал виндовс планировщик. Фоновые задания требуют чтобы все выполнялось на стороне сервера. А формировать отчеты и сбрасывать их в Excel на стороне сервера не получится.

Запускаем приложение с определенным параметром, который обрабатываем при старте. Т.е. если запуск с параметром "ФормируйОтчеты" - то сформировать отчеты и выйти из 1С. Если с параметром "РассылайОтчеты" - то разослать и выйти из 1С.

Еще надо понимать, что рассылка может быть запущена повторно. Получать один и тот же отчет клиенту наверное будет не очень интересно.

alex040269 Подменю пользователя
сообщение 03.04.13, 20:57
Сообщение #5

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

а если введены еще не все данные, а пользователь случайно вышел? такой отчет кому нибудь нужен? разве сто это мониторинг работы пользоваеля


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

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

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

Цитата(zay @ 03.04.13, 19:26) *
А формировать отчеты и сбрасывать их в Excel на стороне сервера не получится.

Не получится и не умею это разные вещи. Типовые регламентные задания типа рассылок отчетов об ошибках и уведомлений о задачах - как-то же работают.


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

Vofka Подменю пользователя
сообщение 04.04.13, 7:56
Сообщение #7

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

Я саму идею считаю не совсем разумной. В чем сложность сформировать отчеты в программе - непонятно.

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

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 162
Из: Киев
Спасибо сказали: 130 раз
Рейтинг: 135.8

Цитата(logist @ 04.04.13, 8:50) *
Не получится и не умею это разные вещи.

Версия платформы базы, в которой это реализовано - 1С:Предприятие 8.1 (8.1.11.67)

В справке по ТабличныйДокумент.Записать (<Имя файла>, <Тип файла таблицы>)
Примечание:
При работе на сервере или через com-соединение использует только файлы форматов mxl и txt.

В 8.2 - согласен, сохранять в Excel можно и на сервере.

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

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

Цитата(Михрутка @ 03.04.13, 17:37) *
1С 8.2. УПП

Цитата(zay @ 04.04.13, 10:16) *
Версия платформы базы, в которой это реализовано - 1С:Предприятие 8.1 (8.1.11.67)

Так наверное надо сразу это уточнить, что бы не возникало таких вопросов.


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

zay Подменю пользователя
сообщение 04.04.13, 10:49
Сообщение #10

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 162
Из: Киев
Спасибо сказали: 130 раз
Рейтинг: 135.8

Цитата(Vofka @ 04.04.13, 8:56) *
Я саму идею считаю не совсем разумной. В чем сложность сформировать отчеты в программе - непонятно.

Если это замечание по поводу запуска с помощью виндовс планировщика - то поясню:
по регламенту отчеты формируются в 18:40. Только к этому времени в учетной системе есть все необходимые данные для формирования отчетов. Заставлять сотрудника каждый день сидеть до этого времени, только для того чтобы он запустил обработку с одной единственной кнопкой "Сформировать", нажал ее и ждал пока все отчеты сформируются... Ну и допустим есть 400 клиентов. Группа отчетов для одного клиента формируются 15 сек. (если сервер больше ничем не загружен) = полтора часа просто формируются отчеты.
А удаленный доступ для сотрудника - это звонки, в том числе и в десять ночи, на тему: пропал интернет, разрядился ноут и не заряжается и т.п.

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

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

Цитата(zay @ 04.04.13, 11:49) *
Если это замечание по поводу запуска с помощью виндовс планировщика

Это было замечание, насчет "отправлять при закрытии программы" smile.gif

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


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

 

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