Что нового

[Автоматизация] Добавление баз 1С пердприятия в список

Robin_

Новичок
Сообщения
4
Репутация
0
Пытаюсь добавить базу, все нормальна кликает щелкает.
Заметил что бывает исключение когда список пуст выходит окно типо
<a href="http://clip2net.com/s/2P03R"><img src="http://clip2net.com/clip/m0/1360650455-clip-54kb.png" alt="1360650455-clip-54kb"/></a>
Создал условие на проверку

Код:
If WinExists('1С:Предприятие') Then
 Send("{RIGHT}")
 Send("{ENTER}")		
 WinWaitActive('Запуск 1С:Предприятия')
 Send("{TAB}")
Else
 WinWaitActive('Запуск 1С:Предприятия')
 Send("{TAB 3}")
EndIf

Но оно почему то не срабатывает, что не так, скрипт не видит окна


Весь скрипт добавления
Код:
$NAME='Имя Базы'
$SERVER='8.8.8.8'
$PREF='AAA'

If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName) 

Run(@ProgramFilesDir & '\1cv82\common\1cestart.exe') 


If WinExists('1С:Предприятие') Then
 Send("{RIGHT}")
 Send("{ENTER}")		
 WinWaitActive('Запуск 1С:Предприятия')
 Send("{TAB}")
Else
 WinWaitActive('Запуск 1С:Предприятия')
 Send("{TAB 3}")
EndIf


; Далее дублировать для добавления нескольких баз

Send("{ENTER}")
WinWaitActive('Добавление информационной базы/группы')
Send("{DOWN}")
Send("{ENTER}")
WinWaitActive('Добавление информационной базы/группы')
Send($NAME) 
Send("{TAB}")
Send("{DOWN}")
Send("{ENTER}")
WinWaitActive('Добавление информационной базы/группы')
Send($SERVER) 
Send("{TAB}")
Send($PREF) 
Send("{ENTER}")
WinWaitActive('Добавление информационной базы/группы')
Send("{ENTER}")
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Robin_,
1. Для кода есть тег AutoIt.
2. ИМХО, Вы не в том разделе создали тему.

OffTopic:
Хреновая у Вас контора, раз Вы ее называете пердприятие
;D
 
Автор
R

Robin_

Новичок
Сообщения
4
Репутация
0
Где создать или может можно перенести?
Это название программы "1С Предприятие"
 

illja

Знающий
Сообщения
30
Репутация
10
Зачем так? можно ведь вот так

Делаем следующее.

Код:
Local $spisok = @AppDataDir&"\Roaming\1C\1CEStart\ibases.v8i" ;Путь к файлу
	$spisok = FileOpen($spisok, 1) ;Открываем для записи в конец файла
	FileWriteLine($spisok, '[Управление небольшой фирмой (демо)]') ; Название базы
	FileWriteLine($spisok, 'Connect=File="U:\8.2\DemoSmallBusiness"') ;путь к ней
	FileWriteLine($spisok, 'ClientConnectionSpeed=Normal') ;Скорость коннекта к базе
	FileWriteLine($spisok, 'App=ThickClient') ;толстый клиент
	FileWriteLine($spisok, 'Version=8.2') ;версия платформы
	FileClose($spisok) ;закрываем хендл файла

Путь к файлу приведен для 7ки.
 
Автор
R

Robin_

Новичок
Сообщения
4
Репутация
0
Да там есть не понятные значения

типо id

ID=f73e5417-d4df-4ad4-85ea-b01f5c3de518
OrderInList=33024
Folder=/
OrderInTree=33024
External=0
ClientConnectionSpeed=Normal
App=Auto
WA=1
Version=8.2
DefaultApp=ThickClient

Хотелось разобраться в своем скрипте
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Robin_
Скрипт не успевает обнаружить это окно
Попробуй так:
Код:
WinWait("1С:Предприятие", "", 5) ;ожидать появления окна до 5 секунд
If WinExists('1С:Предприятие') Then
   MsgBox(64, "1С", "Окно обнаружено")
EndIf
 
Автор
R

Robin_

Новичок
Сообщения
4
Репутация
0
Не помогло :'(


Добавлено:
Сообщение автоматически объединено:

При много извиняюсь помогло!

Спасибо!
 

illja

Знающий
Сообщения
30
Репутация
10
Непонятные значения он допишет сам, либо возьмет из умолчания.
Всеже считаю эмуляцию кликов в таком случае костылем и нежизнеспособным решением, но как знаете.
 

---Zak---

Скриптер
Сообщения
455
Репутация
120
2 Robin_
ID = внутренний идентификатор информационной базы.

Оставь его пустым - при загрузке пользователя 1С оно автоматически заполнится.

[<Наименование информационной базы>]
Connect - строка соединения с информационной базой,
ID - внутренний идентификатор информационной базы,
OrderInList - порядок в списке при представлении списком
Folder - наименование ветви в дереве информационных баз,
OrderInTree - порядок в ветви при представлении деревом.

ClientConnectionSpeed=Normal - скорость соединения
App=Auto - тип соединения - толстый, тонкий клиент.
WA=1
Version=8.2

2 illja
+1 за костыли !!!
 

darkwhite

Знающий
Сообщения
129
Репутация
5
или ищи окно по тексту в нем а не по названию
 

damien2008

Осваивающий
Сообщения
178
Репутация
34
а если использовать ?
Код:
Opt("WinTitleMatchMode", 3)
 
Верх