Вопрос

BPM V83.COMConnector

Пытаюсь соедениться с 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();

Нравится

5 комментариев

У кого есть идеи почему 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, помогла вот эта ссылка:

https://infostart.ru/public/197627/

Показать все комментарии