|
Провести документ из C++ | ☑ | ||
---|---|---|---|---|
0
The_Immortal
25.01.14
✎
01:54
|
Всех приветствую!
Друзья, быть может, кто-нибудь работал с 1С из C++ Builder'а? Необходимо провести документ, соединившись через COM. Максимально упростил код:
Не могу понять каким образом впихнуть параметр "РежимЗаписиДокумента.Проведение" в OleFunction, чтобы выполнить "Записать(РежимЗаписиДокумента.Проведение)". Подскажите, пожалуйста. Спасибо! |
|||
1
kokamoonga
25.01.14
✎
02:38
|
(0) А по аналогии с этим не работает?
con.OlePropertyGet("Документы").OlePropertyGet("ПоступлениеДенег").OleFunction("СоздатьДокумент"); Что-то вроде: param = con.OlePropertyGet("РежимЗаписиДокумента").OlePropertyGet("Проведение") doc.OleFunction("Записать", param); Вроде бы логика подсказывает, что как-то так должно быть. |
|||
2
kokamoonga
25.01.14
✎
02:43
|
И кстати, разве через точку это нельзя писать? Или есть какие-то соображения почему нужно использовать именно геттеры? Это не холивара ради, интересно.
Я имею в виду например: con.Документы.ПоступлениеДенег.СоздатьДокумент() вместо: con.OlePropertyGet("Документы").OlePropertyGet("ПоступлениеДенег").OleFunction("СоздатьДокумент"); Вроде бы в документации описан именно такой вариант работы. |
|||
3
The_Immortal
25.01.14
✎
03:01
|
(1) Так я пробовал, но увы, получаю на это "Неизвестное имя".
И действительно, такого объекта как "РежимЗаписиДокумента" в 1С нету. Это тип... Как привестись к этому типу - не могу понять :( (2) На "con.Документы.ПоступлениеДенег.СоздатьДокумент()" получаю ошибку: 'Документы' is not a member of 'Variant' - что вполне логично. |
|||
4
kokamoonga
25.01.14
✎
03:13
|
(3) Какой же это тип, если это системное перечисление? :)
По идее оно должно быть доступно для объекта con |
|||
5
The_Immortal
25.01.14
✎
03:21
|
(4) Очень сильно ступил.
Ошибся в синтаксисе... Большое Вам спасибо! |
|||
6
kokamoonga
25.01.14
✎
03:24
|
(5) Не за что:) Просто угадал
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |