COM и встроенные функции

1. Yashazz 4709 16.02.11 22:42 Сейчас в теме
Приконнектился из 8.2 в 8.1, ну, допустим, в режиме v81.Application, и надо мне выполнить некий код там, куда я приконнектился. И тут мне заявляют, что метод Выполнить, равно как и Execute, ему неизвестен.
Это я торможу или это багфича общеизвестная? И если второе, то как выходить из положения?
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. cool.vlad4 2 16.02.11 22:46 Сейчас в теме
(1) :D ну Яков...Да это так - создавай процедуру Выполнение(Код) --> Выполнить(Код)
3. Yashazz 4709 17.02.11 20:22 Сейчас в теме
(2) Ага, в конфигурации, которая на поддержке без возможности изменения?

Или мне, извиняюсь, создать внешнюю обработку, где в модуле есть экспортируемая Выполнение(ТекстКода), которая собственно пинает Выполнить, загнать эту обработку в макет вызывающего модуля, сохранять из макета при запуске, запускать КомСоединение.ВнешниеОбработки.Создать(ИмяЭтойОбработки), и потом Обработка.Выполнение???

Согласись, изврат.
То есть как бы можно, но я искренне надеюсь на более прямые пути. Кроме того, это надо иметь права запуска внешних обработок, а сию дыру в последнее время стали затыкать.
7. cool.vlad4 2 18.02.11 13:00 Сейчас в теме
(3) Проблемы вообще не вижу...если надо то измени конфу, сделай процедуру, поставь заново на поддержку. при сильном желании это процедуру можно автоматизировать.
8. Yashazz 4709 23.02.11 23:23 Сейчас в теме
(7) Нель-зя. Таково условие задачи. Иначе ёжику понятно решение. :)
(5) Для задач обмена. Вот смотри: есть две базы 8.1, и надо мне выполнить нечто такое, что подходящих процедур нету и средства встроенного языка не дают. Ну, допустим, те же ВнешниеОбработки.Создать (они ведь только в 8.2 стали доступны на внешнем соединении). Или просто тупо что-то поделать такое, что иначе не достать, а только через Выполнить.
И как я это сделаю?

На самом деле, есть несколько действий, которые выполнить из внешнего соединения нельзя, не экспортируются они у 1С никак. Но если ТипЗнч или Тип я ещё выкручусь, то с Выполнить - неясно.

