Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Автоматический запуск внешней обработки

Автоматический запуск внешней обработки
Я
   Den888
 
27.10.17 - 11:23
Всем доброго времени суток. Помогите пожалуйста уважаемые разработчики 1С решить задачку.
Есть внешняя обработка, в ней две кнопки, "Выполнить" и "Отправить". При нажатии на кнопку "Выполнить", заполняется табличная часть.
При нажатии на кнопку "Отправить", отправляется электронное письмо с данными из табличной части и прикрепленным файлом.

Вопрос: возможно ли сделать так, что бы данная обработка автоматически выполнялась каждый день. Т.Е. например: в 08:00 утра каждого дня срабатывала процедура кнопки "Выполнить" и "Отправить"? База серверная. Буду рад любой помощи и любым вариантам.
 
 
   wondkind
 
1 - 27.10.17 - 11:26
(0) да, можно! Для этого есть регламентные задания
   lodger
 
2 - 27.10.17 - 11:27
нажать красную букву Я рядом с заголовком темы. читать первую ссылку.
   wondkind
 
3 - 27.10.17 - 11:29
(1) для этого в обработке эти процедуры должны быть экспортными, а также сделать обёртку для запуска.

То есть, создам в общем модуле процедуру для запуска регламентного задания:

Процедура ВыполнениеПроцедуры() Экспорт
   об = Обработки.ТвояОбработка.Создать();
   об.Выполнить();
   об.Отправить();
КонецПроцедуры

Это просто как пример. Я не знаю как у вас устроена обработка
   lodger
 
4 - 27.10.17 - 11:29
хотя там древний баян. в современной БСП давно есть запуск внешних обработок по расписанию.
   Den888
 
5 - 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("d.boyakov@qiwi.kz");//Адрес получателя  

        Письмо.Attachments.Add("C:\Users\D.Boyakov\Desktop\ДР.jpg");//Путь к картинке             

        Письмо.HTMLBODY = ТекстПисьма + " " + "<center>" + "<img src=""ДР.jpg""></body></html>" + "</center>";//Выравнивание картинки по центру

        
        Письмо.Send();
    Иначе
        Тема = "Тема письма";
        ТекстПисьма = "Текст письма";
        СтрокаЗапуска = ""mailto:"" target="_blank">mailto:"; + "d.boyakov@qiwi.kz" + "?subject=" + Тема + "&body=" + ТекстПисьма;
        ЗапуститьПриложение(СтрокаЗапуска);
    КонецЕсли;
    
КонецПроцедуры
   Has
 
6 - 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
   HEKPOH
 
7 - 27.10.17 - 16:05
"Если ЕстьОшибка = 0 Тогда" - какая красота :)
   Ц_У
 
8 - 27.10.17 - 16:30
   МимохожийОднако
 
9 - 27.10.17 - 16:32
(7) Не обижай семёрочников ))
   Rema Dan
 
10 - 27.10.17 - 16:56
(6) А при таком варианте запуска процесс 1С закроется после выполнения обработки? или его нужно завершать из обработки через ЗавершитьРаботуСистемы(Ложь)?
 
 Рекламное место пустует

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует