Имя: Пароль:
1C
1С v8
Получить форму из другой БД через COM
0 Hellhackee
 
29.04.16
10:43
Всем добрый день! У меня появился вот такой вопрос: а можно ли как-то из Формы документа(справочника и тд) на управляемых формах открыть форму документа из другой базы на обычных формах.
Вот набросал код, но он не показывает. Все срабатывает, кроме последней строки: Форма.ОткрытьМодально()

БазаИсточник = Новый COMОбъект("V83.Application");
//Для обычных форм
Попытка
   ВнешняяБаза = БазаИсточник.Connect(ПутьКБазе);
        //БазаИсточник.Visible = Истина;
        Документ = БазаИсточник.Документы.ЗаявкаНаПриобретение.FindByNumber("000001587", Дата(2016,04,20,00,00,00));
        форма = Документ.ПолучитьФорму("ФормаДокумента");
        Форма.ОткрытьМодально();                        
    Исключение
        Сообщить(ОписаниеОшибки());
    Возврат;
    КонецПопытки;
    
        БазаИсточник = Неопределено;
1 ДенисЧ
 
29.04.16
10:45
Это очень дурной тон - открывать формы по кому.
Зачем тебе это вдруг понадобилось?
2 Hellhackee
 
29.04.16
10:45
Варианты с общими формами и выгрузкой запросом не предлагайте, т.к. документ не один, базу грузить так не хочется
3 Hellhackee
 
29.04.16
10:46
А как еще их можно открыть?
4 ДенисЧ
 
29.04.16
10:47
А их не надо открывать.
5 Hellhackee
 
29.04.16
10:47
(4) Нужна возможность открыть документ-основание из другой базы
6 ДенисЧ
 
29.04.16
10:48
Поверь - не нужна.
7 hhhh
 
29.04.16
10:48
(2) ОткрытьМодально грузит базу в десятки тысяч раз больше каких-то там запросов. Вас надо сразу в книгу рекордов гиннеса включить по загруживанию баз.
8 Hellhackee
 
29.04.16
10:49
(7) В моем случае ОткрытьМодально() вообще не работает
9 Diman000
 
29.04.16
10:57
Когда так открывали отчет (в УФ из ОФ) пришлось сделать у него управляемую форму.
10 b_ru
 
29.04.16
11:16
Если все-таки нужно показать данные из другой базы, то рисуй свою управляемую форму для показа данных, заполняй ее данными, полученными по COM, и показывай.
Хотя лучше конечно эти данные передавать как-нибудь организованно по расписанию и хранить в основной базе.
11 Hellhackee
 
29.04.16
11:23
http://документооборот.net/integracia/primer_integracii_s_1supp.html
Вот в этой конфе реализовано открытие из УФ обычной формы. Как так?
12 ДенисЧ
 
29.04.16
11:26
(11) "сама программа «1С:УПП» у пользователя не запускается и пользователь может вообще не знать о её существовании или месторасположении"

Значит, не ком
13 Hellhackee
 
29.04.16
11:37
(12)  БазаИсточник.Visible = ложь;
База тоже не откроется
14 1CIlya
 
29.04.16
12:33
В модуль менеджера открываемого объекта создай функцию

Функция ОткрытьЭлементПоСсылке(СтрокаУИд) Экспорт
    
    Ссылка = ПолучитьСсылку(Новый УникальныйИдентификатор(СтрокаУИд));
    Если ЗначениеЗаполнено(Ссылка) Тогда
        Ссылка.ПолучитьФорму().Открыть();
        Возврат Истина;
    КонецЕсли;
    
    Возврат Ложь;
    
КонецФункции

Пользуйся ей для открытия форм по Com.