|
Автоматический запуск внешней обработки | ☑ | ||
---|---|---|---|---|
0
Den888
27.10.17
✎
11:23
|
Всем доброго времени суток. Помогите пожалуйста уважаемые разработчики 1С решить задачку.
Есть внешняя обработка, в ней две кнопки, "Выполнить" и "Отправить". При нажатии на кнопку "Выполнить", заполняется табличная часть. При нажатии на кнопку "Отправить", отправляется электронное письмо с данными из табличной части и прикрепленным файлом. Вопрос: возможно ли сделать так, что бы данная обработка автоматически выполнялась каждый день. Т.Е. например: в 08:00 утра каждого дня срабатывала процедура кнопки "Выполнить" и "Отправить"? База серверная. Буду рад любой помощи и любым вариантам. |
|||
1
wondkind
27.10.17
✎
11:26
|
(0) да, можно! Для этого есть регламентные задания
|
|||
2
lodger
27.10.17
✎
11:27
|
нажать красную букву Я рядом с заголовком темы. читать первую ссылку.
|
|||
3
wondkind
27.10.17
✎
11:29
|
(1) для этого в обработке эти процедуры должны быть экспортными, а также сделать обёртку для запуска.
То есть, создам в общем модуле процедуру для запуска регламентного задания: Процедура ВыполнениеПроцедуры() Экспорт об = Обработки.ТвояОбработка.Создать(); об.Выполнить(); об.Отправить(); КонецПроцедуры Это просто как пример. Я не знаю как у вас устроена обработка |
|||
4
lodger
27.10.17
✎
11:29
|
хотя там древний баян. в современной БСП давно есть запуск внешних обработок по расписанию.
|
|||
5
Den888
27.10.17
✎
11:53
|
Вот процедуры обработки
Процедура ПриОткрытии() ПолеДата = Дата(ТекущаяДата()); КонецПроцедуры //Отбор сотрудников, у которых сегодня ДР Процедура ВыполнитьНажатие(Кнопка) Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СотрудникиОрганизаций.Ссылка, | СотрудникиОрганизаций.Физлицо.Пол КАК ПолФЛ, | СотрудникиОрганизаций.ТекущаяДолжностьОрганизации КАК Должность |ИЗ | Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций |ГДЕ | ДЕНЬ(СотрудникиОрганизаций.Физлицо.ДатаРождения) = ДЕНЬ(&ДатаРождения) | И МЕСЯЦ(СотрудникиОрганизаций.Физлицо.ДатаРождения) = МЕСЯЦ(&ДатаРождения) | И СотрудникиОрганизаций.ДатаУвольнения = &ДатаУвольнения"; Запрос.УстановитьПараметр("ДатаРождения", ПолеДата); Запрос.УстановитьПараметр("ДатаУвольнения", ДАТА(1,1,1)); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); ЭтотОбъект.ТабличнаяЧасть.Очистить(); Если ВыборкаДетальныеЗаписи.Количество() > 0 Тогда Пока ВыборкаДетальныеЗаписи.Следующий() Цикл СтрокаТч = ЭтотОбъект.ТабличнаяЧасть.Добавить(); ПредвФИО1 = ОбщегоНазначения.ФамилияИмяФизЛица(ВыборкаДетальныеЗаписи.Ссылка, ВыборкаДетальныеЗаписи.ПолФЛ); ПредвФИО2 = Прав(ПредвФИО1, 2); СтрокаТч.ФИО = СтрЗаменить(ПредвФИО1, ПредвФИО2, ""); СтрокаТч.Должность = ВыборкаДетальныеЗаписи.Должность; КонецЦикла; Иначе Сообщить(Строка(Формат(ПолеДата,"ДФ=dd/MM/yy")) + " ни у кого из сотрудников дня рождения нет."); КонецЕсли; КонецПроцедуры //Отправка письма Процедура ОтправитьНажатие(Элемент) Экспорт Попытка Outlook = Новый COMОбъект("Outlook.Application"); ЕстьОшибка = 0; Исключение Сообщить("Не удалось создать объект Outlook.Application"); ЕстьОшибка = 1; КонецПопытки; Если ЕстьОшибка = 0 Тогда Письмо = Outlook.CreateItem(0); Письмо.Subject = "С Днем рождения!"; //Тема письма Если ТабличнаяЧасть.Количество() = 0 Тогда Возврат; КонецЕсли; //отоброжение текста в теле письма ТекстПисьма = "<html><body>"; ТекстПисьма = ТекстПисьма + "<center>" + "<b><font size=5>" + (Формат(ПолеДата, "ДФ=""дд ММММ""")) + "<br>"; Если ТабличнаяЧасть.Количество() > 1 Тогда ТекстПисьма = ТекстПисьма + "Именинники дня" + "</b>" + "</center>"; Иначе ТекстПисьма = ТекстПисьма + "Именинник дня" + "</b>" + "</center>"; КонецЕсли; Для Каждого СтрокаТЧ Из ТабличнаяЧасть Цикл ТекстПисьма = ТекстПисьма + "<center>" + "<b><font size=10 color=#FF4500>" + СтрокаТЧ.ФИО + "</b>" + "<br>"; ТекстПисьма = ТекстПисьма + "<font size=5 color=#696969>" + СтрокаТч.Должность + "</font>" + "</center>"; КонецЦикла; Письмо.Body = ТекстПисьма; Письмо.Recipients.Add("[email protected]"); //Адрес получателя Письмо.Attachments.Add("C:\Users\D.Boyakov\Desktop\ДР.jpg"); //Путь к картинке Письмо.HTMLBODY = ТекстПисьма + " " + "<center>" + "<img src=""ДР.jpg""></body></html>" + "</center>"; //Выравнивание картинки по центру Письмо.Send(); Иначе Тема = "Тема письма"; ТекстПисьма = "Текст письма"; СтрокаЗапуска = "mailto:" + "[email protected]" + "?subject=" + Тема + "&body=" + ТекстПисьма; ЗапуститьПриложение(СтрокаЗапуска); КонецЕсли; КонецПроцедуры |
|||
6
Has
27.10.17
✎
15:40
|
в планировщике задача с запуском файла Automat.bat
содержимое файла: rem стартер внешней обработки E:\1CEDistr\1cestart.exe enterprise /S"server1c8\InfoBase" /DisableStartupMessages /executeE:\Automat\Automat.epf /OutE:\Automat\Automat_out_.txt -NoTruncate |
|||
7
HEKPOH
27.10.17
✎
16:05
|
"Если ЕстьОшибка = 0 Тогда" - какая красота :)
|
|||
8
Ц_У
27.10.17
✎
16:30
|
||||
9
Мимохожий Однако
27.10.17
✎
16:32
|
(7) Не обижай семёрочников ))
|
|||
10
Rema Dan
27.10.17
✎
16:56
|
(6) А при таком варианте запуска процесс 1С закроется после выполнения обработки? или его нужно завершать из обработки через ЗавершитьРаботуСистемы(Ложь)?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |