Добрый день. Есть такая задача: требуется грузить спецификации в 1с УПП из компаса и t-flex. С компасом удалось реализовать с использованием com:
//пример получения компаса как comобъекта с помощью 1c 8.2 Процедура ОткрытьКомпас()
Попытка kompas = ПолучитьCOMОбъект("KSINVISIBLE.Application.5"); //Kompas.Application.5 Исключение Попытка kompas=Новый COMОбъект("KSINVISIBLE.Application.5"); //Kompas.Application.5 Исключение Предупреждение("На данном компьютере не найдено установленного ПО ""КОМПАС-3D"""); возврат КонецПопытки; КонецПопытки;
kompas.Visible = Ложь; //Активируем АПИ функции компаса kompas.ActivateControllerAPI();
КонецПроцедуры
Подскажите каким образом получить t-flex как comобъект с доступными api-функциями.
Спасибо Vite! О существовании программы T-Flex я узнал в этот понедельник(( Пример TFlexControlSample я нашел. Как я понял, нужно компилировать dll (с классом APILoader) с помощью C++ или С# (если не прав - поправьте пожалуйста), к этому я не готов, т.к. сроки по задаче поджимают.
Реализовал следующим образом: 1)Скачал и установил "компоненты поддержки t-flex" + "T-FLEX Viewer 15 x64" http://www.tflexcad.ru/download/viewer/ 2)В примере под спойлером процедура для 1с, которая выдергивает текст из файла grb (с текстом будут остальные манипуляции - создание номенклатуры, спецификаций и т.д.), что и требуется для выполнения задачи.
Чтение текста из файла grb с помощью 1с
Процедура КнопкаВыполнитьНажатие(Кнопка)
sFile = "E:\Спецификация СБ\Спецификация. Первый лист.grb";
Попытка TF = ПолучитьCOMОбъект("TFW32.SERVER"); Исключение Попытка TF = Новый COMОбъект("TFW32.SERVER"); Исключение Предупреждение("На данном компьютере не найдено установленного ПО ""T-FLEX Viewer 15 x64"", |либо отсутствует служба компонентов TFW32.SERVER(см. Администрирование - Службы компонентов - Настройка DCOM) |http://www.tflexcad.ru/download/viewer/ (компоненты поддержки t-flex + T-FLEX Viewer 15 x64)"); возврат КонецПопытки; КонецПопытки;
TF.ShowApplication(0); doc=TF.OpenFile(sFile);
//Для ТекСтр = 0 По doc.GetPageCount()-1 Цикл //doc.ActivatePage(ТекСтр); Объект = doc.GetFirstObject(5); НПП = 0; Пока Объект <> Неопределено Цикл НПП = НПП + 1;