Имя: Пароль:
1C
1С v8
Обмен данными через OLE с формой 7.7
0 Pr0gLamer
 
01.03.13
13:03
Добрый день!
Задача - обмен данными с формой внешеного отчёта v7.7 через Форма.параметр.
принимающая сторона - 1с 7.7 параметр принимает,я его изменяю, и в v8 получаю не число,как задумывалось,а comОбъект. Собственно как получить число?
Вот код 8:
Перем V7;
Перем Открыта;

Процедура ПриОткрытии()
   V7 = Новый COMОбъект("V77.Application");
   Открыта =  V7.Initialize(V7.RMTrade, "/d"""+КаталогИБ+""" /n"+ИмяПользователяV7+" /p"+ПарольПользователяV7, "NO_SPASH_SHOW");
   Состояние("Подключаюсь к 7.7");
КонецПроцедуры





Процедура КнопкаВыполнитьНажатие(Кнопка)
       Если Открыта Тогда
       Конт = 1;
       V7.ОткрытьФорму("Отчет",Конт,"R:\bases\test\Test_perf\ExtForms\ПередачаПараметра8.ert");
       Сообщить(Конт);
КонецПроцедуры
Код 7:
Процедура ПриОткрытии()  
   Чис = Форма.Параметр;
   Текст = СоздатьОбъект("Текст");  
   Текст.ВставитьСтроку(1,Чис);
   Текст.Записать("R:\bases\test\test.txt");
   Чис = Чис + 1;
   Форма.Параметр = Чис;
   Форма.Закрыть(0);
КонецПроцедуры
1 lxndr
 
01.03.13
13:09
(0) типовая консолидация работает через пару вызовов
СохранитьЗначение / ВосстановитьЗначение
Попробуй так же.
2 dk
 
01.03.13
13:12

//V7.ОткрытьФорму("Отчет",Конт,"R:\bases\test\Test_perf\ExtForms\ПередачаПараметра8.ert");
V7.ExecuteBatch("ГлРасшифровка=1;ОткрытьФорму(""Отчет"",ГлРасшифровка,""R:\bases\test\Test_perf\ExtForms\ПередачаПараметра8.ert"");");
Сообщить(V7.EvalExpr("ГлРасшифровка"));
3 Pr0gLamer
 
01.03.13
13:15
(2) Ошибка при вызове метода EvalExpr
4 dk
 
01.03.13
13:24
а глобальная переменная ГлРасшифровка есть в 7-ке?
5 Pr0gLamer
 
01.03.13
13:26
(5) нет,сейчас сделаем,а без глобальных переменных обмен невозможно организовать?
6 dk
 
01.03.13
13:27
совсем ни одной глобальной нет? странно
7 Pr0gLamer
 
01.03.13
13:27
(4) оказывается была такая переменная в глобальном модуле,экспортная.
8 dk
 
01.03.13
13:29
можно попробовать попроще
Сообщить(V7.ГлРасшифровка);
9 Pr0gLamer
 
01.03.13
13:33
(8) возвращает Неопределено
10 dk
 
01.03.13
13:35
V7.ГлРасшифровка = 1;
V7.ОткрытьФорму("Отчет",V7.ГлРасшифровка,"R:\bases\test\Test_perf\ExtForms\ПередачаПараметра8.ert");
Сообщить(V7.ГлРасшифровка);
11 Pr0gLamer
 
01.03.13
13:45
(10) ошибка при установке атрибута контектса и 7 валится
12 Pr0gLamer
 
01.03.13
13:56
(1)
Конт = V7.ВосстановитьЗначение("ччч");
так тоже валится
13 lxndr
 
01.03.13
13:57
(11) (12) чё-то она часто валится
14 Pr0gLamer
 
01.03.13
13:59
карамба (
15 1Сергей
 
01.03.13
14:00
вообще, неудачное решение. Подключаясь по ОЛЕ, лучше не пользоваться никакими формами
16 Pr0gLamer
 
01.03.13
14:03
(15) как мне обмениваться данными с 7.7 не создавая объектов на приёмнике? через файл - это вообще изврат...
17 1Сергей
 
01.03.13
14:03
(16) запросом, перебором
18 Pr0gLamer
 
01.03.13
14:07
(17) хочу сформировать сложный отчёт на 7.7,полученные данные в СЗ и обратно на приёмник.как такое реализовать?
19 1Сергей
 
01.03.13
14:08
(18) см (17)
20 Pr0gLamer
 
01.03.13
14:09
(19) я должен буду в 8 продублировать код 7.7 ?
если нет,то чуть более подробно объясни пожалуйста
21 1Сергей
 
01.03.13
14:17
(20) да
22 Pr0gLamer
 
01.03.13
14:21
спасибо всем
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший