|
OLE соединение управляемое приложение - 1С 7.7 | ☑ | ||
---|---|---|---|---|
0
gash85
29.11.12
✎
15:39
|
1с 8.2 управляемое приложение
Подключаюсь к базе 1С 7.7 по оле с целью создать там элементы иерархического справочника. На моменте проверки считываемого объекта базы на принадлежность к группе выдает ошибку {(1)}: Метод объекта не обнаружен (ЭтоГруппа). Подскажите, в чем дело? в клиентской процедуре: глV7 = Новый COMОбъект ("V77.Application"); Каталог="/d\\user3\1c$\icc\"; Открыта = глV7.Initialize(глV7.RMTrade, Каталог+" /NАвто", ""); Если Открыта = 0 Тогда Сообщить("Ошибка открытия информационной базы"); Иначе _контрагенты=глV7.CreateObject("Справочник.Покупатели"); _группа=глV7.CreateObject("Справочник.Покупатели"); _контрагенты.ВыбратьЭлементы(); _страны=глV7.CreateObject("Справочник.Страны"); _страны.ВыбратьЭлементы(); _адреса=глV7.CreateObject("Справочник.Адрес"); СписДоступа = СписокМенеджеров(ГруппаДоступа); Для Каждого СтрЗап из СписДоступа Цикл СписНевыгрКлиентов = СписокНевыгруженныхКлиентов(); Для Каждого СтрНевыгр из СписНевыгрКлиентов Цикл СсылкаКлиентКод = СокрЛП(СтрНевыгр.Значение); Если Лев(СсылкаКлиентКод,2) = СтрЗап.Значение Тогда чек = 0; пока _контрагенты.ПолучитьЭлемент()=1 цикл док=_контрагенты.ТекущийЭлемент(); Если СокрЛП(док.код) = СсылкаКлиентКод Тогда чек = 1; Прервать; КонецЕсли; КонецЦикла; Если чек = 0 Тогда Клиент77 = глV7.CreateObject("Справочник.Покупатели"); Клиент77.Новый(); сч = 0; _группа.ВыбратьЭлементы(); Пока _группа.ПолучитьЭлемент()=1 Цикл Если _группа.ЭтоГруппа=1 и СокрЛП(_группа.код) = ПолучитьКодРодителя(СсылкаКлиентКод) Тогда группа = _группа.ТекущийЭлемент(); сч = 1; Прервать; КонецЕсли; КонецЦикла; Если сч = 0 Тогда группа = _группа=глV7.CreateObject("Справочник.Покупатели"); группа.НоваяГруппа(); группа.Наименование = ПолучитьНаименованиеРодителя(СсылкаКлиентКод); группа.Код = ПолучитьКодРодителя(СсылкаКлиентКод); группа.Записать(); КонецЕсли; |
|||
1
gash85
29.11.12
✎
15:40
|
не исправил как было, ошибка при _группа.ЭтоГруппа(),
без скобок это дополнительно тестил |
|||
2
чувак
29.11.12
✎
15:44
|
тычёё?
|
|||
3
чувак
29.11.12
✎
15:44
|
ЭтоГруппа это метод, а не атрибут
|
|||
4
gash85
29.11.12
✎
15:46
|
ЭтоГруппа()
Синтаксис: ЭтоГруппа() Назначение: Возвращает флаг группы: 1 - если элемент является группой, 0 - если это обычный элемент. т.е. все верно написано по логике |
|||
5
yanejsh
29.11.12
✎
15:50
|
выведи, какой тип значения у "_группа"?
|
|||
6
gash85
29.11.12
✎
15:51
|
(5)значение - COMОбъект
|
|||
7
yanejsh
29.11.12
✎
15:53
|
я с COM мало работал. Но может метод ЭтоГруппа() тоже надо на английском вводить?
|
|||
8
qw12er
29.11.12
✎
15:54
|
Посмотреть через отладчик не предлагать?=)
|
|||
9
gash85
29.11.12
✎
15:55
|
на тестовой базе файловой отработало все с пшиком. первоначально код был в общем модуле. Накатил на серверную базу - всегда подключение вылетало с ошибкой. Стал переписывать подключение OLE c директивой на клиенте - подключается, но в этом месте, где никогда раньше ошибки не было почему-то косяк. В чем дело - не пойму.
|
|||
10
gash85
29.11.12
✎
15:56
|
(8) и что я им увижу? смотрю значение _группа - COMОбъект, _группа.ЭтоГруппа() - ошибка. Большего там не увидишь.
|
|||
11
Trucker
29.11.12
✎
16:08
|
(10) Что возвращает _группа.Выбран() ?
|
|||
12
Drac0
29.11.12
✎
16:12
|
Через отладчик посмотри, возвращает ли код или наименование объекта?
|
|||
13
gash85
29.11.12
✎
16:15
|
_группа код, наименование возвращает.
ну и _группа.ВыбратьЭлементы()=1 и _группа.ПолучитьЭлемент()=1 |
|||
14
gash85
29.11.12
✎
16:22
|
Я не знаю как это объяснить. Код остался прежним, ошибка не вылетела. Страшно запускать повторно.
|
|||
15
yanejsh
29.11.12
✎
16:31
|
ты 4 раза создаешь объект Покупатели. что-то лишка
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |