Имя: Пароль:
1C
1C 7.7
v7: OLE. При указании неверного имени пользователя ничего не происходит
0 live in sky dreams
 
16.08.18
15:58
Соединяюсь с семерочной базой по OLE
Указываю строку соединения вида:
СтрокаПодключения =  """" + ПутьКПлатформе + """" + "enterprise /d""" + ПутьКБазе + """"    
        + ?(ЗначениеЗаполнено(ИмяПользователя), " /n", "")  + """" + СокрЛП(ИмяПользователя)  + """"  
        + ?(ЗначениеЗаполнено(ПарольПользователя), " /p", "") + """" + ПарольПользователя + """";

Далее инициализирую соединение

СоединениеУстановлено = СоединениеСБазойИсточником.Initialize(СоединениеСБазойИсточником.RMTrade, СтрокаПодключения,"NO_SPLASH_SHOW");

Если логин и пароль пользователя указаны верно - то соединение проходит нормально. Если же ошибка в логине или пароле - просто висит процесс 1Cv7 на этапе входа в базу. Не ошибок, не предупреждений.. Ничего.
Как-то можно с этим бороться?
1 aka AMIGO
 
16.08.18
16:02
Может, Попытка/Ислючение помогут?
2 Salimbek
 
16.08.18
16:09
(1) Скорее - анализировать СоединениеУстановлено, и если нет, то СоединениеСБазойИсточником="";
(0) ИМХА, намного правильнее заводить как надо Пользователя и Пароль, тогда не придется мучить голову над обработкой такой исключительной ситуации.
3 aka AMIGO
 
16.08.18
16:10
Кстати, "СоединениеУстановлено " должно что-то возвращать, вроде как 1 при установленном и "0" при ошибке
Проверь
4 live in sky dreams
 
16.08.18
16:12
Оно все в попытку и обернуто.
Вопрос в том - как понять что не происходит на стороне семерки авторизации а просто бесхозно висит(не зависло) окно и послушно ждет ввода логина и пароля? Восьмера из которой подключаюсь ждет результ, окно семерки ждет логин и пасс, все ждут, все висит, ошибок нет...

(2),(3) В СоединениеУстановлено что-то возвращается когда есть какой то результат, а тут нет результата..
5 aka AMIGO
 
16.08.18
16:20
При "неверном открытии" обычно появляется окно выбора открываемой базы
6 aka AMIGO
 
16.08.18
16:20
Или так: ПустоеЗначение(СоединениеУстановлено)=1
7 aka AMIGO
 
16.08.18
16:22
+6 пардон, это-ж 8-ка..
8 uno-group
 
16.08.18
16:26
Ну дык оно ждет пока введут правильный пароль. Как вариант самому парсить и проверять файл Юзерс что такой пользователь с таким паролем есть и только потом пытаться запустить 1с. иначе ругаться, что пароль не правильный.
9 Йо
 
16.08.18
16:43
Не надо указывать неверное имя пользователя и пароль.
Напиши правильное в коде или в каком-нибудь файле с параметрами.
10 HawkEye
 
16.08.18
16:52
(0) в 7 ке в ПриНачалеРаботыСистемы - сохраняй в файл время и имя входа а 8-кой проверяй этот файл... если файла нет - значит 7-ка не запустилась
11 live in sky dreams
 
16.08.18
16:52
(8)(9)Я не знаю ни пользователей ни паролей тех кто будет этим пользоваться.

"Не надо указывать неверное имя пользователя и пароль." - ну конечно же не надо :) Но как пользователь узнает о том, что он ввел неверно что-то если опечатался?
12 live in sky dreams
 
16.08.18
16:53
(10) менять конфу не вариант... Я вот думаю может поставить обработку ожидания.. И просто по таймауту рубить...
13 HawkEye
 
16.08.18
17:58
(12) лезь тогда в users.usr - парси его, вытаскивай логины пользователей и каталоги пользователей, потом проверяй если в каталоге пользователя 1cv7.lck - если есть значит зашел
14 Йо
 
16.08.18
18:33
(11) и не надо тебе знать этих пользователей. Сделай одного для своей задачи. Но лучше вообще не связываться с оле. Оно только выглядит красиво. А по сути медленно, нестабильно и куча проблем типа (0). Текстовые или хмл файлы для обмена может не так красивы, но в итоге лучше.
15 G-Re
 
16.08.18
18:40
Ты же сам вроде указываешь /n и /p, то есть говоришь, что пользователь и пароль должны быть введены руками. Вот она и ждёт этого ввода. Кажется так.
16 Базис
 
naïve
16.08.18
18:45
(15) Нет, это ключи cli для полей логина и пароля.
17 Злопчинский
 
16.08.18
19:34
(0) учимся говорить по-русску
"Не ошибок, не предупреждений..."
следует читать как
нИ ошибок, нИ предупреждений

;-)
18 Злопчинский
 
16.08.18
19:37
эээээ, меня одного напрягло
?(ЗначениеЗаполнено(ИмяПользователя), " /n", "")
..как бы первым параметром должно быть ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ, а не значение...?
..или я чего-то не знаю/не понял...
19 Злопчинский
 
16.08.18
19:40
Тьфу, блин, это ж код на стороне снеговика... сорри..
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс