Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Открытие управляемой формы выбора через V82C.Application

Открытие управляемой формы выбора через V82C.Application
Я
   MRAK
 
03.01.13 - 10:48
Приложение = вичи_СинхронизацияСервер.ПолучитьСоединениеПриложения(Объект.ИнформационнаяБаза);
        Если НЕ Приложение = Неопределено Тогда
            Форма = Приложение.ПолучитьФорму("Справочник." + Объект.ИмяТипаВДругойИБ + ".ФормаВыбора",, Элемент);
            ВыбранныйЭлемент = Форма.ОткрытьМодально();
            Если НЕ ВыбранныйЭлемент = Неопределено Тогда
                ТекущиеДанные.ПредставлениеВДругойИБ = ВыбранныйЭлемент.Наименование;
            КонецЕсли; 
        КонецЕсли; 

Проблема с получением значения "ВыбранныйЭлемент". Получаю ComОбъект, у которого есть 2 свойства IsEmpty, UUID (у обоих значение "Ошибка чтения значения").
Что-то не могу допереть, как достучаться до свойств этого элемента? (по-идее, должен быть СправочникСсылка)
 
 
   ДенисЧ
 
1 - 03.01.13 - 11:13
Возвращает не элемент, а наименование...
   MRAK
 
2 - 03.01.13 - 11:16
(1) в базе, из который подключаюсь, аналогичный код возвращает "СправочникСсылка".
с какого хрена-то наименование возвратит?
   ДенисЧ
 
3 - 03.01.13 - 11:16
(2) Ты возвращай из той базы. И нефиг по Оле брать объекты другой базы, геморрою не обереься
   MRAK
 
4 - 03.01.13 - 11:19
(3) так в "той" базе нет объектов из "другой")
Хочется сделать обработку, где для пользователя удобно можно задать соответствия объектов двух баз.
в толстом подобное работало без гемора - а в тонком какая-то засада...
   MRAK
 
5 - 03.01.13 - 11:32
А альтернативные варианты?

Сейчас думаю подключаться через "ComConnector", запросом выбирать данные из чуждой базы и выбрасывать на форму для выбора.

Или есть что-то интереснее?
   Serjio
 
6 - 03.01.13 - 12:15
(0) Недавно тоже пришлось с такой задачей столкнуться.
В результате во второй базе добавил общий модуль и в нем функции, которые открывают нужные формы и возвращают ссылки.
Как я понимаю в (3) тебе примерно то же советовали
   MRAK
 
7 - 03.01.13 - 12:23
(6) А, понял, спасибо.
Примера под рукой нет случайно? Буду благодарен
   Serjio
 
8 - 03.01.13 - 13:03
(7)
Функция СоздатьФайл(ВидОбъекта="", Идентификатор="") Экспорт

    Попытка 
        Если ПустаяСтрока(Идентификатор) Тогда
            ФормаВладелец = ПолучитьФорму("Справочник.Файлы.Форма.ХранилищеФайлов");
            ВладелецФайла = ОткрытьФормуМодально("Справочник.ПапкиФайлов.ФормаВыбора",,ФормаВладелец);
            Если ВладелецФайла <> Неопределено
                И НЕ ВладелецФайла.Пустая() Тогда
            Иначе
                Предупреждение(НСтр("ru = 'Для создания файлов необходимо выбрать папку, в которой они будут храниться.'"));
                Возврат Неопределено;    
            КонецЕсли;
        Иначе
            ВладелецФайла = ДоработкиСервер.ПолучитьСсылкуСправочникаПоИдентификатору(ВидОбъекта,Идентификатор);
            Если ВладелецФайла=Неопределено Тогда
                Возврат Неопределено;
            КонецЕсли;
            ФормаВладелец = ПолучитьФорму("Справочник."+ВидОбъекта+".ФормаОбъекта");
        КонецЕсли;
        
       // Создание из файла
 
        ПолноеИмяФайла = "";
        
        РасширениеПодключено = ПодключитьРасширениеРаботыСФайлами();
        Если РасширениеПодключено Тогда
            ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
            ВыборФайла.МножественныйВыбор = Ложь;
            ВыборФайла.Заголовок = НСтр("ru = 'Выбор файла'");
            ВыборФайла.Фильтр = НСтр("ru = 'Все файлы (*.*)|*.*'");
            
            РабочийКаталог = РаботаСФайламиВызовСервера.ПолучитьРабочийКаталог(ВладелецФайла);
            ВыборФайла.Каталог = РабочийКаталог;
            
            Результат = ВыборФайла.Выбрать();
            
            Если Не Результат Тогда
                Возврат Неопределено;
            КонецЕсли;
            
            ПолноеИмяФайла = ВыборФайла.ВыбранныеФайлы[0];
            Возврат РаботаСФайламиКлиент.СоздатьДокументНаОсновеФайла(ПолноеИмяФайла, ВладелецФайла, ФормаВладелец, Истина,,, ,, );
                
        КонецЕсли;
        
    Исключение
        Инфо = ИнформацияОбОшибке();
        Предупреждение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
        НСтр("ru = 'Ошибка создания нового файла: ""%1""'"),
        Инфо.Описание ));
        Возврат Неопределено;
    КонецПопытки;
    
КонецФункции// СоздатьФайл()
   sapphire
 
9 - 03.01.13 - 13:08
(0) По-любому в этом коде никогда не увидишь тип СправочникСсылка поскольку цепляешься по COM/OLE...
   MRAK
 
10 - 03.01.13 - 15:20
(9) это понятно)
 
 Рекламное место пустует
   MRAK
 
11 - 03.01.13 - 15:21
(8) спасибо!
посмотрим...

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует