Автоматическая загрузка 1cv7.md #150824


#0 by insider
Вообщем давно была такая мысль, но не знаю как реализовать. Вообщем есть юзера, далеко. Они даже не умеют электронкой пользоваться, конфигуратор для них страшный зверь, файл от папки не отличают и слабо вообще понимают как комп работает... но тем не менее работают в 1С Хочу: 1. Выслать им md (это я умею) 2. Они автоматом получают md (обработкой в 1С), md идентифицируется как md, а не чего-то другое, распакуется, сохранится (это я тоже умею) 3. Запускается нечто, вырубает 1С, объединяет конфы, пишет че-то, что типа завершило (а вот это не умею) Какие у кого соображения? Как "малой кровью" отделаться? Если все это сделаю - выложу полный алгоритм и все что нужно на проклубе и сообщу здесь.
#1 by Sonic_vlad
вообще уже есть подобные програмки. в данный момент пишу ВК для этого.. 1. получение дистриба обновления 2. распаковка, установка его 3. сохранение БД. 4. объединение конф 5. обновление отчетности
#2 by skunk
думаю надо смотреть в сторону пакетного режима конфигуратора...
#3 by Sonic_vlad
объединения и загрузки МД в 7ке нету
#4 by skunk
зато есть WSH
#5 by Sonic_vlad
если использовать WSH то ничего нельзя делать на компе. Теряется фокус с окна и все...
#6 by skunk
не думаю что, что-то надо делать на компе во время этого... я не утверждаю что способ хороший... у него есть только один плюс "малая кровь"
#7 by insider
ну вот кроме объединения остальное более-менее просто, и пакетный режим заюзать можно, а вот объединение... Есть мысли запустить процесс, который прибьет 1С, а дальше создаст процесс конфигуратора послылкой ссобщений его окну нажимать пункты меню и заполнять нужные строчки... но что-то очень это громоздко мне кажется... Да, хочу все это вызвать из ВК, ну если возможно, т.е. чтобы все в одной ВК было (остальное в ней и так есть)
#8 by Sonic_vlad
ну по поводу объединения, у меня как (делаю) - запускаю 1ску, получаю хендл окна по его Пиду, ну и дальше SendMessage, PostMessage
#9 by Sonic_vlad
+8 приэтом окно 1ски не обязательно должно быть активно! т.е. на компе можно заниматся чем угодно, хоть в игрушки игратся
#10 by skunk
а почему УРИБ не поставить?
#11 by Sonic_vlad
а если базы самостоятельные?
#12 by skunk
ну например если изменения в мд не затрагивают структуры... то можно поиметь Танго ... в принципе у нее оттуда рожки ростут
#13 by insider
вот, это и хотел, ты из чего вызываешь конфигуратор, точнее его процесс? деньги + базы именно самостоятельные (тиражируемые конфы или конфы филиалов с ограничением функций например) не понял :)
#14 by Sonic_vlad
ну типа примерчик - basa = """C:1C_BasesПустая77""" Public Function PidToWnd(ByVal target_pid As Long) As Long    Dim test_hwnd As Long, test_pid As Long, test_thread_id As Long    test_hwnd = FindWindow(vbNullString, vbNullString)    Do While test_hwnd <> 0        If GetParent(test_hwnd) = 0 Then            test_thread_id = GetWindowThreadProcessId(test_hwnd, test_pid)            If test_pid = target_pid Then
#15 by Sonic_vlad
bhwnd это уже хендл окна запущенной 1ски
#16 by Sonic_vlad
PostMessage bhwnd, WM_COMMAND, 33260, 0 открывает окно выбора файла объединения конф
#17 by AlexSTAL
Хорошую тему затронули.... у меня тоже назрела необходимость в этом, так как кол-во баз увеличилось до 7
#18 by Sonic_vlad
у меня бух баз >50, чуть меньше УСН и около 20 Предпринимателей.. все типовые..
#19 by Sonic_vlad
+18 Лень - двигатель прогресса :)
#20 by insider
2 Sonic_vlad понял, именно то, что нужно, осталось мне понять (а может поспать, а то торможу), как из запущенного экземляра 1С это сделать? т.е.: 1. Запущен экз. предприятия 2. там запущена обработка (юзером) и загружена ВК 3. в опр. момент ВК инициирует процесс 4. процесс закрывает эску 5. процесс запускает конфигуратор дальше все уже в принципе в этой ветке есть как сделать, чтоб процесс не издох при закрытии предприятия?
#22 by insider
речь об удаленных базах и невменяемых юзерах, так я бы еще справился :)
#23 by skunk
я создавал специально одельную пустую базу... имено для этих целей...
#24 by insider
а, понял, умею, но хочу универсально, т.е. не только модули
#25 by insider
+24 все равно thanks :)
#26 by AlexSTAL
Я имел ввиду не 7 баз на одном компьютере, а 7 баз по всему городу
#27 by insider
а чтоб не создавать? :) тогда тебе тоже повезло :)
#28 by Sonic_vlad
ярлычок с запуском другой базы, при открытии запуск обработки, которая подгружает ВК и начинается колбасня
#29 by insider
т.е. получается не выйдет создать процесс в другом адресном пространстве и оставить его в живых после закрытия окна предприятия? прискорбно... а ведь где-то в глубинах памяти крутится... не могу вспомнить сорри, посплю пару часиков, а то к клиенту скоро
#30 by skunk
думаю не даст... только если писать вообще отдельно на другом языке... но все равно надо следить за тем что бы в 1С ни кто не зашел... мне было проще... структуру проработали четко... из начально когда планировали... меняли достаточно редко... а ошибки в обработках патчили имея
#31 by Sonic_vlad
а чтоб не создавать - ищи ConfStarter.вроде на проклабе был. умеет объединять базы.. это екзешкник.. з.ы. меня он не устроил по некоторым причинам
#32 by fixin
Можно создать УРБД только для целей обновления баз юзверей... :) Только с этой целью... Зато у тя в офисе будет копия их базы, кстати.
#33 by Diter
Когда то по моему Львёнок (знаменитая личность) выкладывал автообновлялку md. Если надо - могу глянуть - я качал... Там всё автоматом происходит
#34 by Diter
Даже нашёл ;))
#35 by Diter
"Утилита администратора 1С" Данная утилита позволяет выгрузить данные и загрузить измененную конфигурацию (файл 1CV7.MD) без участия человека. Например - ночью, когда в базе точно никто не работает (у нас некоторые трудоголики до 21-00 засиживаются) и после выполнения всех backup'ов. Или на удаленном месте. Или еще где, где душа админа пожелает :). Утилита запускает 1С и ищет принадлежащие данному процессу окна. Окно конфигуратора идентифицируются не по заголовку (что позволяет вместе с openconf работать). После нахождения окна конфигуратора ему посылаются сообщения, имитирующие выбор операций с конфигурацией, задающие пути к файлам и пароли, и ответы пользователя. Вопросы идентифицируются по тексту внутри MessageBox'а, и расчитаны только на русские варианты (т.е. если у кого стоит 1С с английским интерфейсом - работать не будет). Если база не зарегистрирована на машине - автоматически регистрится.
#36 by insider
вот примерно этот принцип и хочу заюзать, но без внешних экзешников и, если получится, без специальных баз.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С