Как показать окно 1С 7.7

Необходимо привязать 1С к TS CRM для выписки счета на оплату, Акта выполненных работ, Приходно-кассового ордера, и получения данных из документа Выписка банка. Планирую связь реализовать через OLE.
Связь с 1С

   onesobj = new ActiveXObject('V77.Application');
        var ConnectString = '/D"g:\\c\\1c"\\" /N ....';
        onesobj.initialize(onesobj.rmtrade, ConnectString, 'NO_SPLASH_SHOW');

Выписка Счета на оплату
        var Dok=onesobj.createobject('Документ.Счет');
        Dok.Новый();
        Dok.Записать();
                //глОткрытьформу1- это функция в глобальном модуле 1с,отображающая модально документ с определенным номером и датой
        var s=  'глОткрытьформу1("%1","%2","%3");';
        var dat= new Date(Dok.ДатаДок);
        var dat1=DatToStrV(dat)
        var s1=FormatStr(s,'Документ.Счет',Dok.НомерДок,dat1);
                //Отображает окно 1С
        System.BringWindowToFront(onesHandle);

Все работает, вот только хэндл окна 1С (onesHandle) приходится выдергивать отдельной программой, написанной на Delphi.
Begin
h:=FindWindow('1C:Предприятие',nil);
ShowWindow(h,sw_show);
showmessage(inttostr(h));
end;
Умеет ли Terrasoft CRM находить хэндлы сторонних приложений по их caption?
Или может быть подскажите другой способ отображения окна 1С?

Нравится

3 комментария

Нужно вызвать функцию FindWindow (WinAPI)
возможно, Вам подойдет способ описанный здесь:
http://community.terrasoft.ua/blogs/2402

Если Вам нужно только активизировать окно, можно так:

var WshShell = new ActiveXObject("WScript.Shell");
WshShell.AppActivate("1С:Предприятие");

Правда, данный код выводит окно на первый план только если оно не свёрнуто на панель задач. Если же оно свёрнуто, разворачивания не произойдёт, просто кнопка приложения станет "нажатой" (начнёт мигать).

Спасибо!
Сделал, через FindWindow (WinAPI), при помощи DynamicWrapper.

Wrap = System.CreateObject("DynamicWrapper");
Wrap.Register("user32.DLL", "FindWindow", "i=ss", "f=s", "r=l");
Wrap.Register("user32.DLL", "ShowWindow", "i=ll", "f=s", "r=l");
var handl=Wrap.FindWindow(0,"1С:Предприятие - Бухгалтерский учет для Казахстана, ред. 2.5: ТОО УМИКУМ");
Wrap.ShowWindow(handl,3);
System.BringWindowToFront(handl);
Показать все комментарии