#0
by AlexCom
Господа программисты! Помогите решить следующую задачу: Мне нужно запустить 1С8.2 базу и зафиксировать ID этого процесса Стал эту задачу решать так: Если блок заработает, то из Info получу ID потока. Но блок не работает! Где-то ошибаюсь с параметрами функции CreateProcess типа указатель, неправильно вызываю ... Может у кого-нибудь был опыт использования функций WinApi или решение проще ...
#1
by H A D G E H O G s
WinAPI.CreateProcess("",СтрокаЗапуска, СтрокаЗапуска - тут требуется указатель.
#3
by AlexCom
kittystark, Можно по подробнее Уточню задачу: у меня куча баз 1С. Когда я запускаю какую-нибудь из них, я хочу зафиксировать где-нибудь ID этого процесса для того, чтобы грохнуть в последствии (по ID найду и уничтожу). Написал вызов на Delphi: Мне надо просто разобраться с работой с указателями в 1С, переложить этот код в 1С (допустим), что не получается у меня
#5
by kittystark
значит смотри, чуток академических знаний: указатель как тип данных есть в С / C++ / Pascal / Delphi и т.д., но в 1С его нет (работа с системной памятью напрямую недостпуна, т.к. есть своя модель объектов, и воспользоваться фишками ООП типа наследование / полиморфизм / инкапуляция от этой модели не получится) код приведенный в можно попытаться выполнить в ПриНачалеРаботыСистемы модуля приложения (или модуля управляемого приложения) и полученный PID уже оттуда впихнуть куда-нибудь, например в файл и т.д. подумай на тему того, что может тебе лучше воспользоваться COM-сервером 1С тип Application или connector для своих целей? запустить для того чтобы потом грохнуть... можно конечно по разному использовать 1С, что в процессе работы нужно то?
#6
by AlexCom
kittystark, спасибо за ответ, но это я знаю. Вопрос только в том, что КАК воткнуть Delphi-код в модуль 1С. Мне не удается перевести в язык 1С указатели (как Вы писали, в 1С их нет - в том то и дело). Или может быть весь Delphi-код как макрос можно вставить в 1С, но я не знаю, как это сделать. Вопрос - какие параметры (в каком виде) подсунуть в функцию CreateProcess в модуле 1С, как инициализировать StartUpInfo, ProcessInfo - это же указатели А задача такая: Пользователь открывает свои базы, работает ... В некоторый момент администратор отключает некоторые базы или меняет права на доступ к базам. Удаленный пользователь попучает уведомление на экран, что определенная база отключается, допустим, на регламентные работы, и через 3 минуты, допустим, база закрывается сама. Для закрытия мне нужно знать ID процесса. Примерно так. Мне легче написать службу на Delphi, и раскатить её на все компы, но установка компании - писать всё на 1С, и это наверное правильно. Приходится придумывать. В принципе всё почти готово, остался этот кусок пройти. Получается, кроме как в ID процесса мне привязаться не к чему. Путь2: При запуске 1С-базы командная строка вызова тоже привязывается к win-процессу. Зная командную строку процесса и строку вызова 1С (они почти равны), я могу найти рабочий win процесс по этой строке. И опять упираются в API-функции (Process32First ...). Т.е. легче не стало. 1 вариант легче :)
#7
by Филиал-msk
И тут внезапно 1С падает не успев сообщить тебе о закрытии и через некоторое время ее пид получает фотошоп (: 1С тут совсем не нужна. Совсем. Пиды с легкостью вычитываются по необходимости из списка процессов при желании их убийства. Экземпляр базы определяется по параметрам командной строки.
#8
by Филиал-msk
И вообще, не ипи народу мозг переводом кода с престарелого дельфи на актуальный 1С. Напиши на своем дельфи внешнюю компоненту, грузи ее в 1С и извращайся как душа пожелает.
#9
by kittystark
а... свою выгонялку пользователей пишешь... во первых есть стандартный функционал блокировки сеансов во вторых таких поделок много, поищи если хочется посношаться, то как вариант - заводишь одну константу - кол-во секунд до выхода, при логине каждого пользователя в приначалеработысистемы подключаешь обработчик ожидания скажем раз в 30 сек., в котором анализируешьь ее и по ее значению - или вывоводишь сообщение (>0) - или выгоняшь и блокруешь вход (=-1) - или оставляешь работать (=0) а вторую константу - пользователь блокировщик чтоб под ним можно было всегда войти не взирая на значение первой константы, ну и плюс чтоб его не выкидывало
#11
by AlexCom
kittystark, Это тоже известно У нас баз - несколько сотен, большинство типовых, не снятых с поддержки, конфигурация закрыта или почти закрыта, в общем менять нельзя и т. д. Задача не должна затрагивать конфигурации, т. к. базы появляются и удаляются ... Задача наверное должна решаться в том виде, как предложено, как отдельный обший механизм 2. Блокировка сеансов? А если файловый вариант?
#12
by Филиал-msk
... и тысячи паровых машин. При этом программированием занимается не 1Сник, а дельфист. Сказочная контора.
#13
by Филиал-msk
Менять нельзя, но при старте конфигурация должна научится что-то делать с pid. Причем все тысячи баз. Волшебство!
#17
by lamina
а разве можно подключить внешнюю компоненту без снятия все ваших баз с поддержки или подключений расширений?
#19
by MM
А разве в структуре STARTUPINFO не нужно заполнить поле cb - The size of the structure, in bytes?
#20
by TormozIT
Конечно можно. ИР же это делает как раз через native ВК, ссылку на которую я дал в .
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Использование наладонного компьютера в производстве
- Использование 3-хзвенки в типовых
- Установка ИТС. Использование по сети?
- Ошибка при работе через терминальную сессию в 1С8. Вылетает 1с8.exe!
- Как получить Фамилию ФизЛица в родительном падеже в 1С8.0 или 1С8.1?
- Ole 1С8 с 1С77 использование функций глобального модуля 7ки?
- Совместное использование ключей 1С77 и 1С8
- Перевод 1С8.1 на 1С8.3 нужно делать через 1С8.2?
В этой группе 1С
- УФ Ошибка "Неизвестный идентификатор формы"
- При открытии Бухгалтерии 7.7 на рабочий стол вылетает куча файлов
- сканер штрих кода
- Сохранение вложения из документа электронное письмо входящее
- Выбор WMS-системы и оборудования для автоматизации склада
- УТ11 Проблема в чеке ККМ (будь она неладна)
- БП 3.0 перепроведение документов - "В данной транзакции уже происходили ошибки"
- Реестр к разделу 7 декларации
- ЗуП 2.5 Заполнение документа начисления - "лишние" виды расчетов
- Внешняя обработка - открытие документа по ссылке из таблицы значений
- УНФ (1.6.11.83) КУДиР
- Почему крашится OcvitaBarcode?...
- Есть типовые правила УПП -> ЗУП3 ?
- 1с подписка на события определяемого типа
- 1С-Рарус: Мобильный ТСД v8.3 Делимся опытом
- ПрисоединенныеФайлыКОбъекту после обновления на 3.0.52.36
- 1с 8.3 заполнить пустое место пробелами
- v7: Обход строк журнала документов
- ЗУП 3.1 Сверхурочные при увольнении
- Python. Как установить на хостинге?