Имя: Пароль:
1C
 
Обращение к элементу коллекции по имени через COM connector
0 mcarrowd
 
31.01.24
21:15
Имеется функция, которая возвращает менеджер справочника по его имени:

Функция ПолучитьСправочникМенеджер(ИмяСправочника)
	Результат = Справочники[ИмяСправочника];
	Возврат Результат;
КонецФункции


Требуется реализовать ее на VBA через v83.comconnector. Написан следующий код, который кидает ошибку времени выполнения Wrong number of arguments or invalid property assignment:

Function GetCatalogManager(App as Object, CatalogName as String) as Object
	Dim Result as Object
	
	Set Result = App.Справочники(CatalogName) 'здесь исключение
	Set GetCatalogManager = Result
End Function


Как правильно заменить эту конструкцию: Справочники[ИмяСправочника]?
1 Волшебник
 
31.01.24
09:19
Добавьте к функции Экспорт и вызывайте её.

Set Result = App.ПолучитьСправочникМенеджер(CatalogName)
2 mcarrowd
 
31.01.24
09:39
(1) хочется разобраться в проблеме. Может есть способ решить без изменений со стороны 1с. Вдруг кто-нибудь вспомнит.
3 Волшебник
 
31.01.24
10:03
Можно через внешнюю обработку вычислять выражения, заданные строкой
Как обратиться к справочнику по номеру из VB.NET#19
4 TormozIT
 
31.01.24
20:46
App.NewObject("СправочникМенеджер." + CatalogName)
5 Волшебник
 
31.01.24
20:55
(4) 👍
6 mcarrowd
 
31.01.24
21:59
(4) супер!

В других местах оригинального кода ещё были подобные конструкции:

СсылкаНаСправочникНоменклатура[ИмяРеквизита]

поэтому (3) сделал как-то так, через модуль в расширении. Видимо грабли с квадратными скобками везде разложены. Спасибо за наводку!
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.