Имя: Пароль:
1C
1С v8
Открытие справочника по COM соединению
,
0 Mandel
 
16.10.12
17:07
Подскажите можно ли открыть формы выбора в другой конфигурации по COM соединению.

Connector = Новый COMОбъект("V82.Application");
...
   СтандартнаяОбработка = Ложь;
   ФормаВыбора = Connector.ПланыСчетов.Хозрасчетный.ПолучитьФормуВыбора();
   Элемент.Значение = ФормаВыбора.ОткрытьМодально();

у меня зависает на открытии формы.
1 Mandel
 
16.10.12
17:07
И можно ли запросом получить данные другой таблицы?

   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    Номенклатура.Код,
                  |    Номенклатура.Наименование КАК Наименование
                  |ИЗ Connector.Справочник.Номенклатура КАК Номенклатура
                  |УПОРЯДОЧИТЬ ПО
                  |    Наименование";
                  Выборка = Запрос.Выполнить().Выгрузить();
2 YF
 
16.10.12
17:09
(1) Это изврат какой-то. Ошибку-то какую выдает эта конструкция?
3 ptiz
 
16.10.12
17:09
Запрос = Connector.NewObject("Запрос", ТекстЗапроса);
текст запроса - обычный, без извратов вида "Connector.Справочник"
4 Mandel
 
16.10.12
17:11
О. Отлично. А с первым вопросом как быть?
5 Kashemir
 
16.10.12
17:12
6 Rebelx
 
16.10.12
17:12
(0)99% - не зависает, а форма открывается. но засада - иногда (часто) она открывается на заднем плане. Alt+tab тебя спасет
7 Infsams654
 
16.10.12
17:12
(4) а для чего это ?
8 Mandel
 
16.10.12
17:12
Да я не увидел, что у меня добавилась тема.
9 Mandel
 
16.10.12
17:13
Та учетка старая...запутался просто
10 Rebelx
 
16.10.12
17:14
+(6) проблема решается. но за небольшую мзду
11 Mandel
 
16.10.12
17:15
Да. ВЫ правы. На заднем фоне открывается ((
12 Mandel
 
16.10.12
17:15
как решается?
13 hhhh
 
16.10.12
17:17
(11) сделайте список счетов в этой базе. Из него и выберете. Зачем, чтобы выбрать счет вам нужно в другую базу лезьть? Это же бред.
14 Mandel
 
16.10.12
17:20
У меня была такая идея. Так просто удобнее пользователю.
А вот как например отобразить в базе справочник номенклатура из другой базе в том виде, который он есть там (я имею имею ввиду иерархию). Просто и быстро не получитс?
15 Mandel
 
16.10.12
17:42
Запрос = Connector.NewObject("Запрос", ТекстЗапроса);

А дальше Выполнить() нельзя использовать?
16 Mandel
 
16.10.12
17:43
Execute()? Только по-английски?
17 Mandel
 
16.10.12
17:43
Разобрался
18 Rebelx
 
16.10.12
17:45
(13)никакого бреда. зачем делать два раза то что можно сделать один раз? т.е. зачем рисовать существующую форму, если ее можно открыть?
19 wowik
 
16.10.12
17:51
(0) - фокус ввода пропадает, иногда помогает - v8: Проблема с формой, открываемой в com-соединении  но не всегда.
20 Mandel
 
16.10.12
17:55
Млин. А обход с иерархией можно делать?
Без параметров в choose все отрабатывает

   Запрос = Новый Запрос;
   ТекстЗапроса = "ВЫБРАТЬ
                  |    Номенклатура.Ссылка КАК Ссылка
                  |ИЗ
                  |    Справочник.Номенклатура КАК Номенклатура
                  |ИТОГИ ПО
                  |    Ссылка ИЕРАРХИЯ";
                  Запрос = Connector.NewObject("Запрос", ТекстЗапроса);
                  Выборка = Запрос.Execute().Choose(QueryResultIteration.ByGroupsWithHierarchy);
21 wowik
 
16.10.12
18:08
Connector.QueryResultIteration.ByGroupsWithHierarchy
22 Mandel
 
16.10.12
18:11
А нельзя как-то отобразить весь справочник номенклатура с иерархией в другой базе?
23 wowik
 
16.10.12
18:19
(22) Как вариант: 1.Создать обработку в текущей базе. 2 добавить табличное поле  с типом дерево значений 3. заполнить дерево с использованием запросов 4. вывести дерево. Помогает избавиться от модальных форм в подключенной базе. Можно использовать "COMConnector"(легче, быстрее), а не "Application"
24 Mandel
 
16.10.12
18:26
чем легче? методы теже самые?
25 Mandel
 
16.10.12
18:29
Вот я сделал запрос. вывел на форму дерево значений.
а обходить как запрос с иерархией чтобы добавить строки с иерархией? Я же не знаю сколько уровней. Или узнавать в запросе?

   Запрос = Новый Запрос;
   ТекстЗапроса = "ВЫБРАТЬ
   |    Номенклатура.Ссылка КАК Ссылка
   |ИЗ
   |    Справочник.Номенклатура КАК Номенклатура
   |ИТОГИ ПО
   |    Ссылка ИЕРАРХИЯ";
   Запрос = Connector.NewObject("Запрос", ТекстЗапроса);
   Выборка = Запрос.Execute().Choose(Connector.QueryResultIteration.ByGroupsWithHierarchy);
26 wowik
 
16.10.12
18:55
(24) - есть ограничения, но в данном случае подойдет. (25) - см. справку работы с деревом значений, по родителю новый узел: если родитель = неопределено тогда новая строка иначе добавить строки у текущей строки...
27 Mandel
 
16.10.12
19:24
Это понятно. Но я же буду обходить запрос. мне получается надо итеративно обходить запрос?