Оглавление
1. Найти библиотеку comcntr.dll 2. Зарегистрировать библиотеку comcntr.dll 3. Добавить ссылку на библиотеку 1CV83 COM Connector 4. Добавить директиву using V83; 5. Написать метод для подключения к 1С 6. Прописать строку подключения к 1С 7. Добавить пользователя в 1С 8. Открыть порты 9. Предпочтительна 32-разрядная версия
1. Найти библиотеку comcntr.dll
При установке 1С эта библиотека попадает в папку C:\Program Files\1cv8\8.3.15.1489\bin

2. Зарегистрировать библиотеку comcntr.dll
Для этого надо запустить cmd под админской учеткой, перейти в папку C:\Program Files\1cv8\8.3.15.1489\bin и выполнить команду regsvr32 comcntr.dll
C:\Program Files\1cv8\8.3.15.1489\bin>regsvr32 comcntr.dll
3. Добавить ссылку на библиотеку 1CV83 COM Connector Type Library

4. Добавить директиву using V83;
Класс COMConnector объявлен в пространстве имен V83, поэтому в верхней части файла с кодом на C# пишем using V83;
На сегодня V83 это последняя версия и идет соответственно в поставке с 1С.8.3
5. Написать класс и метод для подключения к 1С
Например такой, который можно вызывать асинхронно
public class Com1C
{
public static event Action OnConnect;
public static event Action Progress;
public static event Action OnError;
public static bool Connecting { get; private set; }
public static bool IsConnected { get; private set; }
private static string _connectionString;
private static COMConnector _con;
private static dynamic _база1С;
private static string _error = "";
public static string LastError
{
get { return _error; }
set { _error = value; if (_error.Length > 0) { OnError?.Invoke(_error); } }
}
public static void ConnectTo1C(string connectionString)
{
_connectionString = connectionString;
new Thread(Connect).Start();
}
private static void Connect()
{
if (IsConnected) return;
try
{
Connecting = true;
_con = new COMConnector();
_база1С = _con.Connect(_connectionString);
IsConnected = true;
OnConnect?.Invoke("Соединение с сервером 1С установлено.");
}
catch (Exception ex)
{
IsConnected = false;
OnConnect?.Invoke("Ошибка соединения с сервером 1С.");
LastError = ex.Message;
}
finally
{
Connecting = false;
}
}
}
6. Прописать строку подключения к 1С
Правильная строка подключения к серверной версии 1С может быть, например, такой
ConnectionString = "srv='PROGER';ref='Sales';usr='Proger';pwd='12345'"
ConnectionString = "File=\"D:\\Sales\";Usr='mobile';Pwd='12345'"
7. Добавить пользователя в 1С
Что бы строка подключения из п.6 работала, надо, через Конфигуратор 1С, создать пользователя Proger и дать ему права Администратор системы и Полные права.
8. Открыть порты
Для подключения к серверу 1С с другого сервера надо открыть доступ по портам 1541 и 1560. Иногда возникает ситуация, когда этих портов недостаточно, надо открыть еще диапазон 1560-1591.

9. Предпочтительна 32-разрядная версия
В свойствах проекта на C# надо убрать галочку – «Предпочтительна 32- разрядная версия».
Без этого происходит ошибка при подключении.

в VS 2022
Иначе будет ошибка:
Retrieving the COM class factory for component with CLSID {181E893D-73A4-4722-B61D-D604B3D67D47} failed due to the following error: 80040154 Класс не зарегистрирован (0x80040154 (REGDB_E_CLASSNOTREG)).
10. Возможные ошибки
