![]() |
![]() |
![]() |
|
8.3 ком соединение с 7.7)) | ☑ | ||
---|---|---|---|---|
0
DmitriyDI
28.04.14
✎
12:55
|
было в 82 так подключался через ком и запускал обработку
Обработка = Оле.Обработки.Обработка1.Создать(); ТЗ.Дата = Обработка.ФункцияМодуля1(); Все работало, а на 83 не фига, причем в 83 просто так не обратишься к модулю пока не напишешь ОбработкаОбъект=РеквизитФормыВЗначение("Объект"); никто не знает, как это использовать для обращения к модулю обработки через ком из 77 к 83? |
|||
1
mikecool
28.04.14
✎
12:56
|
не пробовать в упр приложении запустить - не вариант?
|
|||
2
DmitriyDI
28.04.14
✎
12:57
|
(1) нет, а как, поподробнее?
|
|||
3
DmitriyDI
28.04.14
✎
13:00
|
(0) или как вариант. как обратиться к модулю формы обработки через ком, чтобы оттуда уже обратиться к модулю обработки?
|
|||
4
SleepyHead
гуру
28.04.14
✎
13:01
|
Если не хочешь возиться с РеквизитФормыВЗначение, весь функционал перенеси в модуль формы, и вызывай серверные процедуры модуля формы. В остальном все также почти, как в обычном приложении.
|
|||
5
DmitriyDI
28.04.14
✎
13:02
|
(4) что-то не могу найти как через ком обратиться к форме обработки, поэтому и делал через модулю формы.
|
|||
6
SleepyHead
гуру
28.04.14
✎
13:17
|
Так у тебя из 77 надо базу 8.3 открывать?
|
|||
7
DmitriyDI
28.04.14
✎
14:18
|
(6) да
|
|||
8
SleepyHead
гуру
28.04.14
✎
14:57
|
Ужас.. может, лучше наоборот сделать? :)
|
|||
9
DmitriyDI
29.04.14
✎
08:56
|
(8) да 7рочка у нас центральная база в этом механизме 8рок)))
|
|||
10
DmitriyDI
29.04.14
✎
09:04
|
тема еще актуальна, отзовитесь, кто знает, как сделать
|
|||
11
DmitriyDI
30.04.14
✎
09:18
|
up,
как через ком обратиться к форме обработки? |
|||
12
DmitriyDI
05.05.14
✎
15:12
|
пожалуй ап
|
|||
13
PLUT
гуру
05.05.14
✎
15:31
|
а конвертация не подходит?
|
|||
14
DmitriyDI
05.05.14
✎
15:38
|
(13) не совсем понимаю?
|
|||
15
PLUT
гуру
05.05.14
✎
15:41
|
КД и обмен через правила обмена, в 8-ке можно даже план обмена создать, чтобы регистрировать изменения для обмена
|
|||
16
DmitriyDI
05.05.14
✎
15:43
|
(15) да тут не то, есть база в которое открывается-закрывается период и другие настройки в других базах. других баз много и 7, и 8.1 и 8.2, вот появилась и база 8.3, и возникли вопросы
|
|||
17
DmitriyDI
05.05.14
✎
15:49
|
Обработка = Оле.Обработки.Обработка1.Создать();
Форма = Обработка.ПолучитьФорму("Форма"); ТЗ.Дата = Форма.ФункцияМодуляФормыЭкспортная1(); ошибка Форма = Обработка.ПолучитьФорму("Форма"); 1C:Enterprise 8.3.4.428: Интерактивные операции недоступны |
|||
18
DmitrO
05.05.14
✎
16:00
|
V83.COMConnector - клиент внешнего соединения, интерактивные операции/объекты недоступны;
V83.Application - толстый клиент; V83C.Application - тонкий клиент; Если необходимо работать с формами, то либо 2-ое либо 3-е. |
|||
19
DmitriyDI
05.05.14
✎
16:04
|
(18) спасибо Вам добрый человек, убежал пробовать
|
|||
20
DmitrO
05.05.14
✎
16:10
|
Еще. Если запуск происходит в управляемом режиме (а неверняка для 8.3), то через полученный OLE-объект доступно будет только то что "клиентское", ибо вызываем мы все с клиента, только он уже на сервер может прыгнуть.
|
|||
21
DmitrO
05.05.14
✎
16:20
|
Еще. Для того чтобы пользователя не оставалось открытое по OLE приложение, после соединения надо установить свойство Visible в Ложь.
Для 7ки: Оле.Visible = 0; |
|||
22
DmitriyDI
05.05.14
✎
16:23
|
(21) спасибо, а то я делал Оле = 0, но почему-то не срабатывало
|
|||
23
DmitriyDI
05.05.14
✎
17:20
|
(21) блин через
Оле=СоздатьОбъект("V83.Application"); он просто открывает 1с , а при Обработка = Оле.Обработки.Обработка1.Создать(); пишет значение не представляет агрегатный объект (Обработки) |
|||
24
DmitrO
05.05.14
✎
17:23
|
(23)Управляемый режим?
|
|||
25
DmitriyDI
05.05.14
✎
17:24
|
(24) да
|
|||
26
DmitrO
05.05.14
✎
17:26
|
поздравляю :)
см. (20) |
|||
27
DmitrO
05.05.14
✎
17:28
|
Глобальный контекст (Global context)
Обработки (DataProcessors) Использование: Только чтение. Описание: Тип: ОбработкиМенеджер. Используется для доступа к определенным в конфигурации обработкам. Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
28
DmitriyDI
05.05.14
✎
17:34
|
(27) вот это дела! и как же мне обратиться-то теперь
|
|||
29
DmitriyDI
05.05.14
✎
17:34
|
(28) добавление экспортной процедуры в общий клиентский модуль?
|
|||
30
EvgeniuXP
05.05.14
✎
18:05
|
поднимай веб-сервис...
|
|||
31
DmitrO
05.05.14
✎
19:54
|
Ну как, как..
Тебе же форма нужна была? Форма=Оле.ОткрытьФорму("Обработка.Обработка1.Форма"); Форма.ФункцияМодуляФормыЭкспортная1(); |
|||
32
DmitriyDI
06.05.14
✎
10:12
|
(31) Значение не представляет агрегатный объект (ОткрытьФорму) (
|
|||
33
DmitrO
06.05.14
✎
10:25
|
(32)тогда весь код показывай
|
|||
34
DmitriyDI
06.05.14
✎
11:11
|
Оле=СоздатьОбъект("V83C.Application");
Путь = СокрЛП(Путь); srvr = Лев(Путь,Найти(Путь,";")-1); ref = Прав(Путь,СтрДлина(Путь)-Найти(Путь,";")); Попытка Оле = Оле.Connect("Srvr="+srvr+ ";Ref="+ref+";Usr="+СокрЛП(Логин)+";Pwd="+СокрЛП(Пароль)); возврат(1); Исключение Сообщить("Не удалось подключиться к базе " +ref); возврат(0); КонецПопытки; Форма=Оле.ОткрытьФорму("Обработка.ПолучениеДатыЗапрета.Форма"); ТЗДанные.ДатаЗапрета = Форма.ВыполнитьЗадачуНаСервере(); |
|||
35
DmitriyDI
06.05.14
✎
11:12
|
(34) Форма=Оле.ОткрытьФорму("Обработка.ПолучениеДатыЗапрета.Форма"); на этом этапе ошибка (32)
|
|||
36
DmitriyDI
06.05.14
✎
11:15
|
если пишу "V83.Application, то просто обработка открывает базу и на этом этапе встает, без ошибки
|
|||
37
DmitriyDI
06.05.14
✎
11:16
|
(36) а нет, опять Значение не представляет агрегатный объект (ОткрытьФорму)
|
|||
38
DmitrO
06.05.14
✎
11:34
|
>>Оле = Оле.Connect(...
Тут ошибка. Когда используешь V83C.Application или V83.Application создается объект который непосредственно сам представляет объект автоматизации (IDispatch) глобального контекста (после соединения конечно). Поэтому так надо: Оле = СоздатьОбъект("V83C.Application"); УраСоединилось = Оле.Connect(... А когда используешь V83.ComConnector это соединитель, который функцией Connect ВОЗВРАЩАЕТ соединения (IDispatch объекты глобального контекста) из пула соединений. Поэтому в этом случае так надо: Connector = СоздатьОбъект("V83.ComConnector"); Оле = Connector.Connect(... |
|||
39
DmitriyDI
06.05.14
✎
11:42
|
(38) спасибо Вам большое! все получилось, единственное если пишу
Оле=СоздатьОбъект("V83.Application"); Оле.Visible = 0; база открывается в видимом режиме, так и должно быть? |
|||
40
DmitrO
06.05.14
✎
11:43
|
Это свойство надо устанавливать после соединения (что не очевидно) но это так.
|
|||
41
DmitriyDI
06.05.14
✎
12:12
|
(40) а если устанавливаю после, то ругается: Поле агрегатного объекта не обнаружено (Visible)
|
|||
42
DmitrO
06.05.14
✎
12:17
|
ну ёпть..
на 8.2.19.83 точно работало.. Давай точно: - релиз платформы - тип клиента (V83.Application или V83С.Application) проверю, будем писать в спортлото :) |
|||
43
DmitriyDI
06.05.14
✎
12:21
|
(42) 1С:Предприятие 8.3 (8.3.4.428)
|
|||
44
DmitriyDI
06.05.14
✎
12:22
|
+(43) V83.Application
|
|||
45
DmitriyDI
06.05.14
✎
12:24
|
(42) блин (не знаю, как смотрел раньше), все заработало! спасибо Вам большое!
|
|||
46
DmitrO
06.05.14
✎
12:35
|
ну вот, и на 8.3.4.437 тоже все работает :)
хотя написать есть о чем, из СП: Automation сервер (Automation server) Visible (Visible) Использование: Чтение и запись. Описание: Тип: Булево. Показывает/скрывает пользовательский интерфейс 1С:Предприятия. Доступность: Интеграция. Примечание: Истина - пользовательский интерфейс показан; Ложь - скрыт. Начальное значение после вызова метода Connect – Ложь. Откровенная ЛОЖЬ про начальное значение после Connect :) |
|||
47
DmitriyDI
06.05.14
✎
12:42
|
(46) это точно)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |