При программной интеграции и обмене данными между конфигурациями 1С разработчики часто используют механизм внешнего COM-соединения. Однако при попытке установить связь с базой данных метод Connect может завершиться ошибкой вида: «Произошла исключительная ситуация (V83.COMConnector.1): Информационная база не обнаружена. Отсутствует файл базы данных...».
Разберем причины возникновения этой ситуации, проанализируем пример кода подключения и выясним, как правильно настроить параметры соединения на стороне сервера.
Рассмотрим типовой пример процедуры подключения к файловой или клиент-серверной базе на стороне сервера:
&НаСервере
Процедура ПодключениеКБазе()
V8 = Новый ComObject("V83.COMConnector");
Попытка
Если Объект.Файловая Тогда
СтрокаПодключения = "File=""" + Строка(Объект.ПутьКБазе) + """;Usr=""" + Строка(Объект.ИмяПользователя) + """;Pwd=""" + Объект.ПарольПользователя + """;";
Соединение = V8.Connect(СтрокаПодключения);
Иначе
АдресСервера = "Normais-sql";
СтрокаПодключения = "Srvr=""" + АдресСервера + """;Ref=""" + Строка(Объект.ПутьКБазе) + """;Usr=""" + Строка(Объект.ИмяПользователя) + """;Pwd=""" + Объект.ПарольПользователя + """;";
Соединение = V8.Connect(СтрокаПодключения);
КонецЕсли;
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
КонецПроцедуры
Посмотрим на специфику вызова: в объекте V83.COMConnector суффикс .1 в тексте ошибки добавляется автоматически операционной системой Windows. Это версионно-зависимый идентификатор компонента (Version-Dependent ProgID) из системного реестра, подтверждающий успешную инициализацию объекта в памяти.
Разберем по шагам, почему COM-коннектор не может найти файл 1Cv8.1CD при подключении к файловой базе:
File= в строке подключения необходимо передавать полный абсолютный путь к каталогу, где расположен файл 1Cv8.1CD (например, C:\Bases\UNF_Copy), а не просто наименование базы из списка запуска. Если в реквизит формы по ошибке попадает только строковое имя базы, платформа пытается найти каталог в рабочей директории службы сервера и сообщает об отсутствии файла.&НаСервере, то все файловые пути разрешаются относительно сервера 1С, а не клиентского компьютера. При обращении к файлам, расположенным на сетевом ресурсе, нельзя использовать подключенные сетевые диски (например, Z:\Base), так как системная служба их не видит. Необходимо указывать прямой UNC-путь вида \\ServerName\ShareFolder\BaseFolder.USR1CV8). У этой учетной записи должны быть полные права (чтение, запись, изменение) на целевую папку с файловой базой и на сам файл 1Cv8.1CD.comcntr.dll. В случае конфликта разрядностей потребуется перерегистрация библиотеки или настройка COM+ приложения в службах компонентов Windows.Технология COM-соединения имеет ряд ограничений: жесткая привязка к операционной системе Windows (не работает на Linux-серверах), чувствительность к совпадению релизов платформ и риск утечек оперативной памяти при интенсивном обмене. Для надежной интеграции современных конфигураций 1С рекомендуется использовать универсальные кроссплатформенные протоколы: