Имя: Пароль:
1C
1С v8
Delphi + 1C 8.2 + COM Соединение
0 acsbaks
 
24.08.11
09:59
Подскажите, если кто сталкивался:
С соединением проблем нет, если я пишу так:

Cat_Obj := s1C8_com_Connector.Справочники.Клиенты;
Cat_New := Cat_Obj.СоздатьЭлемент();
Cat_New.Наименование := par;
Cat_New.Записать();

То все хорошо, но я не знаю в какой справочник я буду записывать данные и какие реквизиты буду заполнять, проблема возникла на первом этапе

1. Cat_Obj := s1C8_com_Connector.Справочники[Inner_catalog];
2. Cat_New := Cat_Obj.СоздатьЭлемент();
3. Cat_New.Наименование := par;
4. Cat_New.Записать();

На строчке 1 возникает ошибка - "Недопустимое число параметров"!
вообщем куда копать????
1 lxs
 
24.08.11
10:02
тип Inner_catalog - строка;
2 lxs
 
24.08.11
10:03
к (1) - это вопрос)
3 lxs
 
24.08.11
10:04
4 acsbaks
 
24.08.11
10:04
Да и она равна - "Клиенты"
5 lxs
 
24.08.11
10:05
Читай статью. Без допила 1С не прокатит.
6 lxs
 
24.08.11
10:06
..и учись гуглом пользоваться, 15 секунд поиска по строке "delphi 1С Справочник["
7 acsbaks
 
24.08.11
10:06
Грустно грустно, ведь универсальную службу надо сделать, для любой конфы
8 lxs
 
24.08.11
10:09
(7) Увы.. С некоторыми версиями компиляторов VBA, помнится, такие же проблемы были и решались только таким образом.
9 Reset
 
24.08.11
10:14
я не в теме(не знаю, что такое дельфи), а s1C8_com_Connector.Вычислить("Справочники."+Inner_catalog) не сработает? :)
10 Reset
 
24.08.11
10:15
некрасиво конечно
11 acsbaks
 
24.08.11
10:20
Неа, пробовал и так
12 lxs
 
24.08.11
10:22
(9) порой инет, никто не нашел иного обхода. Хочешь стать пионЭром?
13 acsbaks
 
24.08.11
11:02
Так, ну с эти разобрался, конструкция работает

Cat_Obj := s1C8_com_Connector.NewObject('СправочникМенеджер.'+Inner_catalog);
Cat_New := Cat_Obj.СоздатьЭлемент();
Cat_New.Наименование := par;
Cat_New.Записать();

но как терь заполнить значение реквизита, имя которого я опять же не знаю, на строчку - 3 ругается при компиляции, delphi требует в квадратные скобки integer пихать

1. Cat_Obj := s1C8_com_Connector.NewObject('СправочникМенеджер.'+Inner_catalog);
2. Cat_New := Cat_Obj.СоздатьЭлемент();
3. Cat_Obj[Inner_number] := par;
4. Cat_New.Записать();
14 acsbaks
 
24.08.11
11:22
up?
15 acsbaks
 
24.08.11
11:53
Если кому интересно!!! как можно на зная явно реквизитов и имени справочника записать новый элемент

Cat_Obj := s1C8_com_Connector.NewObject('СправочникМенеджер.'+Inner_catalog);
Cat_New := Cat_Obj.СоздатьЭлемент();
SetDispatchPropValue(Cat_New,Inner_Number,par);
Cat_New.Записать();
16 Serginio1
 
24.08.11
11:57
В  Delphi 7 Проблема с вызовом методов 1С заключалась в том, что все параметры передаются по ссылке. Поэтому строковые параметры в методах лучше передавать как ''+Параметр. Тогда данные передаются по значению.
Второе это использование диспинтерфейсов. Смотри http://1c.proclub.ru/modules/mydownloads/personal.php?cid=115&lid=2019