|
Как завершить работу V83 Application? | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
24.07.20
✎
15:07
|
Раньше помнил, счас забыл.
Connector.ЗавершитьРаботуСистемы(ложь) не катит Connector.ExitSystem(ложь) не катит А что катит? |
|||
1
John83
24.07.20
✎
15:10
|
Connector = "";
? |
|||
2
ILM
гуру
24.07.20
✎
15:12
|
(1) Connector = Неопределено;
Кошернее будет? |
|||
3
Ненавижу 1С
гуру
24.07.20
✎
15:17
|
Connector это не Application
|
|||
4
Гений 1С
гуру
24.07.20
✎
15:30
|
(3) Серьезно?
Коннектор = Новый COMОбъект("V83.Application"); Коннектор.Visible = True; Попытка Соединение = Коннектор.Connect(ПараметрыПодключения); Исключение Предупреждение ("Ошибка подключения!"); Возврат; КонецПопытки; |
|||
5
Гений 1С
гуру
24.07.20
✎
15:32
|
Кстати, она и метод ОткрытьФорму не видит, хотя Чистов пишет, что должно работать:
https://expert.chistov.pro/public/403150/ Цель в общем-то сформировать отчет в другой базе. |
|||
6
John83
24.07.20
✎
15:48
|
для форм вроде как ОЛЕ использовали
|
|||
7
fisher
24.07.20
✎
15:59
|
(4) V83.COMConnector <> V83.Application
|
|||
8
Ненавижу 1С
гуру
24.07.20
✎
16:02
|
(4) что ты там назвал Коннектор это твое личное дело, но коннектор это не апликейшн
|
|||
9
dangerouscoder
24.07.20
✎
17:24
|
(8) Установить OLE соединение
Соединение = Новый COMОбъект("V83.Application"); Установить COM соединение Соединение = Новый COMОбъект("V83.COMConnector"); |
|||
10
dangerouscoder
24.07.20
✎
17:27
|
у кого нибудь получилось под wine поднять COMConnector?
|
|||
11
Гений 1С
гуру
24.07.20
✎
18:00
|
(8) я буквоедством не страдаю. Люблю, когда буквоед клюёт на провокации.
В общем, почти все получилось, кроме закрытия апликатиона, да еще и отчет выводится нужной структуры, но пустой, если после открытия нажать на Сформировать руками, то выводится, странно. Гм, как же закрыть аппликатион? ПараметрыПодключения = ОтчетыСервер.ПараметрыПодключенияКБазе(ТекБаза); Коннектор = Новый COMОбъект("V83.Application"); Коннектор.Visible = True; Попытка Соединение = Коннектор.Connect(ПараметрыПодключения); Исключение Предупреждение ("Ошибка подключения!"); Возврат; КонецПопытки; //Запускаем там отчет ИмяФайла = "D:\Users\SOsipov\Documents\res.xls"; ИмяФайлаXML = "D:\Users\SOsipov\Documents\настройки отчета 2.xml"; ФормаОтчета = Коннектор.GetForm("Отчет.МойОтчет.Форма"); ЧтениеXML = Коннектор.NewObject("ЧтениеXML"); ЧтениеXML.ОткрытьФайл(ИмяФайлаXML); НастройкиКомпоновкиДанных = Коннектор.СериализаторXDTO.ПрочитатьXML(ЧтениеXML); ФормаОтчета.Открыть(); ФормаОтчета.Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКомпоновкиДанных); ФормаОтчета.СкомпоноватьРезультат(Коннектор.РежимКомпоновкиРезультата.Непосредственно); ФормаОтчета.СкомпоноватьРезультат(Коннектор.РежимКомпоновкиРезультата.Непосредственно); ФормаОтчета.ОтчетТабличныйДокумент.Записать(ИмяФайла, Коннектор.ТипФайлаТабличногоДокумента.XLS); ФормаОтчета.Закрыть(); |
|||
12
Гений 1С
гуру
24.07.20
✎
18:01
|
(9) да, Коннект = Соединять. Водка Коннектед, как говорится.
|
|||
13
Aleksey
24.07.20
✎
18:17
|
(11) Сам уже месяц мучаюсь. Подключаюсь из 7-ки через V83.Application и все хорошо кроме завершения работы. Висит в памяти зараза, хоть ты тресни. Так что подпишусь на тему
P.S. а зачем тебе Коннектор.Visible = True; Не в смысле строка а всмысле почему True, а не false? |
|||
14
Гений 1С
гуру
24.07.20
✎
18:30
|
(13) чтобы 1С в фоне невидимая не болталась и не жрала память, чтобы видима была.
ГМ, мне админ подсказал, почему не запускается COM. Надо запускать 32-разрядную 1С, а не 64-разрядную. Тогда норм. Переписал на СОМ: ПараметрыПодключения = ОтчетыСервер.ПараметрыПодключенияКБазе(ТекБаза); //Коннектор = Новый COMОбъект("V83.Application"); ОбъектКоннектор = Новый COMОбъект("V83.COMConnector"); Попытка Коннектор = ОбъектКоннектор.Connect(ПараметрыПодключения); Исключение Предупреждение ("Ошибка подключения: " + ОписаниеОшибки()); Возврат; КонецПопытки; //===Получаем настройки ИмяФайла = "D:\Users\SOsipov\Documents\res.xls"; ИмяФайлаXML = "D:\Users\SOsipov\Documents\настройки отчета 2.xml"; ЧтениеXML = Коннектор.NewObject("ЧтениеXML"); ЧтениеXML.ОткрытьФайл(ИмяФайлаXML); НастройкиКомпоновкиДанных = Коннектор.СериализаторXDTO.ПрочитатьXML(ЧтениеXML); //===Запускаем там отчет ТекМенеджерОтчета = Коннектор.Отчеты.МойОтчет; ТекОтчет = ТекМенеджерОтчета.Создать(); СхемаКомпоновкиДанных = ТекОтчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); КомпоновщикМакета = Коннектор.NewObject("КомпоновщикМакетаКомпоновкиДанных"); МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновкиДанных); ПроцессорКомпоновкиДанных = Коннектор.NewObject("ПроцессорКомпоновкиДанных"); ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,, Истина); ПроцессорВывода = Коннектор.NewObject("ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент"); Таблица = Коннектор.NewObject("ТабличныйДокумент"); ПроцессорВывода.УстановитьДокумент(Таблица); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); Таблица.Записать(ИмяФайла, Коннектор.ТипФайлаТабличногоДокумента.XLS); Но осталась проблема, отчет пустой выводится. Ладно, с этим я разберусь уже. Видимо, каких-то параметров не хватает. |
|||
15
Василий Алибабаевич
24.07.20
✎
19:18
|
За вот такие перлы в коде :
" ИмяФайла = "D:\Users\SOsipov\Documents\res.xls"; ИмяФайлаXML = "D:\Users\SOsipov\Documents\настройки отчета 2.xml"; " нужно давать семь лет пожизненного расстрела. И ни к чему сложнее метлы не допускать. |
|||
16
Ненавижу 1С
гуру
24.07.20
✎
19:48
|
Автор, ты лучше выуч, чем connector от application отличается, а своё "буквоед клюет" оставь, а то как попугай.
|
|||
17
runoff_runoff
24.07.20
✎
19:49
|
чтобы открыть форму.. Application нужно..
|
|||
18
runoff_runoff
24.07.20
✎
19:52
|
V83c.Application для тонкого
|
|||
19
Гений 1С
гуру
24.07.20
✎
20:35
|
Сукко, я нашел, почему в СКД не формируется, а вручную формируется. Посказка: это ЗУП, детка.
|
|||
20
Гений 1С
гуру
24.07.20
✎
20:36
|
(15) я пока делаю отладочный прогон, не ной.
|
|||
21
Гений 1С
гуру
24.07.20
✎
20:36
|
(16) у тебя есть сомнения, что я понимаю в чем разница?
|
|||
22
Гений 1С
гуру
24.07.20
✎
20:52
|
Короче, котаны, делюсь ценным знанием.
В ЗУП сделали крайне непрозрачную хрень с запросами-заглушками, начинающимися на Представления_, вот пример: ВЫБРАТЬ РАЗРЕШЕННЫЕ ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК Сотрудник, "" КАК ТабельныйНомер, ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка) КАК ФизическоеЛицо, ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК ГоловнаяОрганизация, ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК Организация, ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка) КАК Подразделение, ЗНАЧЕНИЕ(Справочник.Должности.ПустаяСсылка) КАК Должность, ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ПустаяСсылка) КАК ВидЗанятости, ДАТАВРЕМЯ(1, 1, 1) КАК ДатаПриема, ДАТАВРЕМЯ(1, 1, 1) КАК ДатаУвольнения, ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ПустаяСсылка) КАК Состояние ПОМЕСТИТЬ Представления_КадровыеДанныеСотрудников Чтобы отчет заработал нужным образом, его нужно обработать, заменить тексты запросов на нормальные, без этого сколько бы я не бился, не получилось бы. Потратил 2 часа на этот "селезневский" обратный инжиниринг. Ставил в бесконечном цикле, чтобы не переключать COM, потом понял, какие поля не рассчитывает и дошло до меня. Вот этот код без бесконечного цикла можно использовать для ЗУП 3.0, уфф.... Пока Истина Цикл ЧтениеXML = Коннектор.NewObject("ЧтениеXML"); ЧтениеXML.ОткрытьФайл(ИмяФайлаXML); НастройкиКомпоновкиДанных = Коннектор.СериализаторXDTO.ПрочитатьXML(ЧтениеXML); ЧтениеXML.Закрыть(); //===Запускаем там отчет ТекМенеджерОтчета = Коннектор.Отчеты.ОдинИзТиповыхОтчетовЗУП; ТекОтчет = ТекМенеджерОтчета.Создать(); Коннектор.ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеИсточникиДанныхОтчета(ТекОтчет); СхемаКомпоновкиДанных = ТекОтчет.СхемаКомпоновкиДанных; //ТекОтчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); //НастройкиКомпоновкиДанных = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; КомпоновщикМакета = Коннектор.NewObject("КомпоновщикМакетаКомпоновкиДанных"); МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновкиДанных); ПроцессорКомпоновкиДанных = Коннектор.NewObject("ПроцессорКомпоновкиДанных"); ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,, Истина); ПроцессорВывода = Коннектор.NewObject("ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент"); Таблица = Коннектор.NewObject("ТабличныйДокумент"); ПроцессорВывода.УстановитьДокумент(Таблица); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); Таблица.Записать(ИмяФайла, Коннектор.ТипФайлаТабличногоДокумента.XLS); КонецЦикла; |
|||
23
Гений 1С
гуру
24.07.20
✎
21:04
|
Просьба админам переименовать ветку в "Как завершить работу V83.Application, почему не формируются отчеты в ЗУП по COM (решено)"
|
|||
24
acht
24.07.20
✎
21:43
|
user sosipov [x]
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |