четверг, 25 июля 2024 г.

Ошибка доступа к файлу при выполнении обмена между 1С ЗУП и БП

Если при выполнении обмена между 1С ЗУП и БП, возникает ошибка доступа к файлу, возможно всё дело в пользователе от которого запущена служба «Агент сервера 1С:Предприятия 8» и от имени которого работает компонента V83COMConnector (в Службах компонентов). V83COMConnector как раз и отвечает за обмен данными в режиме Прямое подключение (com-соединение). Проще говоря, она отвечает за подключение База-База на локальном сервере или между базами на разных серверах.

V83COMConnector как раз и отвечает за обмен данными в режиме Прямое подключение (com-соединение). Проще говоря, она отвечает за подключение База-База на локальном сервере или между базами на разных серверах.


 


 

В 1С ЗУП 3.1 (3.1.30.15) возникала такая ошибка (но версия релиза 1С тут мало что значит).



Текст ошибки:

Ошибка при вызове метода контекста (ОткрытьФайл)
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(7320)}:ФайлОбмена.ОткрытьФайл(ИмяФайлаОбмена);
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(2420)}:НачатьЧтениеСообщения(ЧтениеСообщения);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(5119)}:ОбработкаОбменаДаннымиXML.ВыполнитьЗагрузкуДанных();
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(8630)}:ПрочитатьСообщениеСИзменениямиДляУзла(СтруктураНастроекОбмена, СообщениеОбмена);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(1706)}:ВыполнитьОбменДаннымиЧерезФайловыйРесурс(СтруктураНастроекОбмена);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(8896)}:ВыполнитьДействиеОбмена(Отказ, УзелИнформационнойБазы,
{Обработка.ВыполнениеОбменаДанными.МодульМенеджера(30)}:ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(
{(1)}:Обработки.ВыполнениеОбменаДанными.ВыполнитьЗапускОбменаДанными(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(6009)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1814)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1775)}:ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры, ПараметрыВыполнения);

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Файл не обнаружен 'C:\Users\1сservr\AppData\Local\Temp\Exchange82 {7ADCB1C2-4EEA-4996-841B-23F1CB87E9D7}\38de17b8-8f51-40a9-9b44-8b4d9f35cebc.xml'
[ОшибкаДоступаКЛокальномуФайлу]
Интересуют последние строки, а именно C:\Users\1сservr\AppData ….

Проблема была в том, что служба «Агент сервера 1С:Предприятия 8» на сервере, запущена от имени пользователя 1сservr, а служба компонента V83COMConnector работала от имени встроенной учётной записи на сервере.
V83COMConnector отвечает за обмен информацией между базами, во время обмена создаётся xml файл, который находится по тому самому пути из ошибки выше 'C:\Users\1сservr\AppData\Local\Temp\Exchange82 {длинныйкод}\имяфайлаXML.xml'. Поскольку V83COMConnector работает от имени встроенной учётной записи, то доступа в папку C:\Users\1сservr у него нет, и файл обмена не создаётся.

Чтобы это исправить необходимо сменить пользователя от имени которого работает компонента V83COMConnector на пользователя, от имени которого запущена служба «Агент сервера 1С:Предприятия 8», или другого пользователя, у которого будет доступ в учётную запись профиля пользователя от которого запущена служба «Агент сервера 1С:Предприятия 8».

Это можно сделать зайдя в Панель управления – Администрирование - Службы компонентов.
Раскрыть список и найти в раздел «Приложения COM+». 


На компоненте V83COMConnector нажать правой кнопкой мыши, выбирать пункт Свойства, и в закладке Удостоверение, сменить пользователя, от имени которого запускается компонента V83COMConnector.
 



Обмен должен запуститься, и ошибка с доступом к файлу уйти.
Возможно потребуется перезапуск клиентской приложение 1С.

Комментариев нет:

Отправить комментарий