|
v7: Как передать список значений из DLL (VBA.NET) в 1С 7.7? | ☑ | ||
---|---|---|---|---|
0
ksa-nsk
21.08.21
✎
05:05
|
Всех приветствую!
Программер сделал мне dll-ку на VBA.NET (ранее для 1С не делал), всё работает отлично, но не можем передать список со значениями. Числа и строки возвращаются правильно, а вот список... Проблему решил костылём вида получения строки с разделителем запятой, потом через ИзСтрокиСРазделителями() создать список и работать с ним, но в других dll-ках как-то же передают. Т.е. кто писал dll-ки, прошу поделиться советом, как правильно в dll упаковать и передать параметр. |
|||
1
acht
21.08.21
✎
09:18
|
Пригласи сюда своего программиста.
|
|||
2
Garykom
гуру
21.08.21
✎
09:43
|
||||
3
acht
21.08.21
✎
09:53
|
(2) У него 7.7, а ты прислал ссылку на данные для 8. Специальный тип данных COMSafeArray и все такое, ага-ага.
|
|||
4
Бертыш
21.08.21
✎
16:24
|
VBA на Вас NET :)
|
|||
5
Garykom
гуру
21.08.21
✎
16:28
|
(4) да с каждым годом "грамотность" типо "программистов" все более разочаровывает
|
|||
6
Бертыш
21.08.21
✎
16:33
|
(0) На ИТС доступна технология создания внешних компонент. Думаю и по 7.7 там будет пример кода компоненты
|
|||
7
Garykom
гуру
21.08.21
✎
16:37
|
(6) нету там как списки передавать
есть массивы но это только для 8-ки или сериализация (в строку как пример) или методы для работы с значениями по одному (по итератору или еще как) |
|||
8
Бертыш
21.08.21
✎
16:48
|
(7) Ну не знаю. В свое время в прайс листе фирмы 1С для 7.7 был продукт "Технология создания внешних компонент". Я даже покупал его когда то
|
|||
9
Garykom
гуру
21.08.21
✎
17:08
|
(8) продукт то есть
списки/массивы передавать тудя-сюдя для 1С 7.7 нет |
|||
10
acht
21.08.21
✎
17:29
|
(9) > списки/массивы передавать тудя-сюдя для 1С 7.7 нет
Господи, что го и микросервисы с людьми делают-то... Есть конечно. Почитай документацию - ту самую, про создание внешних компонент. Не нативных, а старых, совместимых с 7.7. Там целых три интерфейса из 1С при инициализации получаются, хоть справочники создавай, хоть таблицы значений возвращай. |
|||
11
Garykom
гуру
21.08.21
✎
17:39
|
(10) пруф
|
|||
12
Garykom
гуру
21.08.21
✎
17:57
|
||||
13
acht
21.08.21
✎
18:07
|
(11) Начни с "Методическая поддержка для разработчиков и администраторов 1С:Предприятия 8 / Разработчикам / Платформа, механизмы и технологии / Технология создания внешних компонент / Создание компонент с использованием технологии COM". Подразделы "Использование типа COM VARIANT при обмене данными", "Доступ к "1С:Предприятию" через механизм OLE Automation"
|
|||
14
acht
21.08.21
✎
18:08
|
(12) А, видимо ты и есть тот самый программер, который сделал ТС dll-ку. Это многое поясняет.
|
|||
15
ДенисЧ
21.08.21
✎
18:10
|
(13) "Как передать список значений из DLL (VBA.NET) в 1С 7.7?"
"Начни с "Методическая поддержка для разработчиков и администраторов 1С:Предприятия 8 " https://alittlebit.ru/upload/iblock/366/d97fe2bf7530a36d69275f5dcfbc7f8d.jpeg |
|||
16
NorthWind
21.08.21
✎
18:12
|
(11) я подозреваю, что нужно найти древнючую ЖКК по ВК для 7.7.
Лет 15 назад я ее читал, скан, кажется, был. Но сейчас раскопать ее целое дело, подозреваю. |
|||
17
acht
21.08.21
✎
18:14
|
(15) Там еше пара десятков слов есть - с тебя еще две картинки.
|
|||
18
Garykom
гуру
21.08.21
✎
18:18
|
(13) "У него 7.7, а ты прислал ссылку на данные для 8. Специальный тип данных COMSafeArray и все такое, ага-ага."
твое в (3) так где пруфы то? для 1С 7.7 |
|||
19
Garykom
гуру
21.08.21
✎
18:20
|
(14) нет
я знаю чем VBA от VB.Net отличается И делал бы на C++ или C# |
|||
20
Garykom
гуру
21.08.21
✎
18:21
|
(19)+ Или на Delphi/Lazarus
|
|||
21
NorthWind
21.08.21
✎
18:21
|
с учетом того, что в СЗ могут быть добавлены любые объекты 1С - подозреваю, что обработка в ВК дело не совсем тривиальное
|
|||
22
acht
21.08.21
✎
18:21
|
(18) Тебе уже даны все исходные данные для поиска. Собери жопу в горсть, найди или бумажную книжку или раздел на сайте 1С.
|
|||
23
Garykom
гуру
21.08.21
✎
18:23
|
(21) да можно в ВК отправить по технологии COM/OLE "ссылку" на некий объект 1С
ту же СЗ или ТЗ а потом внутри ВК ее хреначить только это изврат и тормоза |
|||
24
Garykom
гуру
21.08.21
✎
18:23
|
(23)+ и постоянные глюки
|
|||
25
acht
21.08.21
✎
18:24
|
(21) Дык оно средствами 1С и добавляется. Получаешь AppDispatch и дергаешь саму 1С сколько влезет.
|
|||
26
acht
21.08.21
✎
18:24
|
(23) О, упоротое мнение начинает дрейф от "невозможно" до "это изврат"
|
|||
27
Volodja
21.08.21
✎
18:25
|
(0) Как вариант:
Используй ЗначениеВСтрокуВнутр(_Объект); Посмотри как устроена строка и потом из DLL формируй и передавай ее в 1С ( ЗначениеИзСтрокиВнутр(_Строка) ) |
|||
28
Garykom
гуру
21.08.21
✎
18:25
|
(22)(25) ты не понимаешь чем отличается передача массивов/списков от работы внутри ВК по OLE Automation дергая 1С 7.7 как сервер?
|
|||
29
Garykom
гуру
21.08.21
✎
18:25
|
(26) это невозможно
если не понимаешь разницы, бесполезно разговаривать |
|||
30
Garykom
гуру
21.08.21
✎
18:26
|
(27) для 77 достаточно неплохой вариант
|
|||
31
Garykom
гуру
21.08.21
✎
18:26
|
(30)+ встроенной в 1С 77 сериализации на уровне платформы
|
|||
32
acht
21.08.21
✎
18:28
|
(29) У тебя го головного мозга, точно...
|
|||
33
acht
21.08.21
✎
18:28
|
(29) Ты книжку-то читал?
|
|||
34
Garykom
гуру
21.08.21
✎
18:29
|
(33) какую именно? ты ссылку так и не дал
(32) лучше го чем опилки |
|||
35
ДедМорроз
21.08.21
✎
18:35
|
Передается только тип VARIANT
Смотрим его описание и понимаем,что массив можно передать,другое дело,что 1с его не поймет,но если в код 1с сделать вставки на VbScript,то массив примется на ура. А еще есть объект Scripting Dictionary,который и передается и перебирается на ура. И в 1с он работает даже быстрее списка значений. Единственное,что нужно помнить - это границы процесса,хотя,если у вас dll,то там все должно быть InProcess. |
|||
36
Serginio1
22.08.21
✎
18:56
|
||||
37
Кирпич
22.08.21
✎
19:30
|
(34) В доке 1с всё написано. В Init 1с дает ссылку на IDispatch, через который можно надыбать свойство AppDispatch, через которое работает всё, что 1с позволяет делать с собой через COM. AppDispatch.СоздатьОбъект("СписокЗначений") и готово.
|
|||
38
Кирпич
22.08.21
✎
19:32
|
Но программер в (0) скорее всего делает просто COM dll, а не ВК. Иначе бы он доку прочитал и вопросов не задавал.
|
|||
39
Хосе
22.08.21
✎
20:31
|
(0) можно сериализовать в строку. Можно COMSafeArray, в 1С вроде умеют.
|
|||
40
acht
22.08.21
✎
23:08
|
(39) Геня, йоптыть. Секция 7.7. В теме написано русским языком "в 1С 7.7".
Какой, наъ, COMSafeArray? Ты вот свои статьи также пишешь, да. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |