|   |   | 
| 
 | УФ Завершить работу в ПриНачалеРаботыСистемы() | ☑ | ||
|---|---|---|---|---|
| 0
    
        ildary 18.10.18✎ 16:07 | 
        Уважаемые специалисты, подскажите пожалуйста, как правильно сделать следующее: запускаем 1С с параметром запуска, в ПриНачалеРаботыСистемы() при наличии этого параметра выполняем некие действия и надо завершить работу 1С. Всё получилось, но 1С не закрывается. 
 P.S. У меня есть смутное подозрение, что подобную штуку надо выполнять в ПередНачаломРаботыСистемы, т.к. там есть параметр Отказ. Но парсинг параметров запуска реализован в ПриНачалеРаботыСистемы(). | |||
| 1
    
        Вафель 18.10.18✎ 16:08 | 
        как закрываешь?     | |||
| 2
    
        ildary 18.10.18✎ 16:12 | 
        (1)                 СтандартныеПодсистемыКлиент.ПропуститьПредупреждениеПередЗавершениемРаботыСистемы();
 ЗавершитьРаботуСистемы(Ложь); | |||
| 3
    
        ildary 18.10.18✎ 16:12 | 
        Забыл добавить - конфигурация самописка с причудливыми вплетениямии БСП разных версий.     | |||
| 4
    
        bolobol 18.10.18✎ 16:12 | 
        shutdown -r now
 должно закрыть | |||
| 5
    
        bolobol 18.10.18✎ 16:14 | 
        Когда я проверял синтаксис команды - у меня даже сервант закрылся     | |||
| 6
    
        ildary 18.10.18✎ 16:15 | 
        (4) спасибо что не  rm -f. Но мне надо закрыть один сеанс 1С, без напалма и ядерной бомбы.     | |||
| 7
    
        dmt 18.10.18✎ 16:17 | 
        ПрекратитьРаботуСистемы()     | |||
| 8
    
        dmt 18.10.18✎ 16:18 | 
        хотя у меня и ЗавершитьРаботуСистемы работает     | |||
| 9
    
        Фрэнки 18.10.18✎ 16:44 | 
        а ничего страшного, что эта ЗавершитьРаботуСистемы только в контексте Клиента и на сервере она не определена?     | |||
| 10
    
        ildary 18.10.18✎ 16:47 | 
        (9) Скорей всего причина в этом. Скажите пожалуйста, как это ограничение обойти?     | |||
| 11
    
        Фрэнки 18.10.18✎ 16:48 | 
        хотя в моем тестовом сработало в Модуле управляемого приложения в процедуре ПриНачалеРаботыСистемы()
 правда за каким-то фигом моргнула окном приложения зачем-то | |||
| 12
    
        Фрэнки 18.10.18✎ 16:52 | 
        (10) ну как обойти... там же небось кучу кода навертели и препроцессором навесили кучу условий, где-то сервер, где-то клиент... вот и не закрывает.
 Интересно, а в каком месте/модуле отлавливается параметр командной строки в у вас в коде, после которого принимается вывод, что надо ЗавершитьРаботуСистемы ? | |||
| 13
    
        ildary 18.10.18✎ 16:58 | 
        Кажется меня спасла ПрекратитьРаботуСистемы();
 (12) из ПриНачалеРаботыСистемы() вызывается ОбработатьПараметрыЗапуска(), которая распарсивает строку и в которую я добавил свою проверку на нужный мне параметр с вызовом дополнительной обработки, после чего 1С завершает работу. | |||
| 14
    
        Фрэнки 18.10.18✎ 17:07 | 
        // Обработать параметры запуска программы.
 // // Возвращаемое значение: // Булево - Истина, если необходимо прервать выполнение процедуры ПриНачалеРаботыСистемы. // Функция ОбработатьПараметрыЗапуска() видимо там в остальных потрохах какая-то путаница | |||
| 15
    
        Фрэнки 18.10.18✎ 17:10 | 
        один фиг идет же работа с глобальным контекстом
 --- ПараметрЗапуска (LaunchParameter) Использование: Только чтение. Описание: Тип: Строка. Используется для доступа к параметру запуска, передаваемому через ключ командной строки /C. Доступность: Тонкий клиент, веб-клиент, толстый клиент. --- зы. интересные штучки :-) люблю в таких разбираться | |||
| 16
    
        ildary 18.10.18✎ 17:15 | 
        (14) обращаю внимание - "прервать выполнение процедуры ПриНачалеРаботыСистемы", но не завершать работу 1С. В 7.7 это бы действительно закрыло 1С. А тут не сработало - это была моя первая идея, после того как я почитал документацию.     | |||
| 17
    
        Фрэнки 18.10.18✎ 17:24 | 
        (16) так оно же просто как Функция , которая возвращает в вызывающую процедуру булевое значение Истина или Ложь , а там уже твое действие, нужна необходимость завершения процедуры или Завершение работы системы всей задачи
 Если ОбработатьПараметрыЗапуска() Тогда ЗавершитьРаботуСистемы(Ложь); КонецЕсли; сейчас смоделирую у себя | |||
| 18
    
        Фрэнки 18.10.18✎ 17:31 | 
        ну нельзя таким образом делать-то - там слишком много всего накручено в этой части БСП. Надо просто самим пропарсить ПараметрЗапуска да и все. Тогда все нормально закроется, когда самому захочется, тогда и закроется :-)     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |