Имя: Пароль:
1C
1С v8
Остаток отпуска сотрудника
,
0 NiceSanLeo
 
16.08.13
11:48
Добрый день!

Необходимо получить остаток отпуска сотрудника на дату из 1С 8.2 ЗиУП.
Использую Com-объект c#:
V82.COMConnector v82conn = new V82.COMConnector();
dynamic handle = v82conn.Connect(str);
dynamic libContacts = handle.Справочники.Сотрудники;
dynamic contact = libContacts.Выбрать();
dynamic lib = handle.Справочники.ОстаткиОтпусков;
dynamic res = lib.ОстатокОтпускаСотрудникаНаДату(contact, date);

Ошибка следующая:
System._ComObject не содержит определения для ОстатокОтпускаСотрудникаНаДату.

Подскажите, com объект в принципе не распознает все методы 1С?
Есть ли какой-то другой способ получить остаток отпуска сотрудника на дату?
1 Wobland
 
16.08.13
11:50
ну не видит твоё соединение такого метода у менеджера справочника. сама 1Ска, кстати, тоже
2 Wobland
 
16.08.13
11:50
(1) с крайним утверждением могу не согласиться
3 NiceSanLeo
 
16.08.13
12:24
Для всех справочников 1С методы при com-соединении одинаковые? Или это все же зависит от справочника?
4 GenV
 
16.08.13
12:50
(0) Как минимум в 1С остатки отпусков получаются так:
Результат = ОстаткиОтпусков.ОстатокОтпускаСотрудникаНаДату(Сотрудник, ДатаОстатков)

т.е. метод явно не у в модуле менеджера справочника ОстаткиОтпусков.
5 NiceSanLeo
 
16.08.13
13:18
Тогда к какому объекту применять метод? Какого типа объект ОстаткиОтпусков?
6 GenV
 
16.08.13
13:35
(5) Общий модуль. где-то так:

dynamic lib = handle.ОстаткиОтпусков;
dynamic res = lib.ОстатокОтпускаСотрудникаНаДату(contact, date);

ЗЫ Только еще для contact нужно организовать цикл с вызовом
contact.Следующий() иначе ссылки на элемент не будет
7 NiceSanLeo
 
16.08.13
13:43
почему-то не находит ОстаткиОтпусков:
System._ComObject не содержит определения для ОстаткиОтпусков.
8 Wobland
 
16.08.13
13:47
(7) что, модуль не видится из ком-соединения?
9 NiceSanLeo
 
16.08.13
13:49
Модуль ОстаткиОтпусков  - нет
10 NiceSanLeo
 
16.08.13
13:50
Из конфигуратора я должна видеть этот модуль?
11 Wobland
 
16.08.13
13:51
(9) может, у модулей как-то видимость настраивается? клиент, сервер там...
12 Wobland
 
16.08.13
13:52
(10) необязательно, он просто должен быть и быть виден внешнему соединению. а вот нам NiceSanLeo видеть просто необходимо
13 hhhh
 
16.08.13
13:52
(8) доступен этот модуль
14 NiceSanLeo
 
16.08.13
14:01
Доступен из com-соединения?
С использованием handle.ОстаткиОтпусков? Или как-то по-другому надо обращаться?
15 hhhh
 
16.08.13
14:08
(14) попробуйте

dynamic res = handle.ОстаткиОтпусков.ОстатокОтпускаСотрудникаНаДату(contact, date);
16 NiceSanLeo
 
16.08.13
14:23
тоже самое:
System._ComObject не содержит определения для ОстаткиОтпусков