Имя: Пароль:
1C
1С v8
Запуск внешней обработки через ОЛЕ
0 Мисти
 
05.12.12
14:07
Объект_Обработка = БазаОле.ВнешниеОтчеты.Создать(ПутьКОбработке);
       Фирма= Объект_Обработка.ОснованаяОрганизацияТекст();

Украла где-то такой кусок.
ОснованаяОрганизацияТекст - это функция, описанная в модуле? Или можно в форме?
1 Kreont
 
05.12.12
14:08
в модуле
2 YHVVH
 
05.12.12
14:09
45 лет огооо
3 Schwonder
 
05.12.12
14:09
Не взлетит.
4 Serginio1
 
05.12.12
14:10
5 Мисти
 
05.12.12
14:15
(4) Вау! Спасибо!
6 Serginio1
 
05.12.12
14:16
Тьфу не то. Это функция модуля. Для формы нужно получить форму.
7 Serginio1
 
05.12.12
14:20
6+ Объект_Обработка = БазаОле.ВнешниеОтчеты.ПолучитьФорму(ПолноеИмяФайла,ИмяФормы,Владелец,КлючУникальности);
8 Serginio1
 
05.12.12
14:29
При подключении Через COMConnector выдает ошибку

ВОТест=Сервер.ВнешниеОтчеты.ПолучитьФорму(ПутьКОбработке,"ФормаОтчета");

1C:Enterprise 8.3.2.172: Интерактивные операции недоступны
9 Мисти
 
05.12.12
14:43
А я уже всё в модуль перенесла!
10 Мисти
 
05.12.12
14:44
Еще вопрос (пока все добрые) Зачем бывают реквизиты объекта и еще "просто реквизиты, на отдельной закладке? Чем они отличаются?
11 Kreont
 
05.12.12
14:46
Одни общие для обработки, другие собственность конкретной формы
12 Мисти
 
05.12.12
14:51
(11) Спасибо!
А у меня обычно только одна форма, вот я и не видела разницы.
13 Мисти
 
05.12.12
15:56
Объект_Обработка = БазаОле.ВнешниеОтчеты.Создать(ПутьКОбработке) - нет у Базы Оле таких реквизитов.
Ругается!
14 Мисти
 
05.12.12
15:57
в (4) - для 7!
15 Мисти
 
05.12.12
16:00
Ух ты!
Если
   //БазаОле = Новый COMОбъект("V82.COMConnector");
то не работает, а если
   БазаОле = Новый COMОбъект("V82.Application");
то получается!
16 Мисти
 
05.12.12
16:24
ТЗ= Объект_Обработка.ДействияФормыОтчетСформировать(ДатаНач,ДатаКон);
Отработало всё в той базе, а вернулся - сомобъъект.
Что делать, если мне надо вернуть таблицу?
17 Мисти
 
05.12.12
16:29
Еще простой вопрос!
Закрываю обработку, вроде как и та база закрывается, при этом выдает вопрос "закрыть базу?", вопроса не видно, кажется, что всё зависло. Если в настройках той базы указать, чтоб закрывалась без вопросов, то он попадает. но в обычной-то жизни этот вопрос нужен!
18 Serginio1
 
05.12.12
16:31
Смотри права.
У меня прекрасно работает
Сервер=СоздатьОбъект("V83.COMConnector");
Сервер=Сервер.Connect(СтрокаПодключения);
ВОТест= Сервер.ВнешниеОтчеты.Создать(ПутьКОбработке);
Сообщить(ВОТест.Тест());

Это и есть таблица, только обернутая. Работай с ней как с обычной таблицей, только внутри кроме примитивных типов (чило, строка, дата) будет обернута через ком
19 Serginio1
 
05.12.12
16:41
Кроме  ВнешниеОтчеты есть и ВнешняяОбработка
20 Мисти
 
05.12.12
16:41
Новый COMОбъект("V82.COMConnector");  - подключается, но внешних отчетов не находит.
Таб = Новый ТаблицаЗначений;
       ТЗ= Объект_Обработка.ДействияФормыОтчетСформировать(ДатаНач,ДатаКон,Таб);
А в той обработке
   Таб= Таб2.Скопировать();
   Возврат(Таб2);// Юля
Ни там, ни там никаких данных нет!
21 Мисти
 
05.12.12
16:43
Возврат(5) - вернуло мне число!
Ту обработку в той базе запустила - таблица заполняется.
ХОЧУ ДАННЫЕ!!
Я раньше всегда подключалась к базе и поштучно брала там то, что нужно, а теперь - вот такой фокус.
22 Мисти
 
05.12.12
16:44
Какой-то фокус, может, волшебные слова, чтоб из комобъекта-таблицы получить столбцы и строчки?
23 Serginio1
 
05.12.12
16:45
Таб=БазаОле.NewObject("ТаблицаЗначений");
24 Serginio1
 
05.12.12
16:48
Ну в Таб у тебя будет СОМ таблица.
С ней можешь работать так же
Для каждого стр из Таб Цикл
КонецЦикла

Но через Application долго.
25 Мисти
 
05.12.12
16:49
(23)Это если мне нужна там таблица, а она у меня там уже сформирована, мне нужно, что та внешняя обработка мне ее вернула.
(24) Нет разницы по скорости на моих данных.
26 Мисти
 
05.12.12
16:50
Таб - это я пыталась в параметры засунуть, ТЗ - то, что возвращает обработка.
Таб - пустой оказалась.
27 Serginio1
 
05.12.12
16:53
Книга знаний: Архив статей по технологии COM

Сделай тестовую функцию. Заранее заполни данными.
Тз на самом деле хранится на стороне сервера, ты только дергаешь методы и свойства через маршалинг.
28 Мисти
 
05.12.12
16:55
Уря!!! И правда, всё там есть, в моем ТЗ!
Спасибо огромное!
(17) еще вопрос остался.
29 Serginio1
 
05.12.12
16:59
Кстати если в Тз только примитивные типы можешь передавть через сериализованные текст
v8: Выгрузить таблицу в xml
Смотри 11 12
30 Serginio1
 
05.12.12
17:06
Может версии разные.
Сделай в модуле с флагами внешнее соединение функцию которая будет возвращать внешнюю обработку

Функция ВернутьВнешнийОтчет(ПутьКОтчету) Экспорт
возврат ВнешниеОтчеты.Создать(ПутьКОтчету);

КонецФункции
31 Serginio1
 
05.12.12
17:07
И ее можно использовать через COMConnector
32 Serginio1
 
05.12.12
17:10
Смотри что у тебя в ПередЗавершениемРаботыСистемы и устанавливай нужные флаги через Com соединение
33 Serginio1
 
05.12.12
17:13
Например в упп
можно установить
БазаОле.ПропуститьПредупреждениеПередЗавершениемРаботыСистемы=истина;
34 Мисти
 
05.12.12
23:06
(33) Спасибо большое!
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс