Имя: Пароль:
1C
1С v8
Открытие нескольких форм через COMОбъект
,
0 КВА
 
14.02.18
13:26
Добрый день, прошу подсказать. Хочу сделать COMОбъект соединение из одной базы в другу, так что бы при нажатии на кнопку открывалась форма обработки. И таких вызовов может быть несколько, значит и несколько форм открытых. Встрял на том что любую форму открывает только модально. через операторы:
ОткрытьМодально();
или
DoModal();
Врезультате модальное окно блокирует последующие нажатие кнопки для инициализации еще одного окна.

Ниже код.

Если  ВременноеХранилище= Неопределено Тогда
                
        БазаИсточник=Новый COMОбъект("V83.Application");
        БазаИсточник.Connect("File=""D:\Кочеров\ИнфБазы\Бух(демо)"";Usr=""Любимов (администратор)"";");
        БазаИсточник.visible=false;
        
        Структура               = New Структура("Объект", БазаИсточник);
        
        ВременноеХранилище = ПоместитьВоВременноеХранилище(Структура,Новый УникальныйИдентификатор());
        
    Иначе
        БазаИсточник=ПолучитьИзВременногоХранилища(ВременноеХранилище).Объект;
        
    КонецЕсли;    
    
    Документ = БазаИсточник.Справочники.Контрагенты;
    Документ.ПолучитьФормуСписка().ОткрытьМодально();//Открыть();
1 Cool_Profi
 
14.02.18
13:27
Совсем дурная идея. КОМ не для этого изобретался
2 КВА
 
14.02.18
13:31
Согласен, но вот хотелось понять можно ли это реализовать, и почему открытие только модальное. Читал про актив сервер, не нашел ответа...
3 КВА
 
14.02.18
13:34
Поначалу подключался из 3.0 к базе 2.0 Думал может может из за того что вызов из управляемых форм. Потом тоже самое проделал и с однотипными базами. Открытие только модальное (
4 Адинэснег
 
14.02.18
13:52
*буэ*
5 Alex87r
 
14.02.18
13:55
(0) Зачем тебе открывать несколько форм в другой базе? Может быть по другому сделать
6 КВА
 
14.02.18
14:05
(5)Смысл вот в чем, есть самописные программы, Менеджер работает в оной базе №1, ему звонят на телефон, он берет трубку, далее идет поиск звонящего в другой базе №2, далее от условия если звонящий клиент, открывается обработка с скучай инфы, регистры, документы, справочники. По мере разговора и заполнения всей этой информации, ему могут звонить еще пару человек.
7 КВА
 
14.02.18
14:08
(5) Как организовать вот такую работу? я предложил использовать ctrl + c для соседней базы ))
8 drcrasher
 
14.02.18
14:09
(7) какая религия запрещает использовать обмены?
9 КВА
 
14.02.18
14:10
(8) Обмен через COMОбъект?
10 КВА
 
14.02.18
14:17
(8) То что нарисовать форму, и заполнять данными из другой базы, потом создавть документы, движение по регистрам. Это понятно что будет вернее всего. Вопрос у меня почему не работает открытие формы?
11 Alex87r
 
14.02.18
15:38
(10) Просто ком медленно работает. У менеджер на телефоне кто то висит, пока он зайдет в базу..
Сделайте еще одну базу, в которою при помощи обменов будет сваливаться вся нужная информация.
12 SSSSS_AAAAA
 
14.02.18
16:06
(6) И зачем тут COM? Почему именно СОМ? Просто запустить нужную базу что мешает? Почему надо именно через задний проход?
13 Tateossian
 
14.02.18
16:10
Используй Automation, там есть даже свойство Visible. И работай как в родном клиенте.
14 Tateossian
 
14.02.18
16:11
Кстати, в Консолидации активно юзается Automation Server, механизмы работы можно там посмотреть.
15 КВА
 
14.02.18
16:22
(13) Automation сервер (Automation server)
Свойства:

Visible (Visible)

Методы:

Connect (Connect)
NewObject (NewObject)
String (String)

Описание:

Система 1С:Предприятие может использоваться внешними приложениями в качестве Automation-сервера. При работе в качестве Automation-сервера 1С:Предприятие предоставляет доступ ко всем свойствам и методам своего глобального контекста, а также включение и выключение пользовательского интерфейса (главного окна 1С:Предприятия 8). Кроме того, Automation-сервер 1С:Предприятия имеет дополнительные свойства и методы для выполнения действий, специфичных для работы в режиме Automation.
Основное назначение Automation-сервера 1С:Предприятие в управлении приложением 1С:Предприятия 8 из других приложений и выполнение действий аналогичных интерактивным действиям, например, построение отчетов.
Для запуска системы 1С:Предприятие в качестве Automation-сервера из внешнего приложения, выполняется следующая последовательность действий:
создается COMОбъект с идентификатором V83.Application (для тонкого клиента V83C.Application);
16 КВА
 
14.02.18
16:23
(13) я же и использую Automation сервер, не?))
17 КВА
 
14.02.18
16:27
(11) я соединение планирую сохранять, и последующии вызовы делать через уже созданное. Работает нормально, только монопольно. Не магу открыть несколько форм. В этом и воппос.
18 Tateossian
 
14.02.18
16:45
(17) Я затупил, сорян.

Но

БазаИсточник.visible=false;

!!!!
19 Tateossian
 
14.02.18
16:49
(12) В старой бухгалтерии отчеты бухгалтерские были с веселой директивой #Если Клиент ДелаемКарточкуОСВ() #КонецЕсли. А теперь попробуй автоматизировать процесс формирования отчета на сервере безе переписьки отчета.

Решение очевидное: открывать на сервере клиентское приложение и делать что нужно.
20 КВА
 
14.02.18
17:12
(18) В точку, разобрался спасибо!