Имя: Пароль:
1C
1C 7.7
v7: ПриЗавершенииРаботыСистемы: выполнить процедуру и закрыть
0 Масянька
 
06.12.13
09:37
Доброе утро!
Как можно сделать, чтобы в ПриЗавершенииРаботыСистемы выполнилась процедура (запуск внешнего отчета, его выполнение, после выполнения), потом закрыть?

Спасибо.
1 ДенисЧ
 
06.12.13
09:38
Мм.... Открыть отчёт, передать ему параметры, запустить выполнение, закрыть отчёт...

Не?
2 Ёпрст
 
гуру
06.12.13
09:39
можно и модально, чтоб подождал с закрытием..
3 Масянька
 
06.12.13
09:39
(1) Да. Это есть. Мне хочется, чтобы выполнения отчета - закрылось 1С.
4 ДенисЧ
 
06.12.13
09:40
(3) И?
5 Рэйв
 
06.12.13
09:40
(3)А результат выполнения не нужен7:-)
6 Масянька
 
06.12.13
09:42
(4) Что и?

Процедура ПриЗавершенииРаботыСистемы()
    
    // для журнала кассира-операциониста
    глПроверкаЖурналаКассираОперациониста();
    
    Если ПустоеЗначение(глЗначениеПоУмолчанию("НеЗапрашиватьПодтверждениеПриВыходе")) = 1 Тогда
        Если Вопрос("Закончить работу с программой?", "Да+Нет", 10)="Нет" Тогда
            СтатусВозврата(0);
            Возврат;
        КонецЕсли;
    КонецЕсли;
    
    ОткрытьФормуМодально("Обработка.ТорговоеОборудование", "Отключить");
    
КонецПроцедуры // ПриЗавершенииРаботыСистемы()

Как закрыть 1С?
(5) Там отчет. В принципе, если нужен резаультат - я знаю, как сделать.

Я не знаю, как закрыть 1С :(
7 VladZ
 
06.12.13
09:47
(1) + После закрытия "ЗавершитьРаботуСистемы".
В процедуру ПриЗавершенииРаботыСистемы гадить не нужно!
8 Масянька
 
06.12.13
09:49
(7) Это как?
9 Ёпрст
 
гуру
06.12.13
09:52
(6)
самое правильное, это

//ОткрытьФормуМодально("Обработка.ТорговоеОборудование", "Отключить");
10 Ёпрст
 
гуру
06.12.13
09:54
при закрытии 1с-ины и так всё подключенное оборудование "умрёт" само
11 Масянька
 
06.12.13
09:56
(9) Закомментила. Не закрывается.....
12 Ёпрст
 
гуру
06.12.13
09:57
(11) глПроверкаЖурналаКассираОперациониста, там что ?
:))
13 Ёпрст
 
гуру
06.12.13
09:57
вообще всё заккоменти в ПриЗавершенииРаботыСистемы
14 Ёпрст
 
гуру
06.12.13
09:57
для начала.
15 Масянька
 
06.12.13
10:02
Может тут собака зарыта?

Функция глПроверкаЖурналаКассираОперациониста() Экспорт
    
    ДатаНачала        = Константа.ДатаНачалаЖурналаКассира;
    ДатаОкончания     = Константа.ДатаОкончанияЖурналаКассира;
    
    СписокПараметров = СоздатьОбъект("СписокЗначений");
    СписокПараметров.Установить("ДатаНачала",      ДатаНачала);
    СписокПараметров.Установить("ДатаОкончания", ДатаОкончания);
    
    Если (ДатаОкончания = ТекущаяДата()) Тогда
        Сигнал();
        Ответ = Вопрос("Сегодня заканчивается страница" + РазделительСтрок +
                       """Журнала кассира-опреациониста""." + РазделительСтрок +
                       "Будем заполнять?", "Да+Нет");
        Если Ответ = "Да" Тогда
            ОткрытьФорму("Отчет", СписокПараметров, КаталогИБ() + "\Dopolnitelno\ЖурналКассира-Операциониста.ert");
            СтатусВозврата(0);
        Иначе
            СтатусВозврата(1);
        КонецЕсли;  
    КонецЕсли;
    
КонецФункции    // глПроверкаЖурналаКассираОперациониста
16 varelchik
 
06.12.13
10:02
(6) а вот тута:
глПроверкаЖурналаКассираОперациониста();
случаем СтатусВозврата(0) неиспользуеться?
17 varelchik
 
06.12.13
10:03
(15) Вот тебе и ответ.
18 Ёпрст
 
гуру
06.12.13
10:04
(15) ага ты же в  ней СтатусВозврата(0) устанавливаешь при некоторых условиях..
ну и всё собственна..
19 varelchik
 
06.12.13
10:04
(15) Шо за идиот такое писал?
20 Масянька
 
06.12.13
10:05
(17) Как надо-то?
Если после ОткрытьФорму(....) поставить СтатусВозрата(1) - все закрывается сразу, а надо с отчетом работать.
(19) Сам дурак.
21 Масянька
 
06.12.13
10:06
Всё! Получилось :)
Всем спасибо, кроме  varelchik (а чё он обзывается).
22 varelchik
 
06.12.13
10:06
ОткрытьФорму
замени на
ОткрытьФормуМодально()
пока отчет не закончиться система не закроеться.
и со статусами не балуй.
23 VladZ
 
06.12.13
10:07
(8) В твоей обработке:

Процедура ВЫполнить()
// тут нужный функционал
КонецПроцедуры

Процедура приОткрытии()
    // если переданы параметры - выполняем.
   Выполнить();
   ЗавершитьРаботуСистемы();
КонецПроцедуры
24 varelchik
 
06.12.13
10:07
(22) в смысле СтатусВозврата()
25 Ёпрст
 
гуру
06.12.13
10:07
(20) в сам отчет передай параметр, что отчет открыт в призавершении, в самом отчете, в ПриЗакрытии смотри, если Форма.Параметр = флагу, то ЗавершитьРаботуСистемы(0)
26 Масянька
 
06.12.13
10:07
(22) Не подлизывайся! Я и сама поняла про модально :)
27 Ёпрст
 
гуру
06.12.13
10:08
модальность не обязательна будет при этом
28 Ёпрст
 
гуру
06.12.13
10:08
При модальной форме у тебя не будет Таблиц.. ни на форме ни во фрейме.. если че.
29 Масянька
 
06.12.13
10:08
Я сделала так:

Функция глПроверкаЖурналаКассираОперациониста() Экспорт
    
    ДатаНачала        = Константа.ДатаНачалаЖурналаКассира;
    ДатаОкончания     = Константа.ДатаОкончанияЖурналаКассира;
    
    СписокПараметров = СоздатьОбъект("СписокЗначений");
    СписокПараметров.Установить("ДатаНачала",      ДатаНачала);
    СписокПараметров.Установить("ДатаОкончания", ДатаОкончания);
    
    Если (ДатаОкончания = ТекущаяДата()) Тогда
        Сигнал();
        Ответ = Вопрос("Сегодня заканчивается страница" + РазделительСтрок +
                       """Журнала кассира-опреациониста""." + РазделительСтрок +
                       "Будем заполнять?", "Да+Нет");
        Если Ответ = "Да" Тогда
            ОткрытьФормуМодально("Отчет", СписокПараметров, КаталогИБ() + "\Dopolnitelno\ЖурналКассира-Операциониста.ert");
            СтатусВозврата(1);
        Иначе
            СтатусВозврата(1);
        КонецЕсли;  
    КонецЕсли;
    
КонецФункции    // глПроверкаЖурналаКассираОперациониста


Отчет открывается, при закрытии отчета - 1С тож закрывается.

Еще раз спасибо!
30 varelchik
 
06.12.13
10:10
(23) тоже вариант.
(29) тогда это
           СтатусВозврата(1);
        Иначе
            СтатусВозврата(1);
излишнее.
31 Масянька
 
06.12.13
10:18
(30) Ну, ладно - и тебе спасибо :))))
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой