Имя: Пароль:
1C
1С v8
Общий модуль через com-соединение
0 din107
 
06.01.13
21:14
Доброе время суток!!!

Подскажите, пожалуйста, подключаюсь из конфигурации на платформе 7.7 к конфигурации на платформе 8.2.
   
   Ком = СоздатьОбъект("v82.ComConnector");

   СтрокаПодключенияДляСервера = "Usr = " + Юзвер + "; Pwd = " + Пароль + "; Srvr="""+СокрЛП(АдресСервера)+""";Ref="""+СокрЛП(БазаДанных)+"""";


   Состояние("Соединяемся с базой данных...");
   Попытка
       База = Ком.Connect(СтрокаПодключенияДляСервера);
       Состояние("Соединение с базой установлено...");
   Исключение
       Сообщить("Не удалось подключиться по строке <" + СтрокаПодключенияДляСервера + ">: " + ОписаниеОшибки(),"!");
   КонецПопытки;

Можно ли как-то через переменную База обратиться к функциям общего модуля? Или обязательно, чтобы функции располагались в модуле внешнего соединения?
1 Нуф-Нуф
 
06.01.13
21:26
да. только у модуля должна быть галка внешнее соединение
2 din107
 
06.01.13
21:39
У меня есть общий модуль "ФункцииРаботыСSQL" в котором есть функция ВернутьЗначениеПереданногоПараметра(). Не очень монимаю, как правильно обратиться к этой функции? Пытался Так    Ком = СоздатьОбъект("v82.ComConnector");

   СтрокаПодключенияДляСервера = "Usr = " + Юзвер + "; Pwd = " + Пароль + "; Srvr="""+СокрЛП(АдресСервера)+""";Ref="""+СокрЛП(БазаДанных)+"""";


   Состояние("Соединяемся с базой данных...");
   Попытка
       База = Ком.Connect(СтрокаПодключенияДляСервера);
       Состояние("Соединение с базой установлено...");
   Исключение
       Сообщить("Не удалось подключиться по строке <" + СтрокаПодключенияДляСервера + ">: " + ОписаниеОшибки(),"!");
   КонецПопытки;
Результат = База.ОбщийМодуль.ФункцииРаботыСSQL.ВернутьЗначениеПереданногоПараметра();
Выдает ошибку, что функция не существует
3 XLife
 
06.01.13
22:01
убери ".ОбщийМодуль"
4 din107
 
06.01.13
22:28
(3) Пробовал, не помогает
Функция ВернутьЗначениеПереданногоПараметра() является экспортной. У модуля ФункцииРаботыСSQL галка внешнее соединение стоит.
5 zladenuw
 
06.01.13
22:29
(4) если галка стоит глобальный(вроде) . то без ФункцииРаботыСSQL просто База.ВернутьЗначениеПереданногоПараметра();
6 din107
 
06.01.13
22:31
(5) Галка глобальный не стоит. А галка обязателбно должна стоять? Без неё никак?
7 zladenuw
 
06.01.13
22:32
(6) нет не обязательно. хм странно. а сервер или клиент ? должно тогда работать
8 zladenuw
 
06.01.13
22:33
у нее экспорт есть ?
9 din107
 
06.01.13
22:34
(7, 8) Экспорт есть, У модуля установлены галки: Сервер и Клиент(обычное приложение)
10 din107
 
06.01.13
22:37
(9) а также галки "внешнее соединение" и "вызов сервера"
11 zladenuw
 
06.01.13
22:38
хз. попробуй в модуль внешнего запихнуть и вызвать. вообще должно работать
12 din107
 
06.01.13
22:39
Если я ставлю в модуль внешнего соединения, то всё отрабатывает. Мне интересно, как вызвать процедуры именно из общего модулю
13 din107
 
07.01.13
10:28
ап
14 din107
 
07.01.13
14:16
поднимем
15 ДенисЧ
 
07.01.13
14:26
(12) сделай переадресацию из модуля внешнего соединения в общий модуль.
16 din107
 
07.01.13
14:37
(15) т.е. я правильно понимаю, что в любом случае необходимо будет прописывать процедуру в модуле внешнего соединения? Минуя модуль внешнего соединения не получится?
17 ДенисЧ
 
07.01.13
14:38
(16) угу. Ну, насколько мне хватает опыта в этих делах. Но я могу ошибаться.
Поэтому сделай переадресацию - сэкономишь много времени
18 din107
 
07.01.13
23:28
А такой вопрос: если у меня есть справочник номенклатуры в 7-ке и в 8-ке. Я хочу их синхронизировать. Для того, чтобы мне получить значение реквизитов: Наименование, полное наименование, базовая ед. измерения в 8-ке мне необходимо будет для каждого реквизита делать обращение к базе? При этом в модуле внешнего соединения прописывать функции в зависимости  от того, какой реквизит я хочу получить?
19 din107
 
08.01.13
09:20
ап
20 Wobland
 
08.01.13
09:22
(18) ну верни структуру один раз
21 din107
 
08.01.13
09:23
(20) А как вернуть структуру через COMОбъект в 7-ку?
22 Wobland
 
08.01.13
09:25
(21) не знаю, я сплю. направление мысли понял?
23 Wobland
 
08.01.13
09:25
а ещё есть на свете КД...
24 din107
 
08.01.13
09:26
Я просто нигде не нашел этого. Видел только то, что можно можно получать только строковый тип.
25 din107
 
08.01.13
09:27
(23) Через конвертацию данных пока не хочу. Мне просто надо подключиться и вернуть определенные данные.
26 Wobland
 
08.01.13
09:30
(24) а число? вот не поверю, чтоб число не возвращалось. ну и как бы структура - общий тип для семёрки и восьмёрки (да же?)
27 din107
 
08.01.13
09:37
(26) Число - тоже можно возвратить. А вот про структуру в 7-ке я что-то не слышал. На сколько я знаю, она появляется только в 8-ке
28 Wobland
 
08.01.13
09:39
(27) тебе поискать общие типы для семёрки или восьмёрки? или сразу попробовать подключиться и получить, а сюда готовое положить?
29 din107
 
08.01.13
09:46
Готовое решение мне не надо, я его и сам смогу получить. Вопрос просто состоит в другом: кроме строки и числа через com-объект можно какие-нибудь вытянуть данные?
30 hhhh
 
08.01.13
14:09
вроде когда читаешь реквизит, она вытаскивает объект из базы в кеш. И больше к базе не возвращается. то есть делать обращение за каждым реквизитом в базу не требуется.