Имя: Пароль:
1C
1С v8
OLE... как в открытой форме изменить данные
0 Анцеранана
 
18.04.12
14:47
Люди я полный чайник в OLE подскажите плиз... Нужно открыть форму документа в базе , ввести туда наименование (автоматически) ,записать измененный объект и закрыть форму. Сейчас у меня как-то так:

V8 = Новый COMObject ("V81.Application");    
Соединение = V8.Connect("File="""+КаталогИБ+"""; Usr ="""+ИмяПользователя+""";");
...
НовыйЭлемент = СтрСправочник.СоздатьЭлемент();
ФормаЭлемента = НовыйЭлемент.ПолучитьФорму();
ФормаЭлемента.ОткрытьМодально();
ФормаЭлемента.ЭтотОбъект.Наименование = "666";    
НовыйЭлемент.Записать();
ФормаЭлемента.Закрыть();        

До открытьмодально все работает нормально, но наименование не заполняется автоматически и форма дальше висит на экране, а не закрывается... Хелп.
1 DrShad
 
18.04.12
14:48
накуя ее открывать? пиши наименование прямо в объект
2 butterbean
 
18.04.12
14:49
НовыйЭлемент.Наименование = "666";
а потом уже форму получай и т.п.
3 DrShad
 
18.04.12
14:50
(2) вот накуя нужна форма в ОЛЕ?
4 butterbean
 
18.04.12
14:50
и непонятно причем тут СОМ вообще
5 butterbean
 
18.04.12
14:50
(3) я не в курсе
6 Анцеранана
 
18.04.12
14:56
(1) (3) Я не правильно выразился... COM наверное.. Задание передо мной такое стоит. Нужно в открытую форму ввести автоматически цифры и записать... Так требует шеф... Это возможно вообще?
7 butterbean
 
18.04.12
14:59
(6) оно модально открывается, это значит - пока не закроешь код дальше выполнятся не будет
8 Анцеранана
 
18.04.12
14:59
(6) видимо чтобы проверить возможность интерактивного изменения (я предполагаю)
9 butterbean
 
18.04.12
15:01
(6) а закрывать тогда зачем?? оно же просто мигнет и все... непонятно
и все-таки, причем тут СОМ??
10 Анцеранана
 
18.04.12
15:03
(9) мигнет, запишется , так и должно быть. Проверка возможности интерактивного изменения без участия метаданных наверное (если я правильно шефа понял)
11 butterbean
 
18.04.12
15:05
(10) и много там элементов??
12 Анцеранана
 
18.04.12
15:07
(11) я так понял по одному надо создать для всех справочников конфигурации
13 DrShad
 
18.04.12
15:08
(8) ты же его все равно не увидишь, так как база не интерактивна при соеденении по COM
14 butterbean
 
18.04.12
15:09
вместо того чтоб нормально роли настроить твой шеф костыли какие-то сочиняет
15 Анцеранана
 
18.04.12
15:12
(13) я точно не разбираюсь в терминах, но вроде вы не правы. Я использую объект Application , а не ComConnector, который бы мне даже не разрешил получитьформу и написал бы что интерактивные изменения невозможны и т.д.
Так что есть предположение, что это все же OLE, а не COM////
16 Анцеранана
 
18.04.12
15:13
(14) Типа там фуева туча мест, где эти роли пограммно меняются , так что +1...Но что сделать то сказать снимай задачу и настраивай роли ...)) Не прокатит я 3 день работаю.
17 butterbean
 
18.04.12
15:13
да, в терминах ты точно не разбираешься
18 DrShad
 
18.04.12
15:14
(16) ты специалист или где? начальство вообще не должно тебе диктовать как достичь результат
19 butterbean
 
18.04.12
15:15
(18) франч наверно, а ТС падаван
20 butterbean
 
18.04.12
15:15
(15) а СтрСправочник - это что??
21 Анцеранана
 
18.04.12
15:16
(18) я точно знаю, что другие способы сложнее, там много вил..
(20)        МенеджерСправочники = V8.Справочники;
       
       Для Каждого СтрСправочник Из МенеджерСправочники Цикл

Он нормально получается
22 Анцеранана
 
18.04.12
15:24
Вопос (6) остается актуальным.. Можно ли ввести новый элемент справочника,открыть форму, заполнить там поле Наименование , закрыть форму с сохранением.. ?))чой-то я не так делаю...
23 butterbean
 
18.04.12
15:26
(22) открывай не модально, и перед открытие пиши Форма.ЗаписатьВФорме()
24 butterbean
 
18.04.12
15:26
(23)+ перед закрытием то есть
25 Шпион
 
18.04.12
15:29
бред!!!