|
УФ Завершить работу в ПриНачалеРаботыСистемы() | ☑ | ||
---|---|---|---|---|
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
|
ну нельзя таким образом делать-то - там слишком много всего накручено в этой части БСП. Надо просто самим пропарсить ПараметрЗапуска да и все. Тогда все нормально закроется, когда самому захочется, тогда и закроется :-)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |