|
Можно ли из C# (COM соединение) вызывать внешнюю обработку? | ☑ | ||
---|---|---|---|---|
0
dagdag
18.04.17
✎
12:47
|
Добрый день!
Вот решил освоить 1С, а точнее взаимодействие с 1С извне, из приложений на C#. С подключением к 1С разобрался, как выбирать данные, добавлять их, вызывать имеющиеся в конфигурации функции тоже. Уже хотел было писать свою обработку и потом работать с нею из шарпа, как выясняется, что то что я приобрел "подешевле" - Розница Базовая - не позволяет ни вносить в нее изменения, ни добавлять свой код. Вроде как остается только писать внешние обработки, это можно. А как потом сделать ее (внешнюю обработку) доступной для вызыва из приложения на шарпе? Это вообще возможно? Спасибо! И прошу простить за наверно глупый вопрос... |
|||
1
Жан Пердежон
18.04.17
✎
12:50
|
Можно
|
|||
2
Serginio1
18.04.17
✎
12:50
|
||||
3
dagdag
18.04.17
✎
12:52
|
Serginio1, Спасибо!!!
|
|||
4
dagdag
18.04.17
✎
16:29
|
Не помогло ((( падает на
dynamic extProcess = com1Cserv.ВнешниеОбработки.Создать(@"D:\1C BASE\OtherExtCodes\SetRegisterRecord.epf", false); с ошибкой "ссылка на объект не указывает на экземпляр объекта"... Сама обработка нормально открывается в конфигураторе, подключена в 1С. Пробовал подключать другие, в том числе писать обработку с нуля = результат одинаковый... |
|||
5
dagdag
19.04.17
✎
15:27
|
Помогите пожалуйста, в чем дело? ((( сутки бьюсь, ответа нет (((
|
|||
6
arsik
гуру
19.04.17
✎
15:34
|
(4) Нафига так сложно? В Рознице есть справочник - внешние обработки. В него запихиваеш свою и пользуешся.
|
|||
7
arsik
гуру
19.04.17
✎
15:34
|
запихиваешь* пользуешься*
|
|||
8
dagdag
19.04.17
✎
15:52
|
Надо научиться работать с обработкой из шарпа...
|
|||
9
Serginio1
19.04.17
✎
16:26
|
А ты создал com1Cserv?
V82.COMConnector v82conn = new V82.COMConnector(); string cStr = "File=\""+sets.Path1C+"\";"; dynamic com1Cserv = v82conn.Connect(cStr); или V83 если у тебя база на 8.3 |
|||
10
Serginio1
19.04.17
✎
16:27
|
||||
11
Vaflya
19.04.17
✎
16:45
|
Можно попробовать Выполнить
СОМ.Выполнить("Код на языке 1С"); |
|||
12
dagdag
19.04.17
✎
20:39
|
С коннектом никаких проблем. легко получается выбрать данные или вызвать какую функцию.
Падает именно на строке dynamic extProcess = com1Cserv.ВнешниеОбработки.Создать(@"D:\1C BASE\OtherExtCodes\SetRegisterRecord.epf", false); с ошибкой "ссылка на объект не указывает на экземпляр объекта". |
|||
13
Serginio1
19.04.17
✎
22:25
|
Чему равен com1Cserv?
Вызови любой другой код например справочник. Проверь чему равен com1Cserv.ВнешниеОбработки Может прав не хватает |
|||
14
arsik
гуру
19.04.17
✎
23:25
|
Может это ограничение на открытие внешних обработок, которое недавно ввели в платформу?
|
|||
15
dagdag
20.04.17
✎
08:07
|
>>Чему равен com1Cserv?
COM объект. Живой. С его помощью можно свой запрос создать, данные из справочника выбрать... да все работает на ура. кроме внешней обработки ((( >>Может прав не хватает Этому пользователю я вообще не поленился и поставил все галочки в конфигураторе. >>это ограничение на открытие внешних обработок, которое недавно ввели в платформу? что это? |
|||
16
arsik
гуру
20.04.17
✎
08:55
|
||||
17
Остап Сулейманович
20.04.17
✎
08:57
|
(0) А почему бы не написать нужное на шарпах? А от 1С использовать только прикладные объекты? Так ИМХО будет правильно.
|
|||
18
dagdag
20.04.17
✎
09:03
|
http://www.online-ufa.ru/content/articles/security-warning-1c-8-3-9/
Это ПОМОГЛО!!! Больше не падает! а я полторасуток мучался... Вот г технология - не могла по русски писать, что ей не хватает... Спасибо!!! |
|||
19
dagdag
20.04.17
✎
09:11
|
>>А почему бы не написать нужное на шарпах?
я так и хотел, но конвертация кода 1С в C# выносит мне остатки мозга... имхо проще реализовать нужный мне фукционал в виде функций в обработке и вызывать их из шарпа. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |