Имя: Пароль:
1C
1С v8
как передать сообщение через СОМ ?
,
0 zladenuw
 
10.06.13
11:42
во время выполнение алгоритма могут быть ошибки, как сообщить ? модуль выполняется в приемнике. Таскать текстовую строку ?
1 Галахад
 
гуру
10.06.13
11:45
А если поменять местами?
2 zladenuw
 
10.06.13
11:46
(1) зачем :)
нашел что можно Сообщение = Новый СообщениеПользователю();
Пробую
3 Infsams654
 
10.06.13
11:46
(0) в каком приемнике ? Где COM устанавливается? В чем проблемы, берешь из com-соединения что-то и сообщаешь
4 Infsams654
 
10.06.13
11:47
(2) это на УФ что-ли ?
5 zladenuw
 
10.06.13
11:49
(4) вызываю процедуру по ком. в него передаю структуру данных. все выполняется в приемнике. а источнику нужно вернуть сообщение если были ошибки.
6 zladenuw
 
10.06.13
11:49
(4) пока еще нет. но в планах, да
7 Defender aka LINN
 
10.06.13
11:56
(4) Во внешнем соединении никаких форм нет, если что.
8 Infsams654
 
10.06.13
11:56
(5) ну так и надо было сразу писать: приемник - это к кому соединяешься, а источник - это база из которой идет подключение. Просто, обычно com устанавливается, если от какой-то базы нужно получить данные (т.е., наоборот, подключенная база - это источник). А тут, надо в подключенной базе провести какие-то действия.
Что, на мой взгляд - не очень то правильно, для чего такие выкрутасы ?
9 Infsams654
 
10.06.13
11:59
(7) facepalm
10 zladenuw
 
10.06.13
12:01
(8) ну, а какая разница то. ну сделал я так.
11 Skylark
 
10.06.13
12:03
(0) сам же и ответил сразу - "таскать текстовую строку"
А какие еще варианты вообще могут быть?
12 zladenuw
 
10.06.13
12:05
(11) сообщение пользователю :)
13 Infsams654
 
10.06.13
12:10
(12) какое сообщение пользователю? как оно сможет передаться через COM ? Сделай вместо вызываемой процедуры функцию, чтоб она возвращала строку результата
14 Skylark
 
10.06.13
12:11
типа
Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

Ну попробуй. Расскажи, что вышло.
15 Infsams654
 
10.06.13
12:21
(8) "ну, а какая разница то". Да просто, см. в конфигураторе есть ветка "Внешние источники данных", что по аналогии как COM - внешний источник. "ну сделал я так" - молодец, только все-таки интересно - что же там нужно такое совершать во внешней базе ?
16 Skylark
 
10.06.13
12:26
Чего ты пристал к человеку. Может у него выгрузка документов или справочников каких-нибудь из одной базы в другу. Какая разница из какой базы это делать - откуда удобнее оттуда и делает. Соответственно в "другой" базе вполне может возникнуть необходимость в расчете и проведении документа, по результатам которых могут возникнуть ошибки.
17 zladenuw
 
10.06.13
12:28
(16) так и есть. спасибо за понимание.
может в дальнейшем хочу повесить на веб сервис.
18 zladenuw
 
10.06.13
12:35
(14) работает. создал в источнике. передал его в приемник :)
добавил текст сообщение :) и вывел сообщить после выполнения процедуры :)

Теперь другой вопрос. например при выполнение алгоритма были ошибки. как мне красиво впихнуть их в Сообщение пользователю ?
что бы было не в 1 строку а в несколько. как бы несколько сообщений пользователю, это реально ? или только форматировать кодом текст ?
19 Skylark
 
10.06.13
12:40
При ошибке каждый раз формируй новое сообщение пользователю но не сообщая. А в самом конце их показывай все.
20 Serginio1
 
10.06.13
12:45
Передай в свой СОМ объект массив и заполняй его ошибками. По окончании вызовов выводи этот массив куда угодно.
21 zladenuw
 
10.06.13
12:48
(20) в источнике создаю массив. а в приемнике создаю сообщение пользователю и помещаю в массив. а уже при завершение перебирать массив и ссобщать.
(19) а как их все сообщить ?  вернее получить. если буду создавать их в приемнике ?
22 Dethmont
 
10.06.13
13:47
СтруктураПараметров.Вставить("МассивОшибок",Новый Массив)
выполнитьПроцедуруПоСОМ(СтруктураПараметров);
Для кажДого Элемент Из СтруктураПараметров.МассивОшибок Цикл
  Сообщить(Элемент);
КонецЦикла;
23 zladenuw
 
10.06.13
13:50
(22) а зачем еще в структуру пихать ?
24 Dethmont
 
10.06.13
13:56
Ну не пихай! Я ж тебя не заставляю!
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс