Имя: Пароль:
1C
1С v8
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) это точно)