VBS: Управлять приложением

  1. 9 г. назад

    Стоит задача из 1С8 обновлять конфигурацию 1Cv7.
    Конфигурацию семерки обновить в пакетном режиме невозможно. Но для настоящего одинесника нет ничего невозможного.

    	КомманднаяСтрока = Путь1Сехе + " CONFIG /D" + БазаДанных.Путь + " /N" + БазаДанных.Пользователь + " /P" + БазаДанных.Пароль;
    	WshShell = Новый COMОбъект("WScript.Shell");
    	WshExec = WshShell.Exec(КомманднаяСтрока);
    	
    	WshShell.AppActivate(WshExec.ProcessID);
    	
    	Sleep(5000);
    	
    	//WshShell.SendKeys("%{ }");
    	WshShell.SendKeys("%{ }{RIGHT}{RIGHT}{DOWN}{DOWN}{DOWN}{DOWN}{ENTER}");
    	
    	Sleep(1000);
    	
    	WshShell.SendKeys(ИмяФайлаМД + "{ENTER}");
    	
    	Sleep(3000);
    

    Заходим в конфигуратор, посылаем нажатия на кнопки, заходим в меню "Конфигурация - Загрузить измененную конфигурацию..." вбиваем полное имя файл МД и жмём Enter. Всё отлично.
    Но, тут может вылезти окно о запросе чего-либо. И вот как определить из скрипта, что за форма открыта, хотя бы с каким заголовком?

    Ответы: (1) (24) (31)
  2. 1Сергей И вот как определить из скрипта, что за форма открыта, хотя бы с каким заголовком?

    а нафига? сэнди энтеров несколько штук

  3. фиговое решение, имхо

    Ответы: (4)
  4. Нашел скрипт на OpenConf для обновления. Только вот, сам ОС не могу найти. Официальный сайт лежит (

  5. (2) а какое ты хочешь решение? чтобы обновить - так и так нужно все кнопочки подтвердительные нажать

    Ответы: (6)
  6. А слабо сделать 2 варианта: с подтверждением и без (отключить все вопросы и тупо обновить)? [smile=^_^]

    Ответы: (9)
  7. (4) а вдруг там какая бяка вылезит? Хотелось бы ещё знать, прошло обновление или нет

    Ответы: (7) (8)
  8. (6) ИИ хочешь создать?

    Ответы: (8) (11)
  9. (6) Всю бяку пиши в лог.
    (7) Ху из "ИИ"?

  10. (5)

    Масянька (отключить все вопросы и тупо обновить)

    Как это?

    Ответы: (10)
  11. (9) А я знаю?! Это твоя задача. [smile=^_^]

    Ответы: (12)
  12. (7) причем тут ИИ? Попытались обновить. Если ОК, то идём дальше. Если были ошибки - Отправить отчет об ошибках.

    ЗЫ Хотя, это можно в mlg увидеть. Но, хотелось бы всё же знать что за окно вылезло

    Ответы: (13)
  13. (10) теоретик? понятно

    Ответы: (14)
  14. 1Сергей Если были ошибки - Отправить отчет об ошибках.

    что по твоей классификации ошибки?
    если реально ошибка была - конфа тупо не обновится

  15. (12) Почему "теоретик"? Пользователь, который хочет кнопочку "Обновить фсе" [smile=^_^]

    А смысл? Семерка обновляется за 5-10 минут (с архивацией). Вот зачем?

  16. нет, всё-таки теоретик

    Ответы: (16)
  17. (15) Я тебя серьезно спрашиваю, а ты обзываешься.

    Ответы: (17)
  18. (16) у нас под 20 филиалов, 5 разных конф. Некоторые базы по 50 гигов, если там идёт пересчёт данных, то на 2 часа как минимум. Обновления должны проходить ночью, ибо днём простой вываливается в миллионные убытки.
    Вот счастье для кого-то сидеть ночами напролёт базы обновлять...

    Ответы: (18) (19) (22)
  19. 1Сергей Обновления должны проходить ночью, ибо днём простой вываливается в миллионные убытки.

    а зависший "на кнопочке "ок"" скрипт в 9 утра - это не миллионные убытки?

    Ответы: (20)
  20. (17) УРБД не предлагать?

    Ответы: (21)
  21. (18) Утром в 9:00 пришел админ, и запустил базу

  22. (19) там и так УРБД. 20 филиалов - это только центральные базы

    Ответы: (25)
  23. (17) Понятно. Но: обновление - это не архивация и обработать все исключительные ситуации очень и очень сложно. Простое решение (на мой взгляд) (как некоторые бы сказали - "совковое") - раз в неделю (или в месяц - по ситуации) админ работает с 0 до 5 утра. Следующим днем - не работает.

    Ответы: (24)
  24. Это не мне решать, у меня задача, я её решаю

  25. (22) бред.
    Ты программист или кто? Неужели тяжело запрограммировать обновление?

    (0) Для 8 использую sikuli ide очень простой порог вхождения, пробуй еще autoit, если не хочешь жабу и тебе нужно только винда, то используй autoit

    Какие могут быть ошибки, если ты будешь использовать версионирование md?

    Ответы: (27)
  26. (21) т.е. скриптом будут обновляться центральные базы, а в филиалы растекаться через УРБД?

    Ответы: (26)
  27. (25) да

  28. (24) Не тяжело (обновление). Тяжело обработать все возможные исключительные ситуации.
    "Версионирование" - а где это в семерке?

    Ответы: (28)
  29. (27) какие могут быть исключительные ситуации, если у тебя перед этим на копии был произведен тест, да это еще один шаг, но он позволяет отсеять 90% ожидания "а вдруг, что-то пойдет не так"?
    gcomp + git творят чудеса.

    Ответы: (29)
  30. (28) Еще один теоретик? [smile=^_^]
    Свет выключился... UPS тоже отрубился. Обновление не закончено.

    Ответы: (30)
  31. 24.12.2014 09:48:06 отредактировано pumbaEO

    (29) Да теоретик у которого jenkins поднят, тесты пишутся для 1с, автоматически обновляется 1с без участия админом, предупреждает в случаи неполадок, проверяет автоматом успешность обменов и т.д. Это все для 1с 8.2

    p.s.: да, про свет я не подумал, у тебя админы сидят на вело-динамо-машинах и как только свет выключается сразу начинают педали крутить быстро быстро?

  32. (0) говнорешение. Для семерки признак центральная она или периферийная или никакая - две таблички 1sdbset и 1ssystem. Создать - тьфуделов, временно подменить - два раза тьфу, написать пакетник с [GENERAL]
    AutoExchange=1 третий раз тьфу, одна строка в бат - файл, выполнить и засунуть старые таблы взад. всё.
    А они туд скрипты, мышотыки, придурке.

    Ответы: (32)
  33. 24.12.2014 09:52:44 отредактировано 1Сергей

    (31) Ты ваще не в тему :)

    Ответы: (33)
  34. (32) ога, я так понял, что для тебя засунуть md-яйку в файл выгрузки - окуеть проблема. В тему родной, в тему.

    Ответы: (34)
  35. (33) какой файл выгрузки? ты нифига не понял, родной

  36. Победил!
    Поставил OpenConf, Нашел скрипт по загрузке конфы, переписал его и теперь
    Если запустить 1С с параметром /C<ИмяФайлаМД>, то автоматически делается Загрузка измененной конфы

или зарегистрируйтесь чтобы ответить!