Интерес, конечно, весьма спортивный, ибо задачу свою я решил ещё до заведения темы, но хочу понять - я тормоз или не совсем?
9. Душелов 4013 25.02.11 11:55 Сейчас в теме
(8) Тогда любой код можно выполнять через коннектор, создавая все нужные объекты и работая с ними.
10. Yashazz 4709 25.02.11 12:25 Сейчас в теме
(8) КАК? Пример можешь привести?
4. tango 506 17.02.11 22:12 Сейчас в теме
изврат заложен здесь: "мне выполнить некий код ... в конфигурации, которая на поддержке без возможности изменения"
cool.vlad4; Spartan; Душелов; +3 Ответить
5. Душелов 4013 18.02.11 01:25 Сейчас в теме
А для каких задач подобное надо?
6. tango 506 18.02.11 07:40 Сейчас в теме
ага, ага. по-подробней, пожалуйста, как дошли до такой надобности.
конфа с поддержкой без изменений - понятно
подключиться к ней - понятно
что-то сделать в ней - понятно
а вот все вместе - нифига
11. cool.vlad4 2 25.02.11 13:13 Сейчас в теме
Через Новый COMОбъект("v81.COMConnector"); Сдается мне, что здесь http://infostart.ru/public/16568/ как раз через comconnector.
12. Yashazz 4709 25.02.11 18:26 Сейчас в теме
(11) Коллеги, ну вы внимательно читать-то умеете? То, что нужно мне, НЕ РАБОТАЕТ через COM-соединение, и уж тем более мне ни к чему та примитивная лажа, которая по ссылке и которую любой за пару минут наваяет, потому что она выполняет код на стороне вызывающей ИБ, а не на стороне вызываемой.
Ещё раз, для невнимательных:
Конструкция ИмяКомСоединителя.Выполнить(ТекстКода) НЕ РАБОТАЕТ. Знает ли кто-то способ решения или умный способ обхода этой проблемы?
13. cool.vlad4 2 25.02.11 22:29 Сейчас в теме
хочется выругатся и матюкнутся...(12) ты сам хоть читаешь, что умные люди пишут (8) - через коннектор и выполнять код на стороне вызываемой, если менять конфу не хочешь, и внешние обработки тебе не нравятся...а то странно как-то получается ты такой умный, и ежикам все понятно, а сказано четко, Выполнить не работает в глобальном контексте на стороне вызываемой...звони в 1С, что я могу еще сказать или дизасми dll-ки 1с-ские...вот мне надо чтобы встроенный язык запросов 1С подцеплял внешние таблицы и sql clr понимал, но только от моего хотения код 1С не поменяется...если получится обойти проблему скажи...
ЗЫ Я сталкивался с подобной проблемой, когда делал подключение из программы на c# и ничего лучше процедуры придумать не смог.
ЗЫ вообще как говорил один мой знакомый - вечер пятницы и суббота священны, их бог придумал для отдыха, так, что всем счастливых выходных.
14. Yashazz 4709 25.02.11 22:40 Сейчас в теме
(13) Набор эмоций. Цитата "8" - это моя реплика и есть.
Выполнять на стороне вызываемой нельзя. Вызывать внешние обработки в com-соединении 8.1 нельзя. Если ваш ответ в том, чтобы декомпилить dll типовой 1С, то спасибо, прервём дискуссию, шалом увраха вэшабат шалом.
15. cool.vlad4 2 25.02.11 22:50 Сейчас в теме
(14) шабат шалом ;) без обид, не было дискуссии, я ошибся кстати -(9) цитата не 8, насчет dll это я неудачно пошутил...но насчет проблемы подумаю...может чего придумаю.
19. ups3 30.03.11 13:45 Сейчас в теме
20. Spartan 365 30.03.11 14:11 Сейчас в теме
(19) Бот? 2 содержательнейших сообщения за 2 дня...
21. cool.vlad4 2 30.03.11 14:13 Сейчас в теме
(20) Тоже обратил внимание :D ...(19) Сколько будет 2 + "" + 3? ;)
16. Душелов 4013 26.02.11 00:08 Сейчас в теме
(12) Можно пример кода?
Или это все идет к "типа защита" конфигурации?
17. Yashazz 4709 27.02.11 12:44 Сейчас в теме
(16) Нет, никаких "защит" или их обходов. Это обычный обмен.
Пример кода, ну, допустим, такой:

ТипОбъектаВИсточникеСтрокой="Справочник.Контрагенты"; // определяется динамически, исходя из сложных условий
ТипОбъектаВИсточникеТипом=Неопределено;
COM_Источник.Выполнить("ТипОбъектаВИсточникеТипом=ТипЗнч("""+ТипОбъектаВИсточникеСтрокой+""")"); // это главное
Если ТипОбъектаВИсточникеТипом<>Неопределено Тогда
МетаОбъектВИсточнике=COM_Источник.Метаданные.НайтиПоТипу(ТипОбъектаВИсточникеТипом);
КонецЕсли;

Варианты иного способа найти метаданные не предлагайте, они и так очевидны. Я просто привёл один из случаев, которые мне нужны. Опять же, как определить ТипЗнч или Тип другими способами, тоже знаю, но пример, надеюсь, понятен.
18. Душелов 4013 28.02.11 09:48 Сейчас в теме
(17) Какой-то извращенный способ поиска объекта метаданных, когда можно сделать и через объект "метаданные"... Можнов все таки привести тот случай, когда без "выполнить" сделать нельзя?
cool.vlad4; +1 Ответить
22. cool.vlad4 2 03.06.11 10:14 Сейчас в теме
вчера копался в обработке и выполнял код через xml
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)