Пытаюсь соедениться с 1С, вот код:
namespace Terrasoft.Configuration.ImportAllAccountsService
{
using System;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.ServiceModel.Activation;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Data;
using Terrasoft.Common;
using Terrasoft.Core;
using Terrasoft.Core.DB;
using Terrasoft.Core.Entities;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.CodeDom.Compiler;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using Terrasoft.Core.Packages;
using Terrasoft.Core.Factories;
using V83;
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class ImportAllAccountsService
{
[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped,
ResponseFormat = WebMessageFormat.Json)]
public string ImportAllAccounts()
{
COMConnector comConnector = new COMConnector();
return "Import complite1!!!";
dynamic connection = comConnector.Connect(@"File='D:\1С-Install\FOP NEW';Usr='xxx';Pwd='yyy'");
return "Import complite2!!!";
dynamic dataArray1C = connection.Справочники.Контрагенты.Выбрать();
return "Import complite3!!!";
while (dataArray1C.Следующий == true)
{
return (string)dataArray1C.Наименование;
}
}
}
}
в обычном проэкте в студии - работает, тут вылетает уже на строке COMConnector comConnector = new COMConnector();
Нравится
У кого есть идеи почему BPM не хочет работать с библиотекой 1С? Хотя при компиляциии шибок - нет...
Нашел еще такой код:
string ConnectString = @"File='D:\1С-Install\FOP NEW';Usr='xxx';Pwd='yyy'";
var v81comConnector = Type.GetTypeFromProgID("V83.ComConnector");
var v81 = Activator.CreateInstance(v81comConnector);
Object[] arguments = { ConnectString };
dynamic Connect = v81comConnector.InvokeMember("Connect", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v81, arguments);
int count = Connect.Метаданные.Справочники.Количество();
MessageBox.Show(count.ToString());
Работает без библиотеки!!! Тут выбивает ошибку на строке
var v81 = Activator.CreateInstance(v81comConnector);
Хотя в визуалке этот код отрабатывает на ура
УРА!!! Решено!!! проблема была в сервере 64, помогла вот эта ссылка: