Работа из 1С 7.7 с 8.3 через V83.Application. Вопрос

1. SanchoD 303 11.11.21 15:20 Сейчас в теме
Приветствую, коллеги!

Тут столкнулся с затыкой при связке 7.7 с 8.3 по OLE. Не работает метод Вычислить(Eval).
Т.е. вот такие конструкции вызывают "Ошибка в выражении!" :

V8.Вычислить("Справочники["+ИмяСправочника+"]")
V8.Eval("Ложь")
V8.Eval([1]+[2])


Но V8.Справочники.ИмяСправочника возвращает менеджер соответствующего справочника, если указывать конкретное имя вместо ИмяСправочника.

Не понимаю что не так. Кто-нибудь сталкивался с этим? Где собака порылась?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. VladimirB 16 11.11.21 15:37 Сейчас в теме
(1) Так попробуй. Без Eval
V8.Справочники["+ИмяСправочника+"]"
4. SanchoD 303 11.11.21 15:48 Сейчас в теме
3. alex_bob 246 11.11.21 15:40 Сейчас в теме
Первое выражение должно быть
V8.Вычислить("Справочники["""+ИмяСправочника+"""]") 

Третье и в восьмерке не работает.
Второе по идее должно возвратить 0
5. SanchoD 303 11.11.21 15:51 Сейчас в теме
(3) Тоже не взлетело. Третье выражение просто увидел в инете, решил попробовать. Причем по разному и V8.Eval(1+2) и V8.Eval("1+2").
Те же яйца. А второе по идее служит для передачи булево в 8-ку. Потому как из 7.7 никак не передать. 0 не канает.
6. VladimirB 16 11.11.21 15:57 Сейчас в теме
(4) Что у вас Есть v8 ?

Попытка
    V8 = СоздатьОбъект("V83.COMConnector");	
    ФактСтрокаПодключения = ПолучитьСтрокуПодключения(СтрокаПодключения);
    Соединение = V8.Connect(ФактСтрокаПодключения);
Исключение
    Сообщить(ОписаниеОшибки())
    Возврат;
КонецПопытки;

Соединение.Справочники[ИмяСправочника]
Показать
9. SanchoD 303 11.11.21 16:23 Сейчас в теме
(6)
	V8 = CreateObject("V83.Application");
	
	Попытка         
		Если (ПустоеЗначение(ИмяСервера)=0) И (ПустоеЗначение(ИмяБазы)=0) Тогда //серверная
			ИБ_8 = V8.Connect("Srvr="""+СокрЛП(ИмяСервера)+""";Ref="""+СокрЛП(ИмяБазы)+""";Usr="""+СокрЛП(Логин)+""";Pwd="""+СокрЛП(Пароль)+"""");		    
		ИначеЕсли ПустоеЗначение(ПутьКБазе)=0 Тогда //файловая
			ИБ_8 = V8.Connect("File="""+СокрЛП(ПутьКБазе)+""";Usr="""+СокрЛП(Логин)+""";Pwd="""+СокрЛП(Пароль)+"""");	
		Иначе
			Предупреждение("Не настроено подключение!"); 	
			Возврат 0;
		КонецЕсли;
		
		Сообщить("База 1С 8 открыта."); 
	Исключение       
		Сообщить("Не удалось подключиться к базе 1С 8!"); 	Возврат 0; 
	КонецПопытки;                                                              
	
	Возврат 1;
Показать
7. VladimirB 16 11.11.21 15:57 Сейчас в теме
(2) Блин, кавычки не нужны
V8.Справочники[ИмяСправочника]
8. alex_bob 246 11.11.21 16:02 Сейчас в теме
(5)
V8.Вычислить("Справочники."+ИмяСправочника)
10. SanchoD 303 11.11.21 16:25 Сейчас в теме
Что-то устал бодаться. Решил делать перенос наоборот, с подключением из 8.3 к 7.7.
11. VladimirB 16 11.11.21 16:28 Сейчас в теме
(7) и (8) не прошло ?
и
V8 = CreateObject("V83.Application");
12. VladimirB 16 11.11.21 16:35 Сейчас в теме
Еще так попробуй "V83С.Application"
13. VladimirB 16 11.11.21 16:37 Сейчас в теме
Ты же писал в (1), что V8.Справочники.Сотрудники работает. и это тогда должно сработать
V8.Справочники["Сотрудники"]
15. SanchoD 303 11.11.21 16:53 Сейчас в теме
(13) Мне конечно нужен был рабочий метод "Вычислить". Очень универсальный и помогает с тем же булевым. А тут еще пытался найти элемент по коду в 8-ке и новая засада, не пойми что возвращает, но только не OLE-объект (хотя по идее и найденный элемент и пустая ссылка это должен быть OLE).
14. EVKash 14 11.11.21 16:42 Сейчас в теме
(10) я в свое время брал https://infostart.ru/public/1040284/ за основу для переноса.
надо допиливать конечно, но как образец - самое то.
16. SanchoD 303 11.11.21 16:55 Сейчас в теме
(14) Да, спасибо. Пока своими наработками постараюсь воспользоваться.
17. VladimirB 16 11.11.21 16:56 Сейчас в теме
Через V8 = СоздатьОбъект("V83.COMConnector");
Тоже не прошло?
21. SanchoD 303 11.11.21 17:31 Сейчас в теме
(17) Там траблы с установкой компоненты. Поэтому через апликейшен стал делать. Но теперь точно надо решать вопрос с коннектором.
25. SanchoD 303 11.11.21 17:41 Сейчас в теме
(22) Да, спасибо. Я там не админ, поэтому передам инфу, пусть танцуют с бубном.
18. VladimirB 16 11.11.21 16:58 Сейчас в теме
(14) 10 местных денег стоит.
19. EVKash 14 11.11.21 16:59 Сейчас в теме
(18) с нуля писать дороже выйдет...
24. SanchoD 303 11.11.21 17:39 Сейчас в теме
(19) Ранее делал сбор данных в восьмерку из 7-к и 8-к, так что не с 0. Но освежить знания придется.
20. VladimirB 16 11.11.21 17:02 Сейчас в теме
Через - Конвертация данных удобно переносить. Правила настроить только.
23. SanchoD 303 11.11.21 17:36 Сейчас в теме
(20) Там какая-то самописная база, уникальная номенклатурная позиция это связка элемента справочника Номенклатуры и комбинации 2-х подчиненных справочников. В общем через Конвертацию это не вариант.
26. VladimirB 16 11.11.21 17:45 Сейчас в теме
(23) На будущее рекомендую, Сам писал разные обмены между базами. Потом открыл для себя (20) .
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот