Имя: Пароль:
1C
1C 7.7
v7: Найти счет через OLE
,
0 Frost616
 
29.03.13
10:26
Подскажите, где туплю: подключаюсь к базе 7.7 через OLE
Счет = БазаОле.CreateObject("Счет"). Счет.НайтиПоКоду("10.9") в отладчике возвращает 1, но в отладчике Счет.ТекущийСчет() возвращает значение OLE. Как обратиться именно к найденному счету?
1 1Сергей
 
29.03.13
10:30
(0) а зачем тебе на этой стороне объект той базы? Обращайся к его свойствам
2 andreymongol82
 
29.03.13
10:31
Смотря что с эти счетом делать?
3 Frost616
 
29.03.13
10:32
(1) мне на той стороне надо заполнить реквизит справочника (база OLE - приемник)
4 1Сергей
 
29.03.13
10:34
(3) дык, заполняй. Не вижу проблем
5 andreymongol82
 
29.03.13
10:35
Счет.ЧтоТОТамзаполнить = <Какое-нибудь значение простого типа>
6 Frost616
 
29.03.13
10:36
(4) Счет.ТекущийСчет() возвращает значение OLE, а не ссылку на счет в плане счетов, в этом проблема.
7 1Сергей
 
29.03.13
10:36
(6) просто текущая база так отображает ОЛЕ-шные объекты.
8 Галахад
 
гуру
29.03.13
10:37
(6) И справочник тоже значение OLE...
9 Frost616
 
29.03.13
10:38
Пишу МатериалыОле.СубСчет10 = Счет.ТекущийСчет() не заполняет...
10 НаборДанных
 
29.03.13
10:39
(0)Там же вроде .ТекущийЭлемент(), не?
11 Галахад
 
гуру
29.03.13
10:40
БазаОле.CreateObject("Счет").НайтиПоКоду("10.9")
12 Frost616
 
29.03.13
10:40
(10) нет
(11) так и делаю
13 1Сергей
 
29.03.13
10:40
(11) интересное решение. И как потом к нему обращаться?
14 forforumandspam
 
29.03.13
10:41
Никогда так не пиши.

Счет = БазаОле.CreateObject("Счет");
Если Счет.НайтиПоКоду("10.9") = 1 Тогда
  ДокументOLE.Счет = Счет;
КонецЕсли;
15 1Сергей
 
29.03.13
10:41
Счет = БазаОле.CreateObject("Счет");
Счет.НайтиПоКоду("10.9");

так надо
16 Галахад
 
гуру
29.03.13
10:41
(12) Сравни с (0)
17 forforumandspam
 
29.03.13
10:42
"Счет.ТекущийСчет() возвращает значение OLE." все ссылки из OLE будет так выдавать.
18 Frost616
 
29.03.13
10:46
(14) Ошибка: 1С:Предприятие: Неверное присвоение значения. Используйте: .ТекущийСчет()
19 forforumandspam
 
29.03.13
10:47
(18) Упс. ДокументOLE.Счет = Счет.ТекущийСчет();
20 Frost616
 
29.03.13
10:51
(19) да вроде так и делаю
21 forforumandspam
 
29.03.13
10:53
(20) ну и всё.
22 Frost616
 
29.03.13
11:02
Сейчас попробую
МатериалыОле.СубСчет10 = БазаОле.EvalExpr("СчетПоКоду(""10.9"")");
23 Frost616
 
29.03.13
11:05
+(22) так заработало!
24 Frost616
 
29.03.13
11:07
А все равно интересно почему Счет.ТекущийСчет() не катит?