1с для команды не определен способ запуска
Скажите, пжл, как программно определить, запущена ли 1С в режиме польз?
СП помнит.
Не забудь про всякие консоли, регламентные задания, конфигуратор и прочую хрень.
Почему тут нет кнопки - голосовать за закрытие темы?
то ес мы во прям из нашег сеанс хоти узна - а выполняетс ли это во самы код, который выполняетс?
(11) Потому что сеанс конфигуратора — это не сеанс в режиме 1С:Предприятия. Как и консоль кластера, регламентные задания и т. д.
2(16) вам не кажется ли, что если вы программно что-то выполняется, то это уже выполняется в предприятии, и стало быть 1С запущена в режиме пользователя?
хотите изобрести настоящий искусственный интеллект - чтобы программа обладала рефлексией и думала над вопросом "А существую ли я на самом деле? Или просто снюсь бабочке?"
2 (23) ну не знаю у меня безо всяких закрывает все окна 1с
2(23) это оттого что нужно писать tskill:
tskill 1Cv8* /A
но это сработает только в том случае если у вас все пользователи работают в терминале
но самое смешное что этот код закроет и ваш сеанс тоже. а вам так нужно?
taskkill в этом плане более универсальная - позволит завершить процессы и на удаленных компах, но вам нужно знать имена компов на которых работают ваши пользователи
Здравствуйте, Живой Ископаемый!
Перед обменом нужно, как я понимаю, чтобы пользователей в базе не было. Как раз мое 1сПредприятие (польз "obmen") я и спрашиваю как закрыть (это к (26)).
У нас пользователи не в терминале работают и я тоже, спасибо, учту.
Сейчас попробую сделать, как Вы советуете.
TaskKill /F /IM 1cv8.exe - закрылось без вопроса, спасибо Вам огромное
наша задача состоит в том, чтобы угадать какой результат в каком случае? призы будут?
во 2 случае только код в кону загружается, и даже из конф для обновления 1сПредпр не запускается - остается "!" в конф-ре
"только код" - это я после выполнения случая2 захожу в конфигуратор и вижу что код заменился на новый и стоит в окне конф-ра "!"; те видимо сработала только первая строка батника,
"только код" - данные не загрузились
2(40) мучайтесь дальше. никто вас такую без фотки не пожалеет
я это уже объяснял в одной из позапрошлых веток.. с тех пор причина та же
(44) я не поняла, скажите, пжл, еще 1 раз, если не затруднит
2(45) нет, не просите вы помочь.. вы сообщаете ничего не значащие замечания о работе какого-то припадочного скрипта.
Кстати, в (30) - предположение "Перед обменом нужно, как я понимаю, чтобы пользователей в базе не было" - абсолютно ложное. могут быть. Пользователей быть не должно только в том случае, если пришли изменения конфы, при чем такие, которые меняют структуру. Если же просто поменялся код модуля - то пусть будут, ничего страшного нет
Безопасность запуска приложений
Область применения: управляемое приложение, обычное приложение.
1. При запуске внешней программы из кода требуется составлять строку запуска таким образом, чтобы она собиралась только из проверенных частей.
Если одна из частей, из которых собирается строка запуска, содержит данные, полученные из базы данных, из поля ввода на форме или прочитаны из хранилища настроек, то перед запуском программы требуется проверить, являются ли запуск безопасным. Безопасными считаются такие строковые данные, которые не содержат в себе следующие символы: "$", "`", "|", "||" ";", "&", "&&".
Данное требование распространяется на все способы запуска программы, в том числе:
- КомандаСистемы (<СтрокаКоманды>, <ТекущийКаталог>)
- ЗапуститьПриложение (<СтрокаКоманды>, <ТекущийКаталог>, <ДождатьсяЗавершения>, <КодВозврата>) ;
- НачатьЗапускПриложения (<ОписаниеОповещения>, <СтрокаКоманды>, <ТекущийКаталог>, <ДождатьсяЗавершения>);
- ПерейтиПоНавигационнойСсылке (<НавигационнаяСсылка>);
- Использование COM объектов " Wscript.Shell " и " Shell.Application ".
2. При использовании Библиотеки стандартных подсистем для запуска внешних программ требуется использовать следующий программный интерфейс:
2.1. Для того чтобы открыть проводник с фокусировкой на указанном файле, использовать процедуру ФайловаяСистемаКлиент.ОткрытьПроводник .
Например:
2.2. Для того чтобы открыть файл в программе просмотра, ассоциированной с расширением файла, использовать процедуру ФайловаяСистемаКлиент.ОткрытьФайл . Она исключает запуск исполняемых файлов (например, *.exe, *.bin, *.apk).
Например:
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку("https://1c.ru");
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку("e1cib/navigationpoint/startpage"); // начальная страница.
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку("mailto:[email protected]");
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку("skype:echo123?call");
В то же время, для открытия проводника или файла в программе просмотра не следует формировать ссылку по протоколу file://, для этого следует использовать одну из процедур: ОткрытьПроводник (см. п. 2.1) или ОткрытьФайл (см. п. 2.2).
2.4. Для того чтобы:
- запускать файлы на исполнение (например, *.exe, *bat),
- использовать системные команды (например, ping, tracert или traceroute, обращаться к rac-клиенту),
- выполнять команды на сервере,
- а также получать код возврата и значения потоков вывода (stdout) и ошибок (stderr)
следует использовать ФайловаяСистемаКлиент.ЗапуститьПрограмму (в клиентском коде) и ФайловаяСистема.ЗапуститьПрограмму (в серверном коде).
Например:
Пример запуска с ожиданием завершения и получения кода возврата:
ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
ПараметрыЗапускаПрограммы.ПолучитьПотокОшибок = Истина;
Результат = ФайловаяСистема.ЗапуститьПрограмму(
"ping 127.0.0.1 -n 5", ПараметрыЗапускаПрограммы);
КодВозврата = Результат.КодВозврата;
ПотокВывода = Результат.ПотокВывода;
ПотокОшибок = Результат.ПотокОшибок;
3. Для выполнения команды, требующей запуск внешней программы в режиме наивысших прав (например, в ОС Windows - с отображением запроса повышения прав UAC), необходимо:
Ниже рассмотрим основные методы использования механизма отладки в виде практической инструкции на конкретном примере.
Внимание! Если Вы используете клиент-серверный режим работы (на сервере), Вам необходимо включить отладку на сервере 1С Предприятия.
Запуск отладки в 1С
Отладка фоновых заданий 1С
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
В этом окне Вы можете установить соответствующий флаг.
Установка точки останова (брейкпойнта)
Для того чтобы установить точку останова, необходимо найти нужный программный код и кликнуть дважды на поле, слева от поля ввода кода (или нажать кнопку F9):
Точка останова 1С с условием (синяя)
Например, остановим цикл на строке с номером 25:
Неактивная точка останова (серая)
Точка останова по ошибке
Пошаговое перемещение по программному коду 1С
После установки точки останова необходимо инициировать выполнение нужного программного кода, чтобы система вошла в пошаговое исполнения кода. Отображение стрелки свидетельствует о запуске режима пошагового выполнения кода:
Чтобы перейти с текущего положения курсора к нужному, минуя промежуточные строчки кода, необходимо установить курсор на нужной строке и нажать shift + F10 (Идти до курсора).
Анализ значений в режиме отладки 1С
Посмотреть значения определенных значений можно разными способами:
Отображение значения при наведении курсора
Очень полезно использовать вычисление выражения и выполнить запрос, выгрузить в таблицу значений и посмотреть её.
С помощью него Вы можете подробно узнать, откуда была вызвана процедура и с какими параметрами:
Смотрите также обзорное видео по отладке в 1С:
Другие статьи по 1С:
Уже не один день играюсь, но так и не нашел способа запустить заданную процедуру обработки при запуске. Все, что понял за все время, так это то, что функция обработки должна быть экспортной и код для запуска процедуры обработки должен быть в процедуре ПриНачалеРаботыСистемы .
Вот решение от Гения1С
Запускать с ключом запуска: /C"АвтВнешняяОбработка = ВнешниеОбработки.Создать(ПолноеИмяФайла); ВнешняяОбработка.Запуститься();"
ПриНачалеРаботыСистемы бывает в трёх разных модулях - Управляемого, Обычного приложений и Внешнего соединения. Соответственно, надо определиться - прописан ли вызов нужной процедуры именно в модуле нужного типа приложения.
Под выражением "процедура обработки" что понимается - процедура, которая что-то обрабатывает, или процедура, которая находится в обработке как объекте 1С? Если второе, то где она находится - в модуле обработки, в модуле менеджера или в форме? Ну и главное - обработка внешняя или встроенная в конфигурацию?
Если обработка встроенная и процедура находится в модуле обработки, то код будет такой
Если обработка встроенная и процедура находится в модуле менеджера, то обработку можно не создавать:
Если же это веб-клиент, а обработка встроенная, тогда только можно вызвать только процедуру формы обработки.
Читайте также: