|
Открытие управляемой формы выбора через V82C.Application | ☑ | ||
---|---|---|---|---|
0
MRAK
03.01.13
✎
10:48
|
Приложение = вичи_СинхронизацияСервер.ПолучитьСоединениеПриложения(Объект.ИнформационнаяБаза);
Если НЕ Приложение = Неопределено Тогда Форма = Приложение.ПолучитьФорму("Справочник." + Объект.ИмяТипаВДругойИБ + ".ФормаВыбора",, Элемент); ВыбранныйЭлемент = Форма.ОткрытьМодально(); Если НЕ ВыбранныйЭлемент = Неопределено Тогда ТекущиеДанные.ПредставлениеВДругойИБ = ВыбранныйЭлемент.Наименование; КонецЕсли; КонецЕсли; Проблема с получением значения "ВыбранныйЭлемент". Получаю ComОбъект, у которого есть 2 свойства IsEmpty, UUID (у обоих значение "Ошибка чтения значения"). Что-то не могу допереть, как достучаться до свойств этого элемента? (по-идее, должен быть СправочникСсылка) |
|||
1
ДенисЧ
03.01.13
✎
11:13
|
Возвращает не элемент, а наименование...
|
|||
2
MRAK
03.01.13
✎
11:16
|
(1) в базе, из который подключаюсь, аналогичный код возвращает "СправочникСсылка".
с какого хрена-то наименование возвратит? |
|||
3
ДенисЧ
03.01.13
✎
11:16
|
(2) Ты возвращай из той базы. И нефиг по Оле брать объекты другой базы, геморрою не обереься
|
|||
4
MRAK
03.01.13
✎
11:19
|
(3) так в "той" базе нет объектов из "другой")
Хочется сделать обработку, где для пользователя удобно можно задать соответствия объектов двух баз. в толстом подобное работало без гемора - а в тонком какая-то засада... |
|||
5
MRAK
03.01.13
✎
11:32
|
А альтернативные варианты?
Сейчас думаю подключаться через "ComConnector", запросом выбирать данные из чуждой базы и выбрасывать на форму для выбора. Или есть что-то интереснее? |
|||
6
Serjio
03.01.13
✎
12:15
|
(0) Недавно тоже пришлось с такой задачей столкнуться.
В результате во второй базе добавил общий модуль и в нем функции, которые открывают нужные формы и возвращают ссылки. Как я понимаю в (3) тебе примерно то же советовали |
|||
7
MRAK
03.01.13
✎
12:23
|
(6) А, понял, спасибо.
Примера под рукой нет случайно? Буду благодарен |
|||
8
Serjio
03.01.13
✎
13:03
|
(7)
Функция СоздатьФайл(ВидОбъекта="", Идентификатор="") Экспорт Попытка Если ПустаяСтрока(Идентификатор) Тогда ФормаВладелец = ПолучитьФорму("Справочник.Файлы.Форма.ХранилищеФайлов"); ВладелецФайла = ОткрытьФормуМодально("Справочник.ПапкиФайлов.ФормаВыбора",,ФормаВладелец); Если ВладелецФайла <> Неопределено И НЕ ВладелецФайла.Пустая() Тогда Иначе Предупреждение(НСтр("ru = 'Для создания файлов необходимо выбрать папку, в которой они будут храниться.'")); Возврат Неопределено; КонецЕсли; Иначе ВладелецФайла = ДоработкиСервер.ПолучитьСсылкуСправочникаПоИдентификатору(ВидОбъекта,Идентификатор); Если ВладелецФайла=Неопределено Тогда Возврат Неопределено; КонецЕсли; ФормаВладелец = ПолучитьФорму("Справочник."+ВидОбъекта+".ФормаОбъекта"); КонецЕсли; // Создание из файла ПолноеИмяФайла = ""; РасширениеПодключено = ПодключитьРасширениеРаботыСФайлами(); Если РасширениеПодключено Тогда ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ВыборФайла.МножественныйВыбор = Ложь; ВыборФайла.Заголовок = НСтр("ru = 'Выбор файла'"); ВыборФайла.Фильтр = НСтр("ru = 'Все файлы (*.*)|*.*'"); РабочийКаталог = РаботаСФайламиВызовСервера.ПолучитьРабочийКаталог(ВладелецФайла); ВыборФайла.Каталог = РабочийКаталог; Результат = ВыборФайла.Выбрать(); Если Не Результат Тогда Возврат Неопределено; КонецЕсли; ПолноеИмяФайла = ВыборФайла.ВыбранныеФайлы[0]; Возврат РаботаСФайламиКлиент.СоздатьДокументНаОсновеФайла(ПолноеИмяФайла, ВладелецФайла, ФормаВладелец, Истина,,, ,, ); КонецЕсли; Исключение Инфо = ИнформацияОбОшибке(); Предупреждение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Ошибка создания нового файла: ""%1""'"), Инфо.Описание )); Возврат Неопределено; КонецПопытки; КонецФункции // СоздатьФайл() |
|||
9
sapphire
03.01.13
✎
13:08
|
(0) По-любому в этом коде никогда не увидишь тип СправочникСсылка поскольку цепляешься по COM/OLE...
|
|||
10
MRAK
03.01.13
✎
15:20
|
(9) это понятно)
|
|||
11
MRAK
03.01.13
✎
15:21
|
(8) спасибо!
посмотрим... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